A couple of questions ...

Giorgos Keramidas keramida at ceid.upatras.gr
Sat May 25 01:58:01 EEST 2002


On 2002-05-24 20:34, Tom Diamond wrote:

> 2. Δοκίμασα να κανω export κάποιες μεταβλητές μέσα σε scriptάκια
> αλλά δε φαίνεται να δουλεύει. Π.χ. :
>
> $cat test.sh
> #!/bin/sh
>
> export A_NEW_VAR=testing
>
> $./test.sh
> $echo $A_NEW_VAR
> [τίποτα]

Όταν τρέχεις κάποιο πρόγραμμα στο command-line του shell σου, αυτό
τρέχει σαν ξεχωριστή διαδικασία.  Το export που κάνει το "/bin/sh" που
τρέχει το script σου, ισχύει φυσικά, αλλά μόνο για το subshell του
login shell σου και για τα παιδιά του.

Αν θες ένα shell script να τρέξει "στο ίδιο process" που τρέχει και το
login shell σου, τότε χρησιμοποίησε την εντολή που φαίνεται παρακάτω:

	$ . test.sh

Η εντολή `.' (ναι μια τελεία σκέτη) θα τρέξει το script στο login
shell σου, οπότε δεν χρειάζεται να έχει και το ``#!/bin/sh'' στην
αρχή.  Έτσι όμως την εντολή ``export'' δεν θα την εκτελέσει κάποιο
subshell αλλά το ίδιο το login shell σου με όλα τα ενδιαφέροντα
side-effects που αυτό μπορεί να έχει :-)

-- 
Giorgos Keramidas    - http://www.FreeBSD.org
keramida at FreeBSD.org - The Power to Serve



More information about the Linux-greek-users mailing list