Inhaltsverzeichnis
3.【 $#】:参数个数" >3.【 $#】:参数个数
5. 【$@】:所有参数" >5. 【$@】:所有参数
6. 【$?】:上一个命令的退出状态码" >6. 【$?】:上一个命令的退出状态码
7. 【$$】:当前进程ID号" >7. 【$$】:当前进程ID号
8. 【$!】:最近一次在后台运行的进程的PID号" >8. 【$!】:最近一次在后台运行的进程的PID号
9. 【$-】:获取当前Shell的选项标志" >9. 【$-】:获取当前Shell的选项标志
10. 【$IFS】:指定Shell脚本中的字段分隔符" >10. 【$IFS】:指定Shell脚本中的字段分隔符
Heim Computer-Tutorials Computerwissen Welche Bedeutung haben Sonderzeichen in Linux-Shell-Skripten?

Welche Bedeutung haben Sonderzeichen in Linux-Shell-Skripten?

Mar 05, 2024 pm 02:58 PM
脚本 参数 shell shell脚本

In Linux-Shell-Skripten sind einige spezielle Parameter vordefiniert, die unterschiedliche Bedeutungen und Rückgabewerte darstellen. Sie werden im Folgenden einzeln zusammengefasst.

1. [$0]: Skriptname

$0返回当前执行的shell脚本的名称。

2.【1-9】:命令行参数1到9

$1-$9这9个分别代表脚本执行命令第一个参数、第二个参数、第三个参数……第9个参数。

例如,假设我们有一个名为 test.sh 的Shell脚本,它的内容如下:

#!/bin/bash

echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"
Nach dem Login kopieren

在运行脚本时,我们可以给它传递两个参数,比如:

./test.sh hello world
Nach dem Login kopieren

这时候脚本会输出:

Script name: test.sh
First argument: hello
Second argument: world
Nach dem Login kopieren

说明 代表脚本名,1 代表第一个参数,$2代表第二个参数。

3.【 $#】:参数个数

它表示所有参数的个数。

#!/bin/bash

echo "Number of arguments: $#"
Nach dem Login kopieren

运行脚本 ./test.sh hello world,输出 Number of arguments: 2

4. 【$*】:所有参数

$*表示所有参数。

#!/bin/bash

echo "All arguments: $*"
Nach dem Login kopieren

运行脚本 ./test.sh hello world,输出 All arguments: hello world

5. 【$@】:所有参数

$@也表示所有参数:

#!/bin/bash

echo "All arguments: $@"
Nach dem Login kopieren

运行脚本 ./test.sh hello world,输出 All arguments: hello world

上面$*和$@都是用来获取所有脚本参数的特殊变量。它们之间的区别在于,如何将参数作为单个字符串或多个独立字符串进行处理。

  • $*会把所有的参数解释成一个单词(单个字符串),即每个参数之间不会加上空格,全部组合成一个字符串,用IFS(默认是空格)分隔。所以,将*放在双引号里,预处理$符号,保持长字符串的完整性:
#!/bin/bash

echo "Using $*:"
for arg in "$*"; do
echo $arg
done
Nach dem Login kopieren
  • $@会把所有的参数看成是独立的单词(多个独立的字符串),即每个参数之间加上空格,将每个参数作为一个独立的字符串处理。
#!/bin/bash

echo "Using $@:"
for arg in "$@"; do
echo $arg
done
Nach dem Login kopieren

下面我们可以通过一个示例来理解两者的区别。假设我们有一个shell脚本,名为 test.sh 并拥有以下内容:

#!/bin/bash

echo "Using $*:"
for arg in "$*"; do
echo $arg
done

echo "Using $@:"
for arg in "$@"; do
echo $arg
done
Nach dem Login kopieren

然后,在终端上执行以下命令:

$ ./test.sh one two three
Nach dem Login kopieren

当我们执行脚本时,输出如下所示:

Using $*:
one two three
Using $@:
one
two
three
Nach dem Login kopieren

我们可以看到,使用时,所有参数都解释为单个字符串,由空格分隔。

而使用@时,每个参数都被解释为一个单独的字符串,并独立处理。

在大多数情况下,使用$@是更加灵活和安全的选项,因为它可以独立处理每个参数,而不会将它们合并为单个字符串。

6. 【$?】:上一个命令的退出状态码

#!/bin/bash

ls /
echo "Exit status code: $?"
Nach dem Login kopieren

