Re: [Linux-programlama] Re: shell script icinden dizin degistirmek?

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Nejat AYDIN (nejataydin@superonline.com)
Date: Wed 07 Sep 2005 - 17:21:49 EEST


Bekir SONAT Cortex wrote:
>
> Bir de script icinde uygulanan
> cd /falan/fismekan
> komutunun,
> script bitiminde de
> gecerli olmasini nasil saglayabilirim ?
> Yani girdigi dizinde kalmasini ?
> Yoksa yetki-izin ozelliginden dolayi bu olanaksiz mi?

Yetki ozelliginden degil, fakat su ozellikten dolayi bunu yapamazsin:
Calistirdigin shell scripti bir alt shell'de calisir
ve alt shell ortami (environment'i) üst shell'in ortamini etkilemez.
O andaki aktif dizin (current working directory) ortamin bir parçasidir.
Dolayisiyla script içindeki cd komutuyla üst shell'deki aktif dizini
degistiremezsin, sadece script'in o anda calismakta oldugu alt shell'deki
dizin degisir.

Eger script'i,
. ./ezcd # ya da scriptin ismi herneyse
komutuyla çalistirirsan bir alt shell açilmayacagindan, yani
script o andaki shell'de calisacagindan, ancak o zaman istemis
oldugun seyi gerceklestirebilirsin.

> cd komutunun geri donus degerini ( 0 veya 1 )
> nasil kontrol edecegimi ogrenmek de aslinda duses
> olurdu benim icin

Icra edilen son komutun dondurdugu degeri $? parametresi ile
ogrenebilirsin:
cd /falan/filan
if [ $? -ne 0 ]; then echo "Dizin degistirelemedi"; fi
veya hiç $? parametresini kullanmadan;
if ! cd /falan/filan ; then echo "Dizin degistirilemedi"; fi
veya;
cd /falan/filan || echo "Dizin degistirelemedi"

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.