suchen
HeimSystem-TutorialLINUXSo verwenden Sie den leistungsstarken Linux-Testbefehl in einem Bash-Skript

So verwenden Sie den leistungsstarken Linux-Testbefehl in einem Bash-Skript

Feb 09, 2024 pm 04:40 PM
linuxlinux教程linux系统linux命令shell脚本Erste Schritte mit LinuxLinux-Lernen

Der Testbefehl von Linux ist ein integrierter Shell-Befehl, mit dem überprüft wird, ob eine bestimmte Bedingung erfüllt ist. test wird häufig mit if-Anweisungen verwendet, und die meisten if-Anweisungen basieren auf test. Es kann ein Element mit einem anderen vergleichen, wird jedoch häufiger in BASH-Shell-Skripten als Teil von bedingten Anweisungen verwendet, die die Logik und den Programmablauf steuern.

Der Testbefehl verfügt über viele Optionen und kann Werte, Zeichenfolgen und Dateien erkennen.

如何在 Bash 脚本中使用强大的 Linux test 命令

Ein einfaches Beispiel

Probieren Sie diese Befehle in einem Terminalfenster aus.

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ test 1 -eq 2 && echo "yes" || echo "no"
no

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                   
⚡ test 1 -eq 1 && echo "yes" || echo "no"
yes

Der obige Befehl gliedert sich wie folgt:

    • test: Befehl zum Durchführen eines Vergleichs
    • 1: Das erste Element, das Sie vergleichen möchten. In diesem Beispiel ist es die Zahl 1, es kann sich aber auch um eine beliebige Zahl oder eine Zeichenfolge in Anführungszeichen handeln.
    • eq: Vergleichsmethode. In diesem Fall testen Sie, ob ein Wert einem anderen Wert entspricht.
    • 2: Sie möchten die Elemente des ersten Elements vergleichen. In diesem Beispiel ist es die Zahl 2.
    • **&&**: Linux-Verknüpfung zum Verketten von Befehlen nacheinander. Die Ausgabe der Testkette wird an nachfolgende Befehle übergeben. Ein doppeltes kaufmännisches Und wird ausgeführt, wenn der Exit-Status des vorherigen Befehls 0 ist. Dies ist eine schicke Möglichkeit, anzuzeigen, dass der Befehl nicht fehlgeschlagen ist.
    • echo „yes“: Der Befehl, der ausgeführt werden soll, wenn der Vergleich erfolgreich ist. In diesem Fall fordern wir lediglich den Befehl echo auf, das Wort „yes“ auf der Standardausgabe auszugeben. Sie können hier jedoch jeden beliebigen Befehl ausführen, der ausgeführt wird, wenn sich herausstellt, dass der Test wahr ist.
    • || : In gewisser Weise das genaue Gegenteil von &&; Die Doppelpipe wird nur ausgeführt, wenn der Befehl davor fehlschlägt (Exit-Status ist nicht 0).
    • **echo „no“**: Der Befehl, der ausgeführt werden soll, wenn der Vergleich nicht übereinstimmt.

Tipp: Wenn test* über eine Shell-Eingabeaufforderung ausgeführt wird, gibt es keinen Wert an die Standardausgabe zurück, sondern nur einen Exit-Statuscode. Aus diesem Grund müssen Sie den Echo-Befehl verketten. *

如何在 Bash 脚本中使用强大的 Linux test 命令

Im Wesentlichen das Gleiche: Dieser Befehl vergleicht 1 mit 2. Wenn sie übereinstimmen, führen Sie die Echo-Anweisung „Ja“ aus und zeigen Sie „Ja“ an. Wenn sie nicht übereinstimmen, führen Sie die Echo-Anweisung „Nein“ aus und zeigen Sie „Nein“ an.

Zahlen vergleichen

Wenn Sie Elemente vergleichen möchten, die sich in Zahlen auflösen lassen, können Sie die folgenden Vergleichsoperatoren verwenden:

  • -eq: Wert 1 ist gleich Wert 2
  • -ge: Wert 1 ist größer oder gleich Wert 2
  • -gt: Wert 1 ist größer als Wert 2
  • -le: Wert 1 ist kleiner oder gleich Wert 2
  • -lt: Wert 1 ist kleiner als Wert 2
  • -ne: Wert 1 ist nicht gleich Wert 2

Beispieltest

test 1 -eq 2 && echo "yes" || echo "no"

