Linux-Version: CentOS 7 [root@azfdbdfsdf230lqdg1ba91 ~]# cat /etc/redhat-release CentOS Linux Version 7.4.1708 (Core) [root@azfdbdfsdf230lqdg1ba91 ~]# uname -a Linux azfdbdfsdf230lqdg1ba91 3.10.0-693.2.2.el7.x86_64 #1 SMP Dienstag, 12. September 2017, 22:26:13 UTC x86_64 x86_64 x86_64 GNU/Linux [root@azfdbdfsdf230lqdg1ba91 ~]# $ Symbol Gras gesetzt Ziel Das $-Symbol spielt im Linux-System viele wichtige Rollen, insbesondere beim Schreiben von Bash-Skripten, wo $ überall zu sehen ist. Aufgrund seiner ständigen Veränderung und Vielfalt ist es eine Herausforderung, es zu beherrschen und zu verwenden, insbesondere sich daran zu erinnern. Lassen Sie uns nun seine Verwendung zusammenfassen und eine Sammlung erstellen. Die Beherrschung dieser Fähigkeiten wird Ihnen zwar keine große Gehaltserhöhung einbringen, da diese in Vorstellungsgesprächen nicht gefragt werden, aber sie wird Ihre Arbeitseffizienz steigern und Ihren Horizont erweitern. Zu den mir derzeit bekannten Verwendungen von $ gehören $, "$", $0 $1 $n, $#, $@ $*, $?, $(), ${}, ${#}, $[], $-, $! und $$. Extra !$, !!, detaillierte Beschreibung wiederum $ Variablenwert abrufen $ kann den Wert der Variablen abrufen [root@izbp10lqlgy2g31s41bt94z ~]# a=1 [root@izbp10lqlgy2g31s41bt94z ~]# echo $a 1 Um den Wert einer Variablen zu erhalten, verwenden Sie am besten „$“. Warum gibt es diesen Vorschlag? Siehe das Beispiel [root@izbp10lqlgy2g31s41bt94z ~]# echo erhält Wert von a = $a Holen Sie sich den Wert von a = 1 [root@izbp10lqlgy2g31s41bt94z ~]# echo "Wert von a = $a abrufen" Holen Sie sich den Wert von a = 1 Wie Sie sehen, scheint der Effekt derselbe zu sein, egal ob Anführungszeichen vorhanden sind oder nicht. Ziehen Sie noch keine voreiligen Schlüsse, lesen Sie weiter. [root@izbp10lqlgy2g31s41bt94z ~]# a="ich bin Skyler" [root@izbp10lqlgy2g31s41bt94z ~]# [ $a == "ich bin Skyler" ] -bash: [: zu viele Argumente Hier ist [] ein bedingtes Beurteilungssymbol, das dem Testbefehl entspricht. Er will feststellen, ob der Wert der Variablen a gleich „Ich bin Skyler“ ist. [root@izbp10lqlgy2g31s41bt94z ~]# [ "$a" == "ich bin Skyler" ] [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 0 Verwenden Sie einfach doppelte Anführungszeichen. Hier wird $? im Voraus verwendet, um festzustellen, ob das Ausführungsergebnis des vorherigen Befehls korrekt ist. Im Ausgabeergebnis zeigt 0 eine erfolgreiche Ausführung an und ein Wert ungleich Null weist auf einen Fehler hin. ${} wird verwendet, um die Grenzen von Variablen zu unterscheiden und dem Programm klar mitzuteilen, welcher Variablenwert übernommen werden soll Im folgenden Beispiel kann das Programm ohne das Hinzufügen von {} nicht bestimmen, welche von ab $abc eine Variable ist und kann nicht analysieren [root@izbp10lqlgy2g31s41bt94z ~]# echo "Wert von a = $abc abrufen" Wert von a abrufen = [root@izbp10lqlgy2g31s41bt94z ~]# echo "Wert von a = ${a}bc abrufen" Holen Sie sich den Wert von a = 1bc [root@izbp10lqlgy2g31s41bt94z ~]# ${#}Länge des Variablenwertes abrufen [root@izbp10lqlgy2g31s41bt94z ~]# echo "Länge von a abrufen = ${#a}" Länge von a = 1 ermitteln [root@izbp10lqlgy2g31s41bt94z ~]# a=11111 [root@izbp10lqlgy2g31s41bt94z ~]# echo "Länge von a abrufen = ${#a}" Holen Sie sich die Länge von a = 5 [root@izbp10lqlgy2g31s41bt94z ~]# a=skyler [root@izbp10lqlgy2g31s41bt94z ~]# echo "Länge von a abrufen = ${#a}" Länge von a = 6 erhalten [root@izbp10lqlgy2g31s41bt94z ~]# $0 $1 $n Holen Sie sich den Dateinamen und den Parameterwert, der normalerweise in Bash-Skripten verwendet wird $0 stellt den Dateinamen des Shell-Skripts dar; beginnend bei 1 stellt es die Anzahl der Parameter dar und 1 stellt den ersten Parameter dar. Hier erstellen wir eine ausführbare Datei test.sh Erstellen Sie eine Datei test.sh und füllen Sie sie mit Code [root@izbp10lqlgy2g31s41bt94z ~]# echo 'echo $0 $1 $2' > test.sh [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh Echo $0 $1 $2 Führen Sie test.sh aus und übergeben Sie die Variable [root@izbp10lqlgy2g31s41bt94z ~]# sh test.sh i am skyler test.sh ich bin Wie Sie sehen, werden die ersten beiden der drei Parameter ausgedruckt. Da wir $3 nicht deklariert haben, werden der Dateiname und die ersten beiden Parameter ausgedruckt. $# Anzahl der Parameter abrufen [root@izbp10lqlgy2g31s41bt94z ~]# echo 'echo $# $0 $1' > test.sh [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh echo $# $0 $1 [root@izbp10lqlgy2g31s41bt94z ~]# sh test.sh Ich bin ein Shuashua 4 test.sh I $@ $* Referenzparameterliste im Array-Stil Der Unterschied zwischen ihnen besteht darin, dass bei Verwendung von doppelten Anführungszeichen, vorausgesetzt, der übergebene Parameter ist 1 2 3, der Wert von "*" "1 2 3" ist, eine Variable test.sh echo '$@ Array-Parameterformat' für x in "$@" Tun echo + $x Erledigt echo '$* Array-Parameterformat' für x in "$*" Tun echo + $x Erledigt root@izbp10lqlgy2g31s41bt94z:~# sh test.sh 1 2 3 Array-Parameterformat von $@+ 1 + 2 + 3 $* Array-Parameterformat + 1 2 3 $? Ermitteln Sie, ob der vorherige Befehl erfolgreich ausgeführt wurde Der Wert für den Ausführungserfolg beträgt 0, der Wert für den Fehler ist ungleich 0. [root@izbp10lqlgy2g31s41bt94z ~]# ll Gesamtdosis 172 -rw-r--r-- 1 root root 49392 25. Februar 2019 hs_err_pid24203.log -rw-r--r-- 1 root root 49425 13. Februar 2019 hs_err_pid25726.log [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 0 [root@izbp10lqlgy2g31s41bt94z ~]# ca ff -bash: ca: Befehl nicht gefunden [root@izbp10lqlgy2g31s41bt94z ~]# echo $? 127 $() entspricht der Verwendung von Anführungszeichen
$[] Ausdrucksauswertung Derzeit wird [] nicht für Beurteilungsszenarien verwendet. [] wird im Allgemeinen als Beurteilung in bedingten Anweisungen verwendet, z. B. „if while“ in Bash-Skripten. [root@izbp10lqlgy2g31s41bt94z ~]# echo $[5 + 5] 10 $ - zeigt die aktuellen von der Shell verwendeten Optionen an [root@izbp10lqlgy2g31s41bt94z ~]# echo $- ihnBH Erklärung: Jedes Zeichen in himBH ist eine Shell-Option. Weitere Informationen finden Sie in man bash. Suchen Sie dort nach -h -B usw. Weitere Informationen finden Sie unter: http://kodango.com/explain-shell-default-options $! Holt die PID des letzten im Hintergrund laufenden Prozesses. Weitere Anwendungen in Bash-Skripten [root@izbp10lqlgy2g31s41bt94z ~]# cat test.sh & [1] 362 [root@izbp10lqlgy2g31s41bt94z ~]# echo $# $0 $1 ^C [1]+ Vollständiger cat test.sh [root@izbp10lqlgy2g31s41bt94z ~]# echo $! 362 !$ übergibt die Parameter des vorherigen Befehls an die Parameter des nächsten Befehls. Dies ist normalerweise praktischer und wird häufiger in Bash-Skripten verwendet. [root@izbp10lqlgy2g31s41bt94z ~]# cd /Benutzer/skyler/Projekt/test [root@izbp10lqlgy2g31s41bt94z ~]# ll !$ [root@izbp10lqlgy2g31s41bt94z ~]# ll /Benutzer/skyler/Projekt/test 362 !! Gibt den vorherigen Befehl aus, normalerweise bequemer, wird häufiger in Bash-Skripten verwendet [root@izbp10lqlgy2g31s41bt94z ~]# !! [root@izbp10lqlgy2g31s41bt94z ~]# ll /Benutzer/skyler/Projekt/test $$ Holen Sie sich die aktuelle Prozess-PID [root@izbp10lqlgy2g31s41bt94z ~]# echo $$ 31268 [root@izbp10lqlgy2g31s41bt94z ~]# ps -ef|grep 31268 root 31268 31266 0 08:10 Punkte/0 00:00:00 -bash Der aktuelle Prozess ist Bash, PID ist 31268 Üben Sie öfter an Wochentagen und fragen Sie danach, wenn Sie es brauchen Der Effekt kann auch durch Paging und Pulling von Segmenten erzielt werden, der konkrete Effekt hängt jedoch vom Geschäftsszenario ab. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: JavaScript-Makrotasks und Mikrotasks
html , Adresse , Blockzitat , Text , dd , div , d...
vue-router hat zwei Modi Hash-Modus Verlaufsmodus...
Der Editor teilt Ihnen auch die entsprechenden Pr...
Wirkung: Erstellen Sie zunächst fünf Vue-Schnitts...
Bei unserer täglichen Arbeit führen wir manchmal ...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis Grundlegende Anweisungen und V...
Centos7-Startvorgang: 1.post (Selbsttest beim Ein...
Es gibt zwei Möglichkeiten, schreibgeschützte Eing...
In diesem Artikel wird der spezifische JavaScript...
1. Geben Sie zuerst das MySQL des Servers ein, um...
Bei der sogenannten kaskadierenden Replikation sy...
Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....
Testumgebung: C:\>systeminfo | findstr /c:&quo...
Inhaltsverzeichnis 1. Einige Konzepte von Tomcat ...