I (çıkış biçimi belirtilmemiş, yani söz konusu POSIX'deki olmadığı için ben which
kullanmayın ve hiçbir şey yerine sessiz olma bulunduğunda, bu şikayet) Tüm Bourne miras kabukları için taşınabilirlik için bu pathto
işlevini kullanın:
Eğer
pathto
çağrı sayısı ihmal edilebilir, çünkü performans gelince
test "`pathto less`" != "" && alias more=less
birlikte bulunca verilen herhangi yürütülebilir için yol adı echos
pathto() {
DIRLIST=`echo $PATH|tr : ' '`
for e in "[email protected]"; do
for d in $DIRLIST; do
test -f "$d/$e" -a -x "$d/$e" && echo "$d/$e"
done
done
}
, umurunda olmamalıdır. İlk iki örneğiniz portatif olmayan (())
ve [[ ]]
yapılarını kullanır ve bundan kaçınılmalıdır.
Ayrıca boş parçalarla özellikle PATH
numaralı ürünlerde çalışmadığımı unutmayın. Güvenlik nedenlerinden kaçınılmalıdır, tıpkı .
gibi.
Güzel ve temiz. Temelde sorumu cevaplamak. – user3341592
Yan soru: '' 'tür ag> &/dev/null''' veya sadece' '' tür ag>/dev/null''' (sizin yaptığınız gibi) kullanmak daha iyi? – user3341592
Eski taşınabilir değildir. Stderr'i yeniden yönlendirmek isterseniz, stdout ve stderr için '2>/dev/null' veya'>/dev/null 2> & 1'. – tripleee