(zeigt „nein“ auf dem Bildschirm an, da 1 nicht gleich 2 ist)

test 1 -ge 2 && echo "yes" || echo "no"

(zeigt „nein“ auf dem Bildschirm an, da 1 nicht größer oder gleich 2 ist)

test 1 -gt 2 && echo "yes" || echo "no"

(zeigt „nein“ auf dem Bildschirm an, da 1 nicht größer als 2 ist)

如何在 Bash 脚本中使用强大的 Linux test 命令
test 1 -le 2 && echo "yes" || echo "no"

(Zeigt „Ja“ auf dem Bildschirm an, da 1 kleiner oder gleich 2 ist)

test 1 -lt 2 && echo "yes" || echo "no"

(Zeigt „Ja“ auf dem Bildschirm an, da 1 kleiner oder gleich 2 ist)

test 1 -ne 2 && echo "yes" || echo "no"

(在屏幕上显示“yes”,因为 1 不等于 2)

如何在 Bash 脚本中使用强大的 Linux test 命令

比较文本

比较解析为字符串的元素时,请使用以下比较运算符:

  • **=**:字符串 1 匹配字符串 2
  • != : 字符串 1 与字符串 2 不匹配
  • -n:字符串长度大于0
  • -z:字符串长度等于 0

例子

test "string1" = "string2" && echo "yes" || echo "no"

(在屏幕上显示“no”,因为“string1”不等于“string2”)

test "string1" != "string2" && echo "yes" || echo "no"

(在屏幕上显示“yes”,因为“string1”不等于“string2”)

test -n "string1" && echo "yes" || echo "no"

(在屏幕上显示“yes”,因为“string1”的字符串长度大于零)

test -z "string1" && echo "yes" || echo "no"

(在屏幕上显示“no”,因为“string1”的字符串长度大于零)

如何在 Bash 脚本中使用强大的 Linux test 命令

比较文件

比较文件时,请使用以下比较运算符:

  • -ef:文件具有相同的设备和 inode 编号(它们是同一个文件)
  • -nt : 第一个文件比第二个文件新
  • -ot:第一个文件比第二个文件旧
  • -b:文件存在并且是块特殊的
  • -c:文件存在并且是字符特殊的
  • -d:文件存在并且是目录
  • -e : 文件存在
  • -f : 文件存在并且是普通文件
  • -g:文件存在并具有指定的组号
  • -G : 文件存在且属于用户组
  • -h或**-L**:文件存在并且是符号链接
  • -k:文件存在并且设置了粘性位
  • -O : 文件存在你是所有者
  • -p:文件存在并且是命名管道
  • -r:文件存在且可读
  • -s:文件存在且大小大于零
  • -S : 文件存在并且是一个socket
  • -t :在终端上打开文件描述符
  • -u:文件存在并且设置了 set-user-id 位
  • -w:文件存在且可写
  • -x:文件存在且可执行

例子

⚡ test linuxmi -nt linux && echo "yes"
如何在 Bash 脚本中使用强大的 Linux test 命令