由于ls /应该会执行成功,因此运行脚本后输出 Exit status code: 0,表示上一个命令执行成功。

7. 【$$】:当前进程ID号

$$ 是一个特殊的变量,用于获取当前正在运行的Shell脚本的进程ID(PID)

这个变量对于在Shell脚本中跟踪和识别进程非常有用,或者将PID用于生成唯一的临时文件名。

以下是一个简单的示例脚本,它使用$$变量来创建一个唯一的临时文件名:

#!/bin/bash

tempfile=/tmp/myprog.$$

echo "Program is running with PID $$."
echo "Temp filename is $tempfile."

#rest of the script goes here...
Nach dem Login kopieren

在上述示例中,我们使用了$$变量来创建一个唯一的文件名,将其存储在$tempfile变量中,并在控制台输出当前脚本运行的进程ID。这个唯一的文件名将被用于存储程序输出或其他的过程。

使用$$变量时,需要注意它只能获取当前Shell脚本的PID而不能获取任何子进程或后台任务的PID

8. 【$!】:最近一次在后台运行的进程的PID号

在Linux Shell脚本中,!是一个特殊变量,用于获取最近一次在后台运行的进程的PID号(进程ID号)。

通常用于在脚本中启动后台进程,并且需要获取后台进程的PID号。

以下是一个示例脚本 test.sh,它使用&运算符来将程序启动到后台运行,并使用$!变量获取需要的PID号:

#!/bin/bash

echo "Starting background process..."
sleep 5 &
background_pid=$!
echo "The background process PID is: $background_pid"
Nach dem Login kopieren

上述脚本中的sleep命令会在后台执行5秒钟,并执行$!将其PID号赋值给变量background_pid

最后,脚本会输出后台进程的PID号。

执行该脚本的命令是:./test.sh,其输出如下:

Starting background process...
The background process PID is: 12345
Nach dem Login kopieren

其中,12345应该是实际执行中sleep进程的PID号,其值随机。

9. 【$-】:获取当前Shell的选项标志

$- 是一个特殊变量,用于获取当前Shell的选项标志(Option Flags)。选项标志是Shell用来控制其行为的一些特殊设置。

$- 可以用来获取当前Shell所使用的选项标志,通常应用于Shell脚本的调试中,可以帮助我们诊断问题。

以下是一个示例脚本 test.sh,它使用$-变量获取当前Shell的选项标志及其含义:

#!/bin/bash

echo "Value of $-: $-"
Nach dem Login kopieren

上述脚本中,echo命令会输出当前Shell的选项标志。

执行该脚本的命令是:./test.sh,其输出如下:

Value of $-: himBH
Nach dem Login kopieren

上述输出中,选项标志中包含了5个字符,分别表示以下内容:

  • hbash shell启用hash命令时将完成命令名和缓存条目之间的HASH值打印到标准错误输出中;
  • i:交互模式运行,即标准输入与终端相连;
  • m:启用作业控制功能;
  • B:启用Brace Expansion(花括号扩展)机制;
  • HShell扩展历史记录功能,寻找法:$HOME/.bash_history,如果该文件不存在则新建一个。

10. 【$IFS】:指定Shell脚本中的字段分隔符

$IFS是一个特殊变量,用于指定Shell脚本中的字段分隔符。字段分隔符是将一行输入或输出按照不同的字段拆分开来并存储在不同的变量中的标记。

默认情况下,$IFS的值为空格,制表符和换行符。但是,我们可以将其设置为其他的分隔符来满足特定的需求。

以下是一个示例脚本 test.sh,它使用$IFS变量来指定不同的分隔符,将一行输入按照分隔符分成不同的变量:

#!/bin/bash

echo "Enter a line of values separated by commas (','):"
read line

echo "Default IFS values: '$IFS'"
IFS=","
echo "Custom IFS value set to: '$IFS'"

echo "Values entered:"
for value in $line
do
echo "$value"
done
Nach dem Login kopieren

上述脚本中,通过read命令读取一行输入,并通过将$IFS设置为逗号来将输入行分隔成不同的变量。最后,使用for循环按顺序输出不同的变量。

执行该脚本的命令是:./test.sh,它会提示用户输入一个以逗号分隔的值列表。然后,它将逗号设置为分隔符并按顺序输出每个值。下面是一些示例输入和输出:

输入:

