Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Einführung und Verwendung der grundlegenden Shell-Syntax
1. Variablen
1. Benennungsregeln für Variablen: Beginnen Sie mit einem Buchstaben oder Unterstrich, gefolgt von Zahlen, Buchstaben oder Unterstrichen. Es ist am besten, die Variable nicht zufällig zu benennen, sondern sie zu erraten seine Bedeutung, wenn Sie den Variablennamen sehen:
[root@bogon ~]# egon_salary=20000
[root@bogon ~]# echo ${egon_salary }yuan20000yuan
4 Es ist nicht erforderlich, Datentypen in Bash zu deklarieren, der Standardwert ist der Zeichentyp
2. Operatoren
1. + - * / %
[root@bogon ~]# echo $[5 %2]
[root@bogon ~]# ((x+=1))
[root@bogon ~]# echo $x11
Verwenden Sie $?, um das Ergebnis der Befehlsausführung anzuzeigen.
[root@bogon ~]# x=10
[root@bogon ~]# echo $?
04. Rechner in der ShellIch sagte schon dass Sie $[] verwenden können, um einige einfache Operationen auszuführen, aber wenn es sich um Dezimaloperationen handelt, müssen Sie Berechnungen in der Shell verwenden
Zuerst müssen Sie die Software installieren, yum install -y bc
[root@bogon ~]# res=$(echo 'scale=2;1/3' |bc -l | cut -d'.' -f2)
33%
5.test command test
test
-n str Die Stringlänge ist nicht Null
-z str Die Zeichenfolgenlänge ist Null
-b Die Datei existiert und ist eine Blockdatei
-d Datei -e Datei existiert und ist eine Verzeichnisdatei
- f-Datei existiert und ist eine normale Datei
-h-Datei existiert und ist eine Linkdatei (dasselbe wie -L)
-s-Datei existiert und ist größer als null Bytes
Vergleich zwischen Dateien
Datei1 -nt Datei2 Datei1 wurde später als Datei2 erstellt
Datei1 -ot Datei2 Datei1 wurde früher als Datei2 erstellt
Vergleich zwischen ganzen Zahlen
int1 -ne int2 int1 und int2 sind nicht gleich
int1 -eq int2 int1 und int2 sind gleich
int1 -lt int2 int1 ist kleiner als int2
int1 -le int2 int1 ist kleiner oder gleich int2
int1 -gt int2 int1 ist größer als int2
int1 -ge int2 int1 ist größer als gleich int2
Vergleich zwischen Zeichenfolgen
str1 = str2 str1 und str2 sind gleich
str1! =str2 str1 und str2 sind nicht gleich
Vergleich zwischen Ausdrücken
Ausdruck1 -a Ausdruck2 Sowohl Ausdruck 1 als auch Ausdruck 2 sind wahr
Ausdruck1 -o Ausdruck2 Ausdruck Formel 1 oder Ausdruck 2 ist wahr
6. Testbeispiele
Numerischer Vergleichstest:
Stringtest[root@bogon ~]# [[ 2 > 1 ]][root@bogon ~]# echo $?0 [root@bogon ~]# ((20>10))[root@bogon ~]# echo $?0 [root@bogon ~]# ((20<10))[root@bogon ~]# echo $?1
[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0 [root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0 [root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1Außer bei einfachen Zahlen Verwenden Sie zum Vergleichen [[ ] ]
[root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?0 [root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?03. Prozesssteuerung
[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0
2) Bestimmen Sie die Klassenstufe
input your name : zhangcan input password : 123login successful [root@bogon ~]# ./usertest.sh input your name : hha input password : hag user or password error2 Schleife
#! /bin/bashuser='zhangcan'password='123'read -p 'input your name : ' name read -p 'input password : ' codeif [ $name = $user -a $code = $password ];then echo 'login successful'elseecho 'user or password error'fi~
#!/bin/bash #根据用户输入的成绩,判断所属档次,并输出给用户read -p 'input your score : ' scoreif [ $score -ge 90 ];then echo '优秀'elif [ $score -ge 70 -a $score -lt 90 ];then echo '良好'elif [ $score -ge 60 -a $score -lt 70 ];then echo '及格'elif [ $score -lt 60 ];then echo '较差'fidone
Beispiel: Bestimmen Sie die Benutzereingabe. Welcher Dateityp ist
3. for-Schleife for i in {1..10} #in muss nicht unbedingt von einer Zahl gefolgt werden, sofern vorhanden ist Alle Befehle, die Ergebnisse zurückgeben, können echo $i done#!/bin/bashwhile : do read -p 'input your file : ' fileif [ -z $file ];thencontinueelsebreakfi doneif [ -f $file ];then echo "$file is regular file"elif [ -b $file ];then echo "$file is block file"elif [ -d $file ];then echo "$file is directory file"elseecho "$file type unkonw"fiBeispiel 1: Schreiben Sie ein Skript, um die IPs zu testen, die im Subnetz verwendet werden können
4. Verschachtelte Schleifen
Beispiel 1: Ausgabe einer Multiplikationstabelle
#!/bin/bashfor i in {1..50} do ping -c1 192.168.16.$i &> /dev/null # -c1表示ping一次if [ $? -ne 0 ];then echo "192.168.16.$i successful"echo "192.168.16.$i" >> ~/ipavailable.txt fi done~
Beispiel 2: Überprüfen Sie das Anmeldekonto und das Passwort des Benutzers. Nach erfolgreicher Anmeldung können Sie den Befehl ausführen und beenden, wenn Sie quit eingeben
#!/bin/bashdir='/dev'for i in $(ls $dir) doif [ -h $dir/$i ];then ((link+=1))elif [ -f $dir/$i ];then (( rfile+=1))elif [ -d $dir/$i ];then ((directory+=1))elif [ -b $dir/$i ];then (( block+=1 ))else(( typeunknow+=1)) fi done echo 'block' $block echo 'regular file' $rfile echo 'directory' $directory echo 'link' $link echo 'unknow' $typeunknow
Das obige ist der detaillierte Inhalt vonEinführung und Verwendung der grundlegenden Shell-Syntax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!