Lo strato più esterno del sistema operativo Unix è chiamato il guscio . La shell è un'interfaccia tra l'utente e il sistema operativo . È possibile programmare la shell per automatizzare le attività di base . Unix fornisce diversi formati di programmazione di shell che seguono un modello di base comune . Il C Shell , Shell Korn , Bourne Shell e bash di GNU sono diffusi linguaggi di scripting . Uno script di shell è un programma che viene interpretata dalla shell . Gli script sono variabili . Si assegnano valori alle variabili e di accedervi in base alle esigenze . L' ambiente Unix
sistemi Unix e Unix-like , il guscio diventa l'ambiente dell'utente . Un processo ha il proprio ambiente . Un programma eseguibile accetta argomenti dalla sua linea di comando . Questi argomenti sono le sue variabili d'ambiente e occupano memoria nello spazio ambiente di processo . Le variabili in uno script di shell sono anche le variabili di ambiente e occupano spazio dati sullo stack processo . Qui , lo script di shell in esecuzione è il processo . Quindi , al livello più alto , l' ambiente di processo impone un limite al numero di variabili e di spazio occupato da loro.
The Shell Variabile
definire una variabile in un script di shell per l'assegnazione di un valore ad essa . Non ci sono tipi di dati definiti in uno script di shell . La variabile può assumere qualsiasi valore stringa di caratteri o valori numerici arbitrari . Quando si assegna il valore di una variabile di shell , il sistema alloca memoria sufficiente per memorizzare il valore . La sintassi varia con il sistema operativo e il tipo shell. Per esempio, nella shell Korn , si assegnano valori come questo : $ myvar = " ABCD123 " In C shell , la sintassi è la seguente : set MyVar = " ABCD123 "
Teoricamente non c'è limite sulla dimensione del valore della variabile . Tuttavia, come indicato nella Sezione 1 , le risorse del sistema operativo e lo spazio ambiente di processo in fase di esecuzione può potenzialmente negare lo spazio necessario per un lunghissimo valore .
Calcolo delle dimensioni di un guscio variabile
Calcolare la dimensione del guscio MyVar variabile come segue : $ MyVar_len = $ { # } MyVar
la seguente dichiarazione fa eco la dimensione in una sentence.echo "Che variabile lungo . La lunghezza della mia variabile è "+ $ { # MyVar } + " " L'output sarà simile a questo : . Che tempo variabile . La lunghezza della mia variabile è 7.
Limitazioni delle dimensioni
Il sistema operativo e il tipo di shell impongono un limite alla lunghezza del nome della variabile . In genere il nome non deve essere lungo più di 20 caratteri . Questa è una buona limitazione perché tutti i nomi più lunghi influenzerà leggibilità dello script . Il guscio limita anche la lunghezza di una parola nel valore . Una parola è una stringa di caratteri senza spazi . Il valore di una variabile può essere un gruppo di parole con spazi tra . Una variabile può anche tenere un array.
Buona programmazione Pratiche
Non è una buona pratica per assegnare valori molto lunghi per le variabili di shell . Se lo script elabora un flusso di dati, deve essere letta e scritta in un file temporaneo . Leggere o scrivere qualche byte alla volta in un ciclo fino a raggiungere la fine del file .