Μεταβλητές Περιβάλλοντος

Εικόνα: markos
Submitted by markos on Κυρ, 04/03/2007 - 22:03

Οι μεταβλητές περιβάλλοντος (environment variables) είναι μεταβλητές του κελύφους που ρυθμίζουν διάφορες λειτουργίες του ή ακόμη και άλλων διεργασιών. Οι μεταβλητές περιβάλλοντος κληρονομούνται από κάθε διεργασία που εκτελείται από το κέλυφος. Υπάρχουν ορισμένες προκαθορισμένες μεταβλητές που το κέλυφος ορίζει μόνο του, όπως η HOME, η TERM και η PATH που αναφέρθηκε σε προηγούμενη παράγραφο.

Για να υποκαταστήσετε τη μεταβλητή με τα περιεχόμενά της θα πρέπει να τη χρησιμοποιήσετε με τον τελεστή $ πρίν από το όνομα της μεταβλητής (και προαιρετικά περικλείοντάς τη σε αγκύλες {}):

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
$ echo ${PATH}
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games

Εκτός από τις προκαθορισμένες μεταβλητές, το κέλυφος σας δίνει τη δυνατότητα να ορίσετε μεταβλητές για δική σας χρήση, όπως π.χ. σε ένα σενάριο κελύφους. Με σωστή χρήση, οι μεταβλητές περιβάλλοντος μπορούν να σας γλυτώσουν σημαντικό χρόνο στη δημιουργία ενός σεναρίου κελύφους και μάλιστα μερικές φορές είναι πολύ δύσκολο (αν όχι αδύνατο) να πραγματοποιήσετε ορισμένες διαδικασίες χωρίς τη χρήση τους.
Ο ορισμός μιας μεταβλητή κελύφους γίνεται ως εξής:

$ var=value

Αυτή είναι μια τοπική μεταβλητή (όχι περιβάλλοντος) στην οποία έχει πρόσβαση μόνο το ίδιο το κέλυφος και δεν κληρονομείται στις διεργασίες που εκτελείτε από το κέλυφος. Η χρήση απλών μεταβλητών συναντάται κυρίως σε σενάρια κελύφους ή τη στιγμή της εκτέλεσης μιας εντολής. Π.χ. μπορείτε να ορίσετε ότι για μια συγκεκριμένη διεργασία η μεταβλητή PATH θα περιέχει και τον κατάλογο $HOME/bin ως εξής:

$ PATH=”$HOME/bin:$PATH” command

Έτσι, η εντολή command θα έχει για διαδρομή PATH και τον κατάλογο $HOME/bin, επιπλέον της προκαθορισμένης διαδρομής. Σημειώστε ότι ορίσαμε την PATH να περιέχει και την προηγούμενη τιμή της, διαφορετικά η PATH θα ήταν ορισμένη μόνο ως $HOME/bin.

Μια μεταβλητή μετατρέπεται σε μεταβλητή περιβάλλοντος “εξάγοντάς” τη με την εντολή export, είτε κατά τον ορισμό της ή αργότερα. Στο ακόλουθο παράδειγμα βλέπουμε την διαφορά της τοπικής μεταβλητής από τη μεταβλητή περιβάλλοντος.

$ var=one
$ var2=two
$ export var2
$ sh 
$ echo $var $var2
two
$ exit
$ echo $var $var2
one two

0
Your rating: None