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: Kenan Dogan (kndogan@yahoo.com)
Date: Thu 08 Sep 2005 - 06:16:46 EEST


istediginiz sey iki yolla yapilabilir :

1. iyi olmayan yontemde betik(=script) soyle olabilir:
   cd /istenen-dizin
   sh

Burada, istediginiz dizine gectikten sonra fazladan bir kabuk(=shell) alir ve
boylelikle sizi gectiginiz dizinin icinde birakir. Dilediginiz islemleri
yapabilirsiniz. Ctrl-D veya exit yaptiginizda, almis oldugu fazlalik kabugu
sonlandirarak, betigi calistirdiginiz siradaki dizine doner.

SAKINCASI: 1 nci kabukta mi yoksa 2 ncisinde mi oldugunuzu karistirip,
(ozellikle dizin) silme islemi yaparsaniz, yanlis seyleri silme olasiliginiz
var. Yani dikkatli olmanizi gerektirir. Ayrica, ozellikle birden fazla kez
calistirdiginizda, kabuk surecleri(=process) sayisi kabarir. "ps" ile
baktiginizda:

bash
sh
sh
sh

gibi bir gorunumle karsilasirsiniz.

2. iyi olan yontemde ise hicbir sakinca yok; yalniz, kabuk olarak (zaten
cogunlukla kullanilmakta olan) "bash"i kullaniyor olmaniz ve birazcik belge
okumaniz gerekir (csh, ksh, ... v.b. diger kabuklarda olmadigini saniyorum,
ama emin degilim) :

http://www.belgeler.org/bashref/bashref_directory-builtins.html

Buradaki 3 yerlesigi(=built-in) ve ozellikle de "pushd"yi okuyun, biraz
cabayla isinizi gorecek kucuk bir betik yapabilirsiniz.

http://www.belgeler.org/bashref/bashref_directory-builtins-pushd.html

adresindeki :

"dizin
    icinde bulunulan dizini yiginin tepesi yapar ve 'cd dizin' komutuna
esdeger bir islemle dizin'e gecilmesini saglar."

ifadesi sizin icin onemli bir ipucu.

Kolay gelsin.

--- Nejat AYDIN <nejataydin@superonline.com> wrote:

> 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) ust shell'in ortamini etkilemez.
> O andaki aktif dizin (current working directory) ortamin bir parcasidir.
> Dolayisiyla script icindeki cd komutuyla ust 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 calistirirsan bir alt shell acilmayacagindan, yani
> script o andaki shell'de calisacagindan, ancak o zaman istemis
> oldugun seyi gerceklestirebilirsin.

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

_______________________________________________
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.