Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Einführung und Verwendung der grundlegenden Shell-Syntax

Einführung und Verwendung der grundlegenden Shell-Syntax

Jun 20, 2017 am 11:24 AM
shell 基本 语法

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 }yuan

20000yuan

4 Es ist nicht erforderlich, Datentypen in Bash zu deklarieren, der Standardwert ist der Zeichentyp

2. Operatoren

1. + - * / %

[root@bogon ~]# echo $[5 %2]

1

2. Zuweisungsoperatoren: =, +=, -=, *= , /=, %=

[root@bogon ~]# x= 10

[root@bogon ~]# ((x+=1))

[root@bogon ~]# echo $x

11

3. Relationale Operatoren: <, >,!=,==,>=,<=,||,&

relationale Operatoren sind Wird oft mit (()) verwendet, kann [] das gleiche Ergebnis erzielen, aber (()) kann den Typ einer Datei nicht bestimmen. Sie müssen [] verwenden, um den Dateityp zu bestimmen, was den gleichen Effekt hat wie der Testbefehl


Verwenden Sie $?, um das Ergebnis der Befehlsausführung anzuzeigen.

[root@bogon ~]# x=10

[root @bogon ~]# ((x>=8))

[root@bogon ~]# echo $?

0

4. Rechner in der Shell

Ich 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)

[root@bogon ~] # echo ${res}%

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
Nach dem Login kopieren

