GNU/Linux >> Belajar Linux >  >> Linux

Ulangi variabel $PATH menggunakan skrip Shell

Anda dapat menggunakan read dengan pembatas ditetapkan sebagai :

while read -d ':' p; do
   echo "$p"
done <<< "$PATH:"

Cara paling sederhana mungkin adalah mengubah IFS ke titik dua dan biarkan pemisahan kata melakukannya:

IFS=:
for p in $PATH ; do 
    echo "$p"
done

Tapi itu mungkin memicu globbing nama file, dalam kasus aneh bahwa PATH Anda berisi karakter seperti *?[] . Anda harus menggunakan set -f untuk menghindari itu.

Meskipun mengubah IFS mungkin dianggap bermasalah, karena memengaruhi skrip lainnya. Jadi di Bash, kita bisa membagi jalur ke array dengan read -a , ini juga tidak bermasalah dengan karakter glob:

IFS=: read -a paths <<< "$PATH"
for p in "${paths[@]}" ; do
    echo "$p"
done

dengan gema:

echo "${PATH//:/$'\n'}"

sed:

sed 's/:/\n/g' <<< "$PATH"

tr:

tr ':' '\n' <<< "$PATH"

python:

python -c "import os; print os.environ['PATH'].replace(':', '\n')"

untuk pengulangan digunakan untuk:

for i in ${PATH//:/ }; do echo $i; done

Linux
  1. Cara mengatur variabel $PATH Anda di Linux

  2. Perilaku Tak Terduga Dari Skrip Shell?

  3. Edit skrip shell saat sedang berjalan

  1. Bagaimana cara menyimpan perintah dalam variabel dalam skrip Shell?

  2. Menghubungkan ke WiFi menggunakan adb shell

  3. Ulangi baris alih-alih kata-kata dalam for loop skrip Shell

  1. Salin dan timpa file dalam skrip shell

  2. Direktori perubahan skrip Shell dengan variabel

  3. Cakupan variabel untuk skrip bash shell dan fungsi dalam skrip