a,b,c,d,e
Nach dem Login kopieren

输出:

Default IFS values: 'n'
Custom IFS value set to: ','
Values entered:
a
b
c
d
e
Nach dem Login kopieren

在上述输出中,$IFS的初始值为默认值(空格、制表符、换行符),该输入字符串以逗号分隔,然后按逗号分隔的方式打印每个值。

这是一个非常有用的用法,可以将一行以逗号或其他字符分隔的值按分隔符分成不同的变量,进一步处理这些变量值。

关于shell中这10个特殊变量,总结如下:

Linux shell脚本中特殊字符含义有哪些

Das obige ist der detaillierte Inhalt vonWelche Bedeutung haben Sonderzeichen in Linux-Shell-Skripten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Mar 13, 2024 pm 12:46 PM

Cutting ist ein Videobearbeitungstool mit umfassenden Bearbeitungsfunktionen, Unterstützung für variable Geschwindigkeit, verschiedenen Filtern und Schönheitseffekten sowie umfangreichen Ressourcen für die Musikbibliothek. In dieser Software können Sie Videos direkt bearbeiten oder Bearbeitungsskripte erstellen, aber wie geht das? In diesem Tutorial stellt der Redakteur die Methode zum Bearbeiten und Erstellen von Skripten vor. Produktionsmethode: 1. Klicken Sie, um die Bearbeitungssoftware auf Ihrem Computer zu öffnen, suchen Sie dann die Option „Erstellungsskript“ und klicken Sie zum Öffnen. 2. Geben Sie auf der kreativen Skriptseite den „Skripttitel“ ein und geben Sie dann in der Gliederung eine kurze Einführung in den Drehinhalt ein. 3. Wie kann ich die Option „Storyboard-Beschreibung“ in der Gliederung sehen?

So konvertieren Sie ESD-Dateien in das ISO-Format So konvertieren Sie ESD-Dateien in das ISO-Format Feb 19, 2024 am 08:37 AM

Eine ESD-Datei ist ein Komprimierungsformat, das in Windows-Betriebssystemen verwendet wird, während eine ISO-Datei eine Disc-Image-Datei ist, die zum Erstellen einer Disc-Kopie oder eines virtuellen optischen Laufwerks verwendet wird. Wenn wir ESD-Dateien in ISO-Dateien konvertieren müssen, liegt das möglicherweise daran, dass ISO-Dateien häufiger verwendet werden und einfacher zu verwenden sind. Im Folgenden werden einige gängige Methoden zum Abschließen dieses Konvertierungsprozesses vorgestellt. Methode 1: ESDDecrypter verwenden ESDDecrypter ist ein Programm, das speziell zum Entschlüsseln und Konvertieren von ESD-Dateien in ISO-Dateien verwendet wird.

Wie führe ich eine .sh-Datei im Linux-System aus? Wie führe ich eine .sh-Datei im Linux-System aus? Mar 14, 2024 pm 06:42 PM

Wie führe ich eine .sh-Datei im Linux-System aus? In Linux-Systemen ist eine .sh-Datei eine Datei, die als Shell-Skript bezeichnet wird und zum Ausführen einer Reihe von Befehlen verwendet wird. Das Ausführen von .sh-Dateien ist ein sehr häufiger Vorgang. In diesem Artikel wird erläutert, wie .sh-Dateien in Linux-Systemen ausgeführt werden, und es werden spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie einen absoluten Pfad, um eine .sh-Datei auszuführen. Um eine .sh-Datei in einem Linux-System auszuführen, können Sie einen absoluten Pfad verwenden, um den Speicherort der Datei anzugeben. Im Folgenden sind die spezifischen Schritte aufgeführt: Öffnen Sie das Terminal

So löschen Sie schnell die Zeile am Ende einer Datei unter Linux So löschen Sie schnell die Zeile am Ende einer Datei unter Linux Mar 01, 2024 pm 09:36 PM

Bei der Verarbeitung von Dateien unter Linux-Systemen ist es manchmal erforderlich, Zeilen am Ende der Datei zu löschen. Dieser Vorgang kommt in praktischen Anwendungen sehr häufig vor und kann durch einige einfache Befehle erreicht werden. In diesem Artikel werden die Schritte zum schnellen Löschen der Zeile am Ende der Datei im Linux-System vorgestellt und spezifische Codebeispiele bereitgestellt. Schritt 1: Überprüfen Sie die letzte Zeile der Datei. Bevor Sie den Löschvorgang durchführen, müssen Sie zunächst bestätigen, welche Zeile die letzte Zeile der Datei ist. Sie können den Befehl tail verwenden, um die letzte Zeile der Datei anzuzeigen. Der spezifische Befehl lautet wie folgt: tail-n1filena