Um Zahlen einfach zu vergleichen, verwenden Sie (( ))
[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0
[root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0
[root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1
Nach dem Login kopieren
Auß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 $?0
Nach dem Login kopieren
3. Prozesssteuerung
[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0
Nach dem Login kopieren
1.if-Zweig

 1 ) Benutzerkonto-Passwort überprüfen:

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 error
Nach dem Login kopieren
2 Schleife
while (Bedingung)
#! /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~
Nach dem Login kopieren
do

Befehl
#!/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 '较差'fi
Nach dem Login kopieren
done

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"fi
Nach dem Login kopieren
Beispiel 1: Schreiben Sie ein Skript, um die IPs zu testen, die im Subnetz verwendet werden können

Beispiel 2: Zählen Sie die Anzahl jedes Dateityps unter /dev

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~
Nach dem Login kopieren

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
Nach dem Login kopieren

     

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie installiere ich Classic Shell unter Windows 11? Wie installiere ich Classic Shell unter Windows 11? Apr 21, 2023 pm 09:13 PM

&lt;p&gt;Die Anpassung Ihres Betriebssystems ist eine großartige Möglichkeit, Ihren Alltag angenehmer zu gestalten. Sie können die Benutzeroberfläche ändern, benutzerdefinierte Designs anwenden, Widgets hinzufügen und mehr. Deshalb zeigen wir Ihnen heute, wie Sie ClassicShell unter Windows 11 installieren. &lt;/p&gt;&lt;p&gt;Dieses Programm gibt es schon seit langer Zeit und ermöglicht es Ihnen, das Betriebssystem zu ändern. Mittlerweile haben Freiwillige die Leitung der Organisation übernommen, die sich 2017 auflöste. Das neue Projekt heißt OpenShell und ist derzeit für Interessierte auf Github verfügbar. &lt;/p&gt;&a

Explorer.exe startet beim Systemstart nicht [Fix] Explorer.exe startet beim Systemstart nicht [Fix] Jun 03, 2023 am 08:31 AM

Heutzutage stoßen viele Windows-Benutzer auf schwerwiegende Windows-Systemprobleme. Das Problem besteht darin, dass Explorer.exe nach dem Laden des Systems nicht gestartet werden kann und Benutzer keine Dateien oder Ordner öffnen können. Allerdings können Windows-Benutzer in einigen Fällen den Windows Explorer manuell über die Eingabeaufforderung öffnen und müssen dies bei jedem Systemneustart oder nach dem Systemstart tun. Dies kann problematisch sein und ist auf die folgenden Faktoren zurückzuführen. Beschädigte Systemdateien. Aktivieren Sie die Schnellstarteinstellungen. Veraltete oder problematische Anzeigetreiber. An einigen Diensten im System wurden Änderungen vorgenommen. Geänderte Registrierungsdatei. Unter Berücksichtigung aller oben genannten Faktoren haben wir einige gefunden, die den Benutzern sicherlich helfen werden

Die PowerShell-Bereitstellung schlägt fehl und das HRESULT 0x80073D02-Problem wurde behoben Die PowerShell-Bereitstellung schlägt fehl und das HRESULT 0x80073D02-Problem wurde behoben May 10, 2023 am 11:02 AM

Wird beim Ausführen des Skripts in PowerShell die Fehlermeldung „Add-AppxPackage: Bereitstellung fehlgeschlagen mit HRESULT: 0x80073D02, Das Paket kann nicht installiert werden, da die von ihm geänderte Ressource derzeit verwendet wird. Fehler 0x80073D02...“ angezeigt? Wie in der Fehlermeldung angegeben, tritt dies auf, wenn der Benutzer versucht, eine oder alle WindowsShellExperienceHost-Anwendungen erneut zu registrieren, während der vorherige Prozess ausgeführt wird. Wir haben einige einfache Lösungen, um dieses Problem schnell zu beheben. Fix 1 – Beenden Sie den Experience-Host-Prozess, den Sie beenden müssen, bevor Sie den Powershell-Befehl ausführen

So verwandeln Sie Ihren Python-Code schnell in eine API So verwandeln Sie Ihren Python-Code schnell in eine API Apr 14, 2023 pm 06:28 PM

Wenn es um die API-Entwicklung geht, denken Sie vielleicht an DjangoRESTFramework, Flask und FastAPI. Ja, das heute geteilte Framework ermöglicht es Ihnen, vorhandene Funktionen schneller in APIs umzuwandeln. Einführung in Sanic Sanic[1] ist ein Python3.7+-Webserver und ein Web-Framework zur Verbesserung der Leistung. Es ermöglicht die Verwendung der in Python 3.5 hinzugefügten Async/Await-Syntax, wodurch Blockierungen effektiv vermieden und die Reaktionsgeschwindigkeit verbessert werden können. Sanic ist bestrebt, eine einfache und schnelle Möglichkeit zur Erstellung und Einführung bereitzustellen

So löschen Sie schnell die Zeile am Ende einer Datei unter Linux So löschen Sie schnell die Zeile am Ende einer Datei unter Linux Mar 01, 2024 pm 09:36 PM

Bei der Verarbeitung von Dateien unter Linux-Systemen ist es manchmal erforderlich, Zeilen am Ende der Datei zu löschen. Dieser Vorgang kommt in praktischen Anwendungen sehr häufig vor und kann durch einige einfache Befehle erreicht werden. In diesem Artikel werden die Schritte zum schnellen Löschen der Zeile am Ende der Datei im Linux-System vorgestellt und spezifische Codebeispiele bereitgestellt. Schritt 1: Überprüfen Sie die letzte Zeile der Datei. Bevor Sie den Löschvorgang durchführen, müssen Sie zunächst bestätigen, welche Zeile die letzte Zeile der Datei ist. Sie können den Befehl tail verwenden, um die letzte Zeile der Datei anzuzeigen. Der spezifische Befehl lautet wie folgt: tail-n1filena

Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Verschiedene Möglichkeiten, Shell-Skriptdateien unter Windows auszuführen Apr 13, 2023 am 11:58 AM

Windows-Subsystem für Linux Die erste Option ist die Verwendung des Windows-Subsystems für Linux oder WSL, einer Kompatibilitätsschicht für die native Ausführung binärer ausführbarer Linux-Dateien auf Windows-Systemen. Es funktioniert für die meisten Szenarien und ermöglicht Ihnen die Ausführung von Shell-Skripten in Windows 11/10. WSL ist nicht automatisch verfügbar, daher müssen Sie es über die Entwicklereinstellungen Ihres Windows-Geräts aktivieren. Sie können dies tun, indem Sie zu Einstellungen > Update & Sicherheit > Für Entwickler gehen. Wechseln Sie in den Entwicklermodus und bestätigen Sie die Abfrage mit Ja. Suchen Sie als nächstes nach W

Hier sind die Korrekturen für das Problem, dass Open Shell Windows 11 nicht funktioniert Hier sind die Korrekturen für das Problem, dass Open Shell Windows 11 nicht funktioniert Apr 14, 2023 pm 02:07 PM

Open Shell, das unter Windows 11 nicht läuft, ist kein neues Problem und plagt Benutzer seit der Einführung dieses neuen Betriebssystems. Die Ursache für das Problem, dass Open-Shell Windows 11 nicht funktioniert, ist nicht spezifisch. Dies kann durch unerwartete Fehler in Programmen, das Vorhandensein von Viren oder Malware oder beschädigte Systemdateien verursacht werden. Für diejenigen, die es nicht wissen: Open-Shell ist der Ersatz für Classic Shell, das 2017 eingestellt wurde. Sie können sich unser Tutorial zur Installation von Classic Shell unter Windows 11 ansehen. So ersetzen Sie das Startmenü von Windows 11

Super-Hardcore! 11 sehr praktische Python- und Shell-Skriptbeispiele! Super-Hardcore! 11 sehr praktische Python- und Shell-Skriptbeispiele! Apr 12, 2023 pm 01:52 PM

Einige Beispiele für Python-Skripte: Unternehmens-WeChat-Alarme, FTP-Clients, SSH-Clients, Saltstack-Clients, vCenter-Clients, Abrufen der Ablaufzeit des SSL-Zertifikats für Domänennamen, Senden der heutigen Wettervorhersage und zukünftiger Wettertrenddiagramme: SVN-Vollsicherung; Zabbix überwacht den Ablauf des Benutzerkennworts, erstellt lokales YUM und die Anforderungen der Leser im vorherigen Artikel (wenn die Auslastung hoch ist, finden Sie heraus, welche Prozessskripte eine relativ hohe Auslastung belegen und Benachrichtigungen speichern oder pushen). Bitte haben Sie etwas Geduld. Am Ende des Artikels gibt es doch noch ein Easter Egg. Python-Skript ist Teil des WeChat-Alarms für Unternehmen. Dieses Skript verwendet die WeChat-Anwendung des Unternehmens, um einen WeChat-Alarm durchzuführen, und kann verwendet werden

See all articles