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

HTML-Tutorial, HTML-Standardstil

html , Adresse , Blockzitat , Text , dd , div , d...

Der Unterschied zwischen Hash-Modus und Verlaufsmodus im Vue-Router

vue-router hat zwei Modi Hash-Modus Verlaufsmodus...

Referenzen und Referenzdetails in Vue3

Der Editor teilt Ihnen auch die entsprechenden Pr...

Erläuterung der MySQL-Indexoptimierung

Bei unserer täglichen Arbeit führen wir manchmal ...

Vue macht Div-Höhe verschiebbar

In diesem Artikel wird der spezifische Code von V...

Implementierung des Element-UI-Layouts (Zeilen- und Spaltenkomponenten)

Inhaltsverzeichnis Grundlegende Anweisungen und V...

Centos7-Startvorgang und Nginx-Startkonfiguration in Systemd

Centos7-Startvorgang: 1.post (Selbsttest beim Ein...

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

JavaScript, um das Bild mit der Maus zu bewegen

In diesem Artikel wird der spezifische JavaScript...

Beispiel für die Implementierung einer kaskadierenden MySQL-Replikation

Bei der sogenannten kaskadierenden Replikation sy...

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....

Tomcat Server Erste Schritte Super ausführliches Tutorial

Inhaltsverzeichnis 1. Einige Konzepte von Tomcat ...