Kabuk komut dosyasının çalıştırıldığı dizinin adını (veya daha iyisi tüm yolu) nasıl algılayabilirim?Kabuk komut dosyasını çalıştırdığım geçerli dizin nasıl algılanır?
cevap
hangi kabuk? Hangi işletim sistemi? Yeni başlayanlar için
Göründüğü gibi olduğu kadar önemsiz değil
man pwd
$PWD
çalışıyor görünüyor – goe
Ve sadece yolun tam yerine yönetmenin adını istiyorsanız, adam basename de okuyun. –
deneyin. this question ve this
Soru, komut dosyası yürütme dizinini belirlemekle ilgilidir, ancak cevabınız komut dosyasının adını/dizinini belirlemek içindir. –
@Mat gerçekten! O zaman yanlış anlaşılmış olmalı. Silme. –
alternatif bir yöntem
pid=$$
path=$(ps -eo pid,args| awk -vp=$pid '$1~p{print $3}')
case "$path" in
./*) pwd;;
*) echo $path;;
esac
Bu göz atın, inanıyorum, en taşınabilir yoludur: Bash için
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
, bkz: [Bir Bash script kaynak dizini alınıyor içinde] (https://stackoverflow.com/q/59895/55075). – kenorb