Apa Cara Ideal untuk Bertukar Entri dalam variabel lingkungan $ PATH?

1

Di Linux dan / atau Mac OSX, apa cara terbaik untuk mengotomatisasi memindahkan entri dalam variabel lingkungan $ PATH ke bagian depan nilai seperti ini:

/ foo / bar: / satu / dua / tiga: / opt / local / bin: / home / user / bin

Menjadi

/ home / user / bin: / foo / bar: / satu / dua / tiga: / opt / local / bin

Saat ini saya menggunakan sed untuk mencapai ini, tetapi saya ingin tahu apakah ada solusi yang lebih sederhana.

Jonathan Neufeld
sumber

Jawaban:

1

Saya percaya ini adalah yang paling sederhana:

awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
jimmij
sumber
0

Anda dapat menulis dengan cepat:

dir=/home/user/bin
PATH=$dir:${PATH//:$dir/}

Jika Anda memiliki sesuatu seperti

PATH=/first:/second:/home/user/bin/subdir:/home/user/bin

maka ini lebih kuat:

tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}
glenn jackman
sumber