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

Lösung für den Fehler „Mehrere Primärschlüssel definiert“ in MySQL

Es gibt zwei Möglichkeiten, einen Primärschlüssel...

Analyse der MySQL-Transaktionsmerkmale und Ebenenprinzipien

1. Was ist eine Transaktion? Eine Datenbanktransa...

Lösung zum Vergessen des Administratorkennworts der MySQL-Datenbank

1. Geben Sie den Befehl mysqld --skip-grant-table...

Grundlegendes Tutorial zur Steuerung des mobilen Roboters Turtlebot3 mit ROS

Chinesisch-Tutorial https://www.ncnynl.com/catego...

Detaillierte Erläuterung der bidirektionalen Bindung von Vue

Inhaltsverzeichnis 1. Zwei-Wege-Bindung 2. Wird d...

MySQL: Praktische Erfahrung mit der Verwendung der Insert-Anweisung

Inhaltsverzeichnis 1. Mehrere Syntaxen von Insert...

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

Docker-Compose-Schritte zum Konfigurieren der Spring-Umgebung

Vor Kurzem musste ich das Projekt für die Mitglie...

Detaillierte Erklärung des JavaScript-Statuscontainers Redux

Inhaltsverzeichnis 1. Warum Redux 2. Redux-Datenf...

Linux-Installation Redis-Implementierungsprozess und Fehlerlösung

Ich habe heute Redis installiert und es sind eini...

Fabric.js implementiert DIY-Postkartenfunktion

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