(如果 linuxmi 比 linux 新,则显示“yes”字样,如上图

⚡ test -e /home/linuxmi/linuxmi && echo "yes"
如何在 Bash 脚本中使用强大的 Linux test 命令

(如果 linuxmi 存在,将显示“yes”)

test -O /home/linuxmi/linuxmi && echo "yes"
如何在 Bash 脚本中使用强大的 Linux test 命令

(如果您拥有 file1,则显示“yes”字样”)

块特殊:文件是块设备,这意味着数据以字节块的形式读取。这些通常是设备文件,例如硬盘驱动器。

特殊字符:文件在您写入时立即执行,通常是串行端口等设备

比较多个条件

到目前为止,一切都在将一件事与另一件事进行比较,但是如果您想比较两个条件怎么办?

例如,如果一只动物有四条腿并且会发出“哞哞”的声音,它可能是一头奶牛。简单地检查四只腿并不能保证你有一头牛,但检查它发出的声音肯定可以。

要同时测试这两个条件,请使用以下语句:

test 4 -eq 4 -a "moo" = "moo" && echo "it is a cow" || echo "it is not a cow"
这里的关键部分是-a标志,它代表and。

有一种更好和更常用的方法来执行相同的测试,如下所示:

test 4 -eq 4 && test "moo" = "moo" && echo "it is a cow" || echo "it is not a cow"

test 命令的分支很重要。如果第一个测试 (4 = 4) 失败,则 *test* 命令以非零退出代码终止。因此,我们跳转到双管道符号并且“it is not a cow”打印到标准输出。但是,如果第一个测试成功并因此 test 导致退出代码0,那么我们跳转到第一个双与号(&&)。下一条语句是另一个测试条件!

如果第二次 test 失败,我们再次跳到双管并从那里继续。然而,如果第二个 test 成功,我们跳转到第二个双& 语句,在这个例子中,它只是将“it is a cow”回显到标准输出,然后终止返回到 shell 提示符。

另一个测试比较两个语句,如果其中一个为真,则输出一个字符串。例如,要检查是否存在名为“linuxmi.txt”的文件或名为“linuxmi.py”的文件,可以使用以下命令:

这里的关键部分是**-o**代表or

test -e linuxmi.txt -o -e linuxmi.py && echo "linuxmi exists" || echo "linuxmi does not exist"

有一种更好和更常用的方法来执行相同的测试,如下所示:

test -e linuxmi.txt || test -e linuxmi.py && echo "linuxmi exists" || echo "linuxmi does not exist"

排除 test 关键字

您实际上不需要使用单词test来执行比较。您所要做的就是将语句括在方括号中,如下所示:

⚡ [ -e linux.py ] && echo "linux.py
exists" || echo "file1 does not exist"linux.py exists

[and**]基本上与****test含义 相同。**

如何在 Bash 脚本中使用强大的 Linux test 命令

现在您知道这一点,您可以改进比较多个条件,如下所示:

[ 4 -eq 4 ] && [ "moo" = "moo" ] && echo "it is a cow" || echo "it is not a cow"

[ -e linuxmi.py ] || [ -e linuxmi.txt ] && echo "linuxmi exists" || echo "linuxmi does not exist"
如何在 Bash 脚本中使用强大的 Linux test 命令

总结

test 命令在脚本中更有用,因为您可以对照另一个变量测试一个变量的值并控制程序流程。在命令行上,使用它来测试文件是否存在。

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den leistungsstarken Linux-Testbefehl in einem Bash-Skript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:良许Linux教程网. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
So installieren und führen Sie Freedos auf Linux mit qemu installieren und ausführenSo installieren und führen Sie Freedos auf Linux mit qemu installieren und ausführenApr 29, 2025 am 10:36 AM

Diese Anleitung zeigt, wie Sie mit dem QEMU-Emulator das kostenlose und open-Source-DOS-kompatible Betriebssystem Freedos in einer Linux-Umgebung einrichten. Auf diese Weise können Sie Legacy DOS -Software und Spiele auf moderner Hardware ausführen, ohne eine Separat zu benötigen

So installieren Sie KDE Plasma auf Linux Mint 22So installieren Sie KDE Plasma auf Linux Mint 22Apr 29, 2025 am 10:10 AM

Linux Mint, ein Betriebssystem, das für seine Einfachheit, Stabilität und Benutzerfreundlichkeit bekannt ist, ist bei Benutzern beliebt und ist besonders für Anfänger geeignet. Es verwendet standardmäßig die Cinnamon -Desktop -Umgebung und bietet eine einfache und freundliche Benutzeroberfläche. Wenn Sie jedoch ein anderes Erscheinungsbild bevorzugen oder mehr Anpassungsoptionen benötigen, können Sie andere Desktop -Umgebungen wie das KDE -Plasma installieren. KDE Plasma ist eine featurereiche, hochpassbare und visuell hervorragende Desktop-Umgebung, die ein modernes und stilvolles Benutzererlebnis bietet. Es verfügt über eine breite Palette von Anpassungsoptionen, erweiterte Fensterverwaltungsfunktionen und anspruchsvolle Ästhetik, die sich perfekt für Benutzer eignen, die eine bessere Kontrolle über das Desktop -Erlebnis haben möchten. In dieser Handbuch werden Sie Schritt für Schritt zur Installation von KDE PL unter Linux Mint 22 installiert

Linux -Fehlerbehebung: 5 Häufige Probleme und wie man sie behebtLinux -Fehlerbehebung: 5 Häufige Probleme und wie man sie behebtApr 29, 2025 am 09:42 AM

Linux -Systeme sind für ihre Leistung und Zuverlässigkeit bekannt, aber selbst erfahrene Benutzer werden auf unerwartete Probleme stoßen. Unabhängig davon, ob es sich um eine unerwartet gelöschte Datei, ein vergessenes Stammkennwort oder ein langsames System ausgeführt hat, ist die effiziente Fehlerbehebung der Fähigkeiten der Schlüssel, um ein Linux -Experte zu werden. In diesem Leitfaden werden gemeinsame Linux-Problemlösungsszenarien und Schritt-für-Schritt-Lösungen eingeführt, die bei Systemadministratoren, Entwicklern und alltäglichen Linux-Benutzern üblich sind. Szene 1: Unerwartete Löschung wichtiger Dateien Sie haben versehentlich eine wichtige Datei mit dem Befehl rm gelöscht und müssen sie jetzt wiederherstellen. Im Gegensatz zu Windows und MacOS verfügt Linux über einen integrierten "Recycle Bin", um Dateien aus dem Terminal zu speichern. Die Wiederherstellungsoptionen hängen von abhängig von

So ändern Sie die Docker -Ordnerberechtigungen dauerhaft unter LinuxSo ändern Sie die Docker -Ordnerberechtigungen dauerhaft unter LinuxApr 29, 2025 am 09:35 AM

Docker ist ein leistungsstarkes Tool, mit dem Sie Anwendungen in einer isolierten Umgebung namens Container ausführen können. Manchmal müssen Sie jedoch möglicherweise die Berechtigungen des Docker -Ordners ändern, um sicherzustellen, dass Ihre Bewerbung Zugriff auf die erforderlichen Dateien und Verzeichnisse hat. Dieser Artikel führt Sie durch den Prozess der dauerhaften Änderung der Docker -Ordnerberechtigungen auf Linux -Systemen. Verstehe Docker Ordner Berechtigungen Standardmäßig speichert Docker seine Daten, einschließlich Bilder, Container und Volumes, in bestimmten Verzeichnissen auf Linux -Systemen. Das häufigste Verzeichnis ist/var/lib/docker. Die Berechtigungen dieser Ordner bestimmen, wer Dateien darin lesen, schreiben oder ausführen können. Wenn

Verwalten Sie Docker wie ein Pro: Installieren Sie Portainer CE unter LinuxVerwalten Sie Docker wie ein Pro: Installieren Sie Portainer CE unter LinuxApr 29, 2025 am 09:24 AM

Vereinfachen Sie die Docker-Verwaltung mit Portainer CE unter Linux: Eine Schritt-für-Schritt-Anleitung Das Verwalten von Docker -Containern über die Befehlszeile kann insbesondere für Neuankömmlinge entmutigend sein. Portainer CE (Community Edition) bietet eine kostenlose, leichte und intuitive Solutio

So verwenden Sie Whisper AI für Live -Audio -Transkription unter LinuxSo verwenden Sie Whisper AI für Live -Audio -Transkription unter LinuxApr 29, 2025 am 09:18 AM

In dieser Anleitung wird die Installation und Verwendung von Whisper AI für Echtzeit-Sprach-zu-Text-Transkription auf Linux-Systemen installiert und verwendet. Whisper Ai, eine OpenAI-Kreation, bietet eine Transkription mit hoher Genauigkeit über mehrere Sprachen hinweg. Während er hauptsächlich für Batch -Prozesse ausgelegt ist

Superfile: Der perfekte Terminal-basierte Dateimanager für LinuxSuperfile: Der perfekte Terminal-basierte Dateimanager für LinuxApr 29, 2025 am 09:16 AM

Für Linux -Terminalbegeisterte ist ein robuster Dateimanager unerlässlich. Während viele existieren, sticht Superfile als moderne, leichte und visuell ansprechende Wahl auf. Dieser Artikel untersucht Superfile, seine Ursprünge und warum er ein Top -Anwärter für Ihr F ist

Zellij: Der moderne Terminal -Multiplexer für Linux -BenutzerZellij: Der moderne Terminal -Multiplexer für Linux -BenutzerApr 29, 2025 am 09:08 AM

Zellij: Ein moderner Terminal -Multiplexer für verbesserte Linux -Workflows Linux-Terminal-Multiplexer sind unverzichtbare Werkzeuge für Entwickler und Systemadministratoren, die Befehlszeileninteraktionen optimieren. Zellij, ein relativ neuer Open-Source-Multiplexer

See all articles

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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung