
在 Linux 和/或 Mac OSX 中,自動將 $PATH 環境變數中的條目移至值前面的最佳方法是什麼:
/foo/bar:/一/二/三:/opt/local/bin:/home/user/bin
成為
/home/user/bin:/foo/bar:/一/二/三:/opt/local/bin
目前我正在使用 sed 來完成此任務,但我想知道是否有更簡單的解決方案。
答案1
我相信這是最簡單的:
awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
答案2
很快,你可以寫:
dir=/home/user/bin
PATH=$dir:${PATH//:$dir/}
如果你有類似的東西
PATH=/first:/second:/home/user/bin/subdir:/home/user/bin
那麼這是更穩健的:
tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}