[Linux] Re: pipe problemi

---------

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

From: Murat Koc (murat.koc@frontsite.de)
Date: Tue 18 Jun 2002 - 13:15:04 EEST


> Selamlar,
>

Selam,

> Bir iki duzeltme yapmak istiyorum.
>

Bir iki duzeltme de ben yapmak istiyorum sakincasi yoksa :)

> Tue, Jun 18, 2002 at 01:15:24AM +0300 , Enver ALTIN :
> > On Mon, 2002-06-17 at 22:43, Nazim KOC wrote:
> > > Baska bir cozum onerisi var mi acaba ?
> >
> > export PATH=/bin:/usr/bin:$PATH
> > ^^^^^^
>

oncelikle calisilan shell icinde iken zaten export etmenizin cok bir
anlami yoktur. yani soyleki

$ls
$PATH=/bin:/usr/bin:/$PATH
$more

ile

$ls
$export $PATH=/bin:/usr/bin:$PATH
$more

islemi islev olarak ayni shell icinde bulundugundan dolayi aynidir.
Ancak baska shelllere gecis yaptiginizda $PATH degiskeninin yeni
degerinin kullanilabilmesini istiyorsaniz export etmeniz gerekir.
Dolayisi ile deneme amacli calisirken ayni shell de bulundugunuz surece
ayrica export etmenize gerek yoktur.

Aksi durumu asagida anlatacagim. Shell in ne tur bir shell olduguna
baglidir.

> PATH zaten exported bir degiskendir. Yani PATH degiskenini :
>
> $ PATH=$PATH:/tmp
>
> seklinde degistirseniz dahi degiskenin icerigi degisecek ve daha sonra
> baslatilan alt sureclerde bu deger kullanilacaktir.

Eger kullanilan shell non-interactive/interactive login shell degil ise.
Kisaca login shell degil ise ve baska bir shell den acilmamis ise.

Bakin $PATH /etc/profile icinde export ile atanan bir degiskendir ve
diger herhangi bir degiskenden farki yoktur. Dolayisi ile siz daha sonra
bunu degistirdiginiz zaman ve bunu /etc/profile icerisine yazmadiginiz
zaman (yukarda belirtttiginiz gibi) $PATH degiskeni /etc/profile da
tanimlanan degerini alacaktir ve sizin atamasini yaptiginiz /tmp
kaybolacaktir. Eger bunu farkli shell ler icinde kullanmak istiyorsaniz
o zaman export etmeniz gerekir her halukarda.

Peki neden ben bir shell actigim zaman daha sonra PATH ile yeni bir
$PATH tanimladigimda bu daha sonra tekrar bir

$bash

komutunu verip baska shell actigimda da kullaniliyor diyeceksiniz.

Cevap basit: Bu sadece shell e ozgu olan birsey degildir. Bu her
programa ozgu olan bir olaydir. Cunku fork-exec kullanilmaktadir. siz
burada yeni bir shell actiginiz zaman oncelikli olarak fork() islemi
yapiyorsunuz ve parent process e ait olan ENV direk olarak child process
e geciyor. Bundan dolayidir ki ayni shell icinde baska shell acinca PATH
degiskenini en son hali kullanabiliyorsunuz. Cunku ENV, PATH i
icermektedir.

Yani olayin PATH in auto-exported bir degisken olmasi degil durum. yeni
process yaratilirken ENV degerinin child process e aktarilmasi
durumudur.

 
> Acikcasi aklima kullandiginiz terminal emulatorunde sorunu aramaktan
> baska birsey gelmiyor. Baska bir emulator denediniz mi?

katiliyorum. X de kullanilan diger terminal programlari ile de deneyin.
Ornegin KDE nin konsole filan gibi.

 

-- 
IYI CALISMALAR

MURAT KOC

-- Attached file included as plaintext by Ecartis -- -- File: signature.asc -- Desc: This is a digitally signed message part

-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux)

iQIXAwUAPQ8IJ76uWt8ry/OwFALG8Qf5AekbRo1f9qT27/gH3v2SHXO0OwJglIi8 3vhnmLZvMdDAFrIfQIzav6j4QnaZYEbjittgSPw3jp92Qf65btiOShELS/OwFEwc yCWK9SlyJWbcMh7XHotrwT0C/Uux95s320qWgoKMNG3D3z4RPukD4G1Nznsf9TaA luBo1ppnfeFFTQ9lB3PryJkxe5ZTw3fmbnL9iz1kf5Np4mBSZmnSS+v2Uzi7ZSmG 2yJpSJ4wu7AvnbaEQvhdfAKga4m3eJCsQrgpLQlvejNbP01TZwyOdwA+GzIK3K65 xz+DJtMhuGd4hnrh+Pr1cCLG7+oBLi3j4sBoyFluDzmrphEzBRiuegf/ToLUi0ul 9jMdflZ3oT8wX8M7HzNz7RNp9AqIt+NisYpiqiwc5IlWzNLkoOBQmsDv2mvtw8va Q8jxPoh4vOe30d+z8xs0QyUkJf9cJJS1olqg+fTBLlX7BGgC/fUC1JJNEGd6CZGW nJEYcoplrpLgFVo3QZ/D8f6toAmc/ePIENsbJhtYYM+3xGZtXwMxiXHTo5uooG2/ 2vlSus0VknKvIgJwtfhcX5ykYhxzJt1rB+gp5oKKAnBdTZN20a4ac5dn/9nU60oO /ZWGcRZQJYo37g3TqMWikRwBQBHAKfwYR4IjLPfDVqyv8KnMplS5d6NfKTTTIzKV D6Pj3UW3wS3LKQ== =t2KH -----END PGP SIGNATURE-----

----------------------------------------------------------------------- Liste üyeliğiniz ile ilgili her türlü işlem için http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.

Listeden çıkmak için: 'linux-request@linux.org.tr' adresine, "Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz. -----------------------------------------------------------------------


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

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.