Warum kann ich die Bat-Datei unter Windows 7 nicht ausführen? Warum kann ich die Bat-Datei unter Windows 7 nicht ausführen? Feb 19, 2024 pm 03:19 PM

Warum kann win7 keine Bat-Dateien ausführen? In letzter Zeit haben viele Benutzer, die das Betriebssystem Windows 7 verwenden, berichtet, dass sie keine .bat-Dateien ausführen können. Dies löste weitreichende Diskussionen und Verwirrung aus. Warum kann ein gut funktionierendes Betriebssystem keine einfache .bat-Datei ausführen? Zuerst müssen wir den Hintergrund der .bat-Datei verstehen. Eine .bat-Datei, auch Batchdatei genannt, ist eine reine Textdatei, die eine Reihe von Befehlen enthält, die vom Windows-Befehlsinterpreter (cmd.ex) verwendet werden können

Windows PowerShell-Skript-Tutorial für Anfänger Windows PowerShell-Skript-Tutorial für Anfänger Mar 13, 2024 pm 10:55 PM

Wir haben dieses Windows PowerShell-Skript-Tutorial für Anfänger entwickelt, egal ob Sie ein Technikbegeisterter oder ein Profi sind, der seine Skriptfähigkeiten verbessern möchte. Wenn Sie keine Vorkenntnisse in PowerShell-Skripting haben, beginnt dieser Artikel mit den Grundlagen und ist auf Sie zugeschnitten. Wir helfen Ihnen, die Installationsschritte für eine PowerShell-Umgebung zu meistern und führen Sie durch die wichtigsten Konzepte und Funktionen von PowerShell-Skripten. Wenn Sie bereit sind, mehr über PowerShell-Skripting zu erfahren, begeben wir uns gemeinsam auf diese spannende Lernreise! Was ist WindowsPowerShell? PowerShell ist ein von Microsoft entwickeltes hybrides Befehlssystem

So automatisieren Sie Aufgaben mit PowerShell So automatisieren Sie Aufgaben mit PowerShell Feb 20, 2024 pm 01:51 PM

Wenn Sie ein IT-Administrator oder Technologieexperte sind, müssen Sie sich der Bedeutung der Automatisierung bewusst sein. Insbesondere für Windows-Benutzer ist Microsoft PowerShell eines der besten Automatisierungstools. Microsoft bietet eine Vielzahl von Tools für Ihre Automatisierungsanforderungen, ohne dass Sie Anwendungen von Drittanbietern installieren müssen. In diesem Leitfaden erfahren Sie, wie Sie PowerShell zur Automatisierung von Aufgaben nutzen können. Was ist ein PowerShell-Skript? Wenn Sie Erfahrung mit PowerShell haben, haben Sie möglicherweise Befehle zum Konfigurieren Ihres Betriebssystems verwendet. Ein Skript ist eine Sammlung dieser Befehle in einer .ps1-Datei. .ps1-Dateien enthalten von PowerShell ausgeführte Skripte, z. B. grundlegende Get-Help

i9-12900H Parameterbewertungsliste i9-12900H Parameterbewertungsliste Feb 23, 2024 am 09:25 AM

Der i9-12900H ist ein 14-Kern-Prozessor und die Threads sind ebenfalls sehr hoch. Einige Parameter wurden verbessert und können den Benutzern ein hervorragendes Erlebnis bieten . Überprüfung der Parameterbewertung des i9-12900H: 1. Der i9-12900H ist ein 14-Kern-Prozessor, der die q1-Architektur und die 24576-KB-Prozesstechnologie übernimmt und auf 20 Threads aktualisiert wurde. 2. Die maximale CPU-Frequenz beträgt 1,80! 5,00 GHz, was hauptsächlich von der Arbeitslast abhängt. 3. Im Vergleich zum Preis ist es sehr gut geeignet. Das Preis-Leistungs-Verhältnis ist sehr gut und für einige Partner, die eine normale Nutzung benötigen, sehr gut geeignet. i9-12900H Parameterbewertung und Leistungsbenchmarks

See all articles