Zusammenfassung der grundlegenden Verwendung des $-Symbols in Linux

Zusammenfassung der grundlegenden Verwendung des $-Symbols in Linux

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.
Warum wird also ein Fehler gemeldet? Weil die so geschriebene Variable [ $a == "i am skyler"] nach dem Parsen zu [ i am skyler == "i am skyler" ] wird. Offensichtlich kann dieser Beurteilungsausdruck die Zeichenfolgen auf beiden Seiten des Gleichheitszeichens nicht beurteilen. Was wir wollen, ist der Vergleich [ "i am skyler" == "i am skyler" ]. So sind wir normalerweise Name"

[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

leicht

$[] 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:
  • Eine kurze Erklärung der Bedeutung der Shell-Variablen $#, $@, $0, $1, $2 in Linux
  • Der Unterschied zwischen php $_SERVER unter Windows und Linux
  • Lösen Sie das Problem der SSH-Remoteanmeldung bei Linux, bei der -bash-4.1$ angezeigt wird.
  • So ändern Sie $ in # in Linux

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 sowie zur Kennwortänderung unter Linux

>>:  JavaScript-Makrotasks und Mikrotasks

Artikel empfehlen

Bauprozess eines privaten Docker-Lagerhafens

1. Vorbereitung 1.1 Hafen herunterladen Harbor-Do...

Kennen Sie den Unterschied zwischen leerem Wert und Nullwert in MySQL

Vorwort Kürzlich habe ich festgestellt, dass die ...

Detaillierte Erklärung der Dreieckszeichnung und clevere Anwendungsbeispiele in CSS

führen Einige gängige Dreiecke auf Webseiten könn...

Linux-Installation Apache-Server-Konfigurationsprozess

Bereiten Sie die Taschen vor Installieren Überprü...

Befehlscodebeispiele für die Installation und Konfiguration von Docker

Docker-Installation Installieren von Abhängigkeit...

Detaillierte Erklärung häufig verwendeter CSS-Stile (Layout)

Kompatibel mit neuen CSS3-Eigenschaften In CSS3 k...

Zusammenfassung der Anwendungsbereiche von Kubernetes

Kubernetes ist aufgrund seiner Anwendungsportabil...

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

Einführung in den HTML-Standard für chinesische Zeichenkodierung

In HTML müssen Sie die von der Webseite verwendet...