Latest web development tutorials

Shell? Variabile

Variabili Shell

Quando si definisce una variabile, il nome della variabile senza un segno di dollaro ($, variabili del linguaggio PHP necessari), come ad esempio:

your_name="w3big.com"

Si noti che non vi è spazio tra il nome della variabile e il segno di uguale, che può essere familiare a voi e tutti i linguaggi di programmazione non sono gli stessi. Nel frattempo, il nome della variabile deve seguire queste regole di denominazione:

  • Il primo carattere deve essere una lettera (az, AZ).
  • Niente spazi, usano il trattino (_).
  • Non è possibile utilizzare la punteggiatura.
  • Non è possibile utilizzare bash a parola chiave (comando help per visualizzare le parole chiave riservate disponibili).

Oltre a esplicitamente l'assegnazione diretta, è anche possibile assegnare valori a variabili con affermazioni come:

for file in `ls /etc`

La dichiarazione di cui sopra il nome del file / etc dalla circolazione.


Utilizzo delle variabili

Utilizzare una variabile definita, finché il nome della variabile preceduto da un segno di dollaro, in questo modo:

your_name="qinjx"
echo $your_name
echo ${your_name}

Nome della variabile al di fuori delle parentesi graffe sono opzionali, oltre a non va bene, aggiungere le parentesi graffe per aiutare a spiegare le variabili di identificazione di confine, come ad esempio il caso seguente:

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done

Se non si danno le variabili di abilità più bretelle, scritte echo "Sono bravo a $ skillScript", l'interprete metterà $ skillScript come variabile (il suo valore è vuoto), l'esecuzione di codice non è il risultato che ci aspettiamo di nuovo lo stesso.

Dillo a tutte le variabili parentesi, si tratta di una buona pratica di programmazione.

variabili definite, possono essere ri-definiti, come ad esempio:

your_name="tom"
echo $your_name
your_name="alibaba"
echo $your_name

Scrivere è legale, ma nota che quando il secondo incarico non può scrivere $ nome = "Alibaba", utilizzare una variabile quando viene aggiunto al simbolo del dollaro ($).

Variabili di lettura

Utilizzare il comando variabili di sola lettura possono essere definite come di sola lettura variabile, il valore di Variabili di lettura non possono essere cambiati.

Gli esempi che seguono cercano di modificare le variabili di sola lettura, i risultati viene data:

#!/bin/bash
myUrl="http://www.w3cschool.cc"
readonly myUrl
myUrl="http://www.w3big.com"

Eseguire lo script con i seguenti risultati:

/bin/sh: NAME: This variable is read only.

rimuovere variabile

Utilizzare il comando unset per eliminare una variabile. sintassi:

unset variable_name

La variabile non può essere riutilizzato dopo essere stato rimosso. comando unset non può rimuovere le variabili di sola lettura.

Esempi

#!/bin/sh
myUrl="http://www.w3big.com"
unset myUrl
echo $myUrl

Esempi di realizzazione di cui sopra non avranno uscita.

Tipi di variabili

Quando si esegue la shell, ci saranno tre parametri simultaneamente:

  • 1) Variabili locali Le variabili locali definite nello script o comando è valido solo nel caso shell corrente, altro programma di avvio della shell non può accedere a variabili locali.
  • 2) variabili ambientali tutti i programmi, compreso il programma di shell iniziato, possono accedere alle variabili d'ambiente, alcune applicazioni richiedono variabili d'ambiente per garantire il loro normale funzionamento. Quando necessario, lo script di shell può anche definire variabili d'ambiente.
  • 3) le variabili di shell shell variabile è una variabile speciale impostata dal programma di shell. shell parte variabile della variabile di ambiente, alcuni sono variabili locali per garantire il normale funzionamento del guscio

stringa di Shell

programmazione della shell stringa è i tipi di dati più comuni e utili (ad eccezione di numeri e stringhe, manca anche altri tipi di utile), le stringhe possono essere racchiuse tra virgolette singole, virgolette doppie possono anche essere utilizzati, o non essere tra virgolette. La differenza tra virgolette singole e doppie virgolette con PHP è simile.

virgolette singole

str='this is a string'

Singolo-citati stringhe restrizioni:

  • Tutti i caratteri tra virgolette singole vengono emessi come singole virgolette nella variabile stringa non è valido;
  • stringhe racchiuse tra virgolette singole non possono apparire in una singola citazione (utilizzare le virgolette singole dopo il carattere di escape né).

doppi apici

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"

Doppia cita vantaggi:

  • virgolette doppie possono avere variabili
  • doppi apici possono apparire carattere di escape

concatenazione di stringhe

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

Ottenere la lunghezza della stringa

string="abcd"
echo ${#string} #输出 4

estratto di stringa

I seguenti esempi dei primi due stringhe di caratteri iniziare a catturare quattro personaggi:

string="w3big is a great site"
echo ${string:1:4} # 输出 unoo

Trova sottostringa

Trova carattere posizione "I o s":

string="w3big is a great company"
echo `expr index "$string" is`  # 输出 8

Nota: Lo script precedente "` "anti-citazioni piuttosto che apici" ' "Non lasciatevi ingannare, oh.


array di Shell

bash supporta matrice unidimensionale (non supporta gli array multidimensionali), e non definisce la dimensione della matrice.

Simile al linguaggio C, l'indice di elementi dell'array dal numero 0 di partenza. Ottiene una matrice di elementi di sfruttare il pedice, l'indice può essere un numero intero o un'espressione aritmetica cui valore deve essere maggiore o uguale a 0.

definire gli array

In Shell, usare le parentesi per indicare una matrice, gli elementi dell'array con i simboli "spaziali" separati. La forma generale di un array è definito come segue:

数组名=(值1 值2 ... 值n)

Ad esempio:

array_name=(value0 value1 value2 value3)

o

array_name=(
value0
value1
value2
value3
)

È inoltre possibile definire separatamente per ogni componente della matrice:

array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

Non è possibile utilizzare un indice continuo, e non c'è limite sotto il target di riferimento.

Leggi serie

Il formato generale è letta valore elemento dell'array:

${数组名[下标]}

Ad esempio:

valuen=${array_name[n]}

Utilizzare il simbolo @ in grado di ottenere un array di tutti gli elementi, come ad esempio:

echo ${array_name[@]}

Ottenere lunghezza della matrice

Ottiene un array di lunghezze di lunghezza della stringa e ottenere allo stesso modo, ad esempio:

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}

Shell Note

Line con "#" all'inizio del commento, verrà ignorato dall'interprete.

sh non ci sono commenti multi-linea, ogni linea può aggiungere solo un segno #. Solo in questo modo:

#--------------------------------------------
# 这是一个注释
# author:本教程
# site:www.w3big.com
# slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

Se il processo di sviluppo, incontrano grandi blocchi di codice bisogno di commentare temporaneamente dopo un po 'e senza commenti, come farlo?

Ogni riga aggiungere un simbolo # troppo laboriosa, si può mettere un po 'di codice per essere annotati con un paio di parentesi graffe, definita come una funzione, non c'è posto per chiamare questa funzione, questo codice non verrà eseguito, e ha raggiunto come annotazioni effetto.