Einführung in die Shell-Programmierung Grundlegende Grammatik

Einführung in Shell Script

Konzept

Shell-Skript ist eine Textdatei, die eine Reihe von Befehlen enthält.
Shell liest diese Datei und führt Befehle aus

Anwendungsszenarien

  • Wiederholter Betrieb
  • Massentransaktionsverarbeitung
  • Automatisierter Betrieb und Wartung
  • Geplante Aufgabenausführung

Das erste Shell-Skript

Schreiben Sie das erste Shell-Skript helloword.sh

#!/bin/bash
echo “Hello World”

#! ist eine vereinbarte Marke, die dem System mitteilt, welchen Interpreter das Skript ausführen muss

Allgemeine Ausführungsmethoden von Skripten

Das erste: Verwenden Sie den relativen Pfad oder den absoluten Pfad von bash oder sh + script (geben Sie nicht die Erlaubnis script + x).

sh helloworld.sh
bash helloworld.sh

Der zweite Typ: Verwenden Sie den absoluten Pfad oder den relativen Pfad des Eingabeskripts, um das Skript auszuführen (muss über die ausführbare Berechtigung + x verfügen). "

  • Geben Sie dem Skript helloworld.sh zunächst die Berechtigung + x
chmod 777 helloworld.sh
  • Skript ausführen
./helloworld.sh

Variablen in der Shell

Systemvariable

Allgemeine Systemvariablen:

$ HOME, $ PWD, $ SHELL, $ USER usw.

Hinweis: Alle Variablen in der aktuellen Shell anzeigen: set

[root@cent02 ~]# echo $PWD
/root

Benutzerdefinierte Variable

Grundlegende Grammatik

  • Variable definieren: Variable = Wert
  • Variable rückgängig machen: Variable zurücksetzen
  • Deklarieren Sie statische Variablen: schreibgeschützte Variablen, Hinweis: Kann nicht deaktiviert werden

Regeln zum Definieren von Variablen

  • Variablennamen können aus Buchstaben, Zahlen und Unterstrichen bestehen, sie können jedoch nicht mit Zahlen beginnen.
  • Auf beiden Seiten des Gleichheitszeichens dürfen keine Leerzeichen stehen
  • Variablennamen werden im Allgemeinen in Großbuchstaben verwendet

Weisen Sie einer Variablen den Rückgabewert des Befehls zu

  • A = `ls -la` backquote, führen Sie den Befehl inside aus und geben Sie das Ergebnis an die Variable A zurück
  • A = $ (ls -la) entspricht Backticks
       NN0[root@cent02 ~]# A=`ll`
[root@cent02 ~]# echo $A
total 48 -rw-------. 1 root root 1320 Aug 11 03:20 anaconda-ks.cfg -rw-r--r--. 1 root root 18430 Aug 18 03:57 ‪H:testschool.sql -rw-r--r--. 1 root root 10399 Aug 19 01:12 

Umgebungsvariablen festlegen

Name der Exportvariablen = Variablenwert (Funktionsbeschreibung: Shell-Variablen als Umgebungsvariablen ausgeben)

Quellkonfigurationsdatei (Funktionsbeschreibung: Die geänderten Konfigurationsinformationen werden sofort wirksam.)

echo $ Variablenname (Funktionsbeschreibung: Abfrage des Werts der Umgebungsvariablen)

Positionsparametervariable

  • $ n (Funktionsbeschreibung: n ist eine Zahl, $ 0 steht für den Befehl selbst, $ 1- $ 9 für den ersten bis neunten Parameter, Parameter über zehn, Parameter über zehn müssen in geschweiften Klammern stehen, z. B. $ {10})
  • $ * (Funktionsbeschreibung: Diese Variable repräsentiert alle Parameter in der Befehlszeile, $ * betrachtet alle Parameter als Ganzes)
  • $ @ (Funktionsbeschreibung: Diese Variable repräsentiert auch alle Parameter in der Befehlszeile, aber $ @ behandelt jeden Parameter anders.)
  • $ # (Funktionsbeschreibung: Diese Variable repräsentiert die Anzahl aller Parameter in der Befehlszeile)

Vordefinierte Variablen

  • $$ (Funktionsbeschreibung: Prozess-ID (PID) des aktuellen Prozesses)
  • $! (Funktionsbeschreibung: Prozess-ID (PID) des letzten im Hintergrund ausgeführten Prozesses)
  • $? (Funktionsbeschreibung: Der Rückgabestatus des zuletzt ausgeführten Befehls. Wenn der Wert dieser Variablen 0 ist, beweist dies, dass der vorherige Befehl korrekt ausgeführt wurde. Wenn der Wert dieser Variablen nicht 0 ist (welche Zahl vom Befehl selbst bestimmt wird), dann Beweisen Sie, dass der vorherige Befehl falsch ausgeführt wurde.)

Operator

  • "$ ((Ausdruck))" oder "$ [Ausdruck]"
    Ausdruck m + n Beachten Sie, dass zwischen den Ausdrucksoperatoren Leerzeichen stehen müssen
  • Ausdruck m-n
    Ausdruck *, /,% Multiplikation, Division, Rest

Bedingtes Urteil

[Bedingung] (Beachten Sie, dass vor und nach der Bedingung Leerzeichen stehen müssen.)

# Nicht leer gibt true zurück. Sie können $? Zum Überprüfen verwenden (0 ist true,> 1 ist false).

Häufig verwendete Urteilsbedingungen

  • Vergleich zweier Ganzzahlen

    Optionen Beschreibung
    -eq gleich
    -geboren Nicht gleichzusetzen mit
    -gt mehr als die
    -lt Weniger als
    -das Gleich oder kleiner als
    -geben größer als oder gleich wie
  • Beurteilen Sie nach Dateiberechtigungen

    Optionen Beschreibung
    -d Bestimmen Sie, ob es sich um ein Verzeichnis handelt
    -e Bestimmen Sie, ob das Verzeichnis oder die Datei vorhanden ist
    -f Bestimmen Sie, ob es sich um eine Datei handelt
    -r Bestimmen Sie, ob eine Datei oder ein Verzeichnis vom aktuellen Benutzer gelesen werden kann
    -w Bestimmen Sie, ob die Datei oder das Verzeichnis vom aktuellen Benutzer beschreibbar ist
    -x Bestimmen Sie, ob die Datei oder das Verzeichnis für den aktuellen Benutzer ausführbar ist

Prozesssteuerung

wenn Urteil

if [ 条件判断式 ];then 

	程序 

fi

oder

if [ 条件判断式 ] 

	then

		程序 

	elif [条件判断式]

	then

		程序 

fi

Hinweis: (1) [Bedingte Beurteilungsformel], zwischen den Klammern und der bedingten Beurteilungsformel muss ein Leerzeichen stehen. (2) Die zweite Methode wird empfohlen

case Anweisung

case $变量名 in 

	"值 1") 

		如果变量的值等于值 1,则执行程序 1 

		;; 

	"值 2") 

		如果变量的值等于值 2,则执行程序 2 

		;; 

…省略其他分支… 

	*)

		如果变量的值都不是以上的值,则执行此程序

		;; 

esac

für Schleife

for 变量 in 值 1 值 2 值 3… 

	do

		程序 

	done
for (( 初始值;循环控制条件;变量变化 )) 

	do

		程序 

	done

while-Schleife

while [ 条件判断式 ] 

	do

		程序 

	done

read read console input

read(选项)(参数) 

Optionen:

-p: Geben Sie die Eingabeaufforderung beim Lesen des Werts an.

-t: Geben Sie die Wartezeit (Sekunden) beim Lesen des Werts an. Wenn er nicht innerhalb der angegebenen Zeit eingegeben wird, wartet er nicht mehr. .

Parameter

Variable: Geben Sie den Variablennamen an, um den Wert zu lesen

Funktion

Systemfunktion

  • Grundname Grundsyntax

Funktion: Kehren Sie zum letzten Teil des vollständigen Pfads zurück, der häufig zum Abrufen des Dateinamens verwendet wird

Basisname [Pfadname] [Suffix]

Basisname [Zeichenfolge] [Suffix] (Funktionsbeschreibung: Der Befehl Basisname löscht alle Präfixe einschließlich des letzten ('/').

Zeichen, und zeigen Sie dann die Zeichenfolge an.

Optionen:

Suffix ist das Suffix. Wenn ein Suffix angegeben wird, entfernt der Basisname das Suffix aus dem Pfadnamen oder der Zeichenfolge.

  • Grundlegende Syntax von dirname

Funktion: Rückkehr zum letzten / vorherigen Teil des vollständigen Pfads, häufig verwendet, um zum Pfadteil zurückzukehren

absoluter Pfad der Verzeichnisdatendatei (Funktionsbeschreibung: Entfernen Sie den Dateinamen aus dem angegebenen Dateinamen, der den absoluten Pfad enthält (kein Verzeichnis)

Teil) und kehren Sie dann zum verbleibenden Pfad (Teil des Verzeichnisses) zurück.)

Benutzerdefinierte Funktion

[ function ] funname[()] 

{
    
    

	Action; 

	[return int;] 

}
调用直接写函数名:funname []

Ich denke du magst

Origin blog.csdn.net/zmzdmx/article/details/108281146
Empfohlen
Rangfolge