Saya ingin menunjukkan variabel lingkungan PATH saya dengan cara yang lebih bisa dibaca manusia.
$ echo $PATH
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
Saya sedang memikirkan sesuatu seperti ini:
$ echo $PATH | some cut and awk magic
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin
/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/bin
...
shell
environment-variables
path
Arturo Herrero
sumber
sumber
Jawaban:
Anda bisa menggunakannya
tr
.Anda juga dapat melakukan ini di beberapa shell (diuji dalam bash dan zsh):
Di zsh, Anda bisa menggunakan
$path
variabel untuk melihat jalur Anda dengan spasi alih-alih titik dua.Yang dapat dikombinasikan dengan
printf
atauprint
.The
<<<
operator disebut herestrings. Herestrings menyampaikan kata di sebelah kanan mereka ke input standar dari perintah di sebelah kiri mereka.Jika shell Anda tidak mendukungnya, gunakan
echo
dan pipa.sumber
echo $PATH | tr ':' '\n'
tetapi solusi Anda lebih jelas.print -l $path
simpan beberapa penekanan tombol. Gagal jika$path
mengandung garis miring terbalik, tetapi itu sangat tidak biasa.$PATH
.Inilah cara cepat dengan
bash
sumber
IFS
dengan menggunakan subkulit. misalnya(IFS=: arr=($PATH); printf "%s\n" "${arr[@]})")
/bin:/usr/bin:
dulu merupakan nilai umum untuk$PATH
)$PATH
berisi beberapa karakter wildcard (tidak mungkin)bash
, Anda dapat menggunakanIFS=: read -a arr <<< "$PATH"
untuk bagian pemisahan.IFS
Nilai baru dengan cara itu hanya akan digunakan saat menjalankanread
, jadi tidak perlu mengembalikannya. pastebin.com/7E7C4AcRIFS
nilai baru tetap ada setelah pembuatan array tetapi tidak setelah dieksekusiread
?Memperluas solusi Smith John , ini membuat alias yang bagus di Anda
.bash_profile
:sumber
Perhatikan bahwa PATH yang tidak disetel memiliki arti yang berbeda dari PATH yang kosong. PATH kosong berisi satu elemen kosong, dan itu berarti mencari executable di direktori saat ini saja, PATH yang tidak disetel berarti mencari executable dalam daftar direktori default (tetapi perhatikan bahwa pada beberapa sistem, tidak setiap alat setuju pada konten dari daftar itu)
Dalam
zsh
:Dalam shell POSIX (perhatikan bahwa
zsh
bahkan dalamsh
mode tidak POSIX dalam hal itu):sumber