webentwicklung-frage-antwort-db.com.de

Wie führe ich ein Bash-Skript in Terminal aus?

Ich habe ein Bash-Skript wie:

#!/bin/bash

echo Hello world!

Wie führe ich das in Terminal aus?

68
Ballon

$Prompt: /path/to/script und drücken Sie die Eingabetaste. Beachten Sie, dass Sie sicherstellen müssen, dass das Skript Ausführungsberechtigungen hat.

35
prodigitalson

Noch eine weitere Möglichkeit, es auszuführen (diesmal ohne Ausführungsberechtigungen festzulegen):

bash /path/to/scriptname
78

Du könntest es tun:
sh scriptname.sh

29
xCra2yx

cd in das Verzeichnis, das das Skript enthält, oder legen Sie es in einem bin-Ordner ab, der sich in Ihrem $ PATH befindet

dann tippen

./scriptname.sh

wenn im selben Verzeichnis oder

scriptname.sh

wenn es im bin Ordner ist.

21
John Boker

Zuerst müssen Sie es ausführbar machen mit: chmod +x name_of_your_file_script

Nachdem Sie es ausführbar gemacht haben, können Sie es mit ./same_name_of_your_file_script ausführen.

8
Donald Shahini

Ändern Sie Ihr Verzeichnis in wo sich das Skript befindet, indem Sie den Befehl cd verwenden

Dann tippen Sie

bash program-name.sh
7
gaurav07

Dies ist ein alter Thread, aber ich bin darüber gestolpert, und ich bin überrascht, dass noch niemand eine vollständige Antwort gefunden hat. Also, hier geht's ...

Das Ausführen eines Befehlszeilenskripts Tutorial!

F: Wie führe ich das im Terminal aus?

Verwirrungen und Konflikte:

  • Sie brauchen nicht eine 'Erweiterung' (wie .sh oder .py oder irgendetwas anderes), aber es hilft, den Überblick zu behalten. Es wird nicht weh tun. Wenn der Skriptname jedoch eine Erweiterung enthält, müssen Sie diese verwenden.
  • Sie müssen nicht aus irgendeinem Grund in einem bestimmten Verzeichnis sein.
  • Sie müssen nicht den Namen des Programms eingeben, das die Datei ausführt (BASH oder Python oder was auch immer), es sei denn, Sie möchten. Es wird nicht weh tun.
  • Sie tun nicht müssen Sudo, um dies zu tun. Dieser Befehl ist für die Ausführung von Befehlen als anderer Benutzer oder als Root-Benutzer (Administrator) reserviert. Toller Beitrag hier .

(Eine Person, die gerade lernt, wie man Skripte ausführt, sollte diesen Befehl nicht verwenden, es sei denn, es besteht eine wirkliche Notwendigkeit, wie das Installieren eines neuen Programms. Ein guter Ort zum Ablegen Ihrer Skripte ist in Ihrem Ordner ~/bin. Sie können Um dorthin zu gelangen, geben Sie an der Eingabeaufforderung des Terminals cd ~/bin oder cd $HOME/bin ein. In diesem Ordner sind alle Berechtigungen vorhanden.)

Um dieses Skript über das Terminal auf einem Unix/Linux-System auszuführen, müssen Sie drei Schritte ausführen:

  1. Teilen Sie dem System den Speicherort des Skripts mit. (wähle eins aus)

    • Geben Sie den vollständigen Pfad mit dem Skriptnamen ein (z. B. /path/to/script.sh). Sie können den vollständigen Pfad überprüfen, indem Sie im Terminal pwd oder echo $PWD eingeben.
    • Führen Sie aus demselben Verzeichnis aus und verwenden Sie ./ als Pfad (z. B. ./script.sh). Einfach.
    • Platzieren Sie das Skript in einem Verzeichnis auf dem System PATH und geben Sie einfach den Namen ein (z. B. script.sh). Sie können das System PATH überprüfen, indem Sie echo $PATH oder echo -e ${PATH//:/\\n} eingeben, wenn Sie eine übersichtlichere Liste wünschen.
  2. Teilen Sie dem System mit, dass das Skript zur Ausführung berechtigt ist. (wähle eins aus)

    • Setzen Sie das "Ausführungsbit", indem Sie im Terminal chmod +x /path/to/script.sh eingeben.
    • Sie können auch chmod 755 /path/to/script.sh verwenden, wenn Sie Zahlen bevorzugen. Es gibt eine großartige Diskussion mit einem coolen Chart hier .
  3. Teilen Sie dem System den Typ des Skripts mit. (wähle eins aus)

    • Geben Sie den Namen des Programms vor dem Skript ein. (z. B. BASH /path/to/script.sh oder PHP /path/to/script.php) Wenn das Skript eine Erweiterung wie .php oder .py hat, ist sie Teil des Skriptnamens, und Sie müssen ihn einschließen.
    • Verwenden Sie ein Shebang, wie ich sehe, haben Sie (#!/bin/bash) in Ihrem Beispiel. Wenn Sie das als erste Zeile Ihres Skripts haben, wird das System dieses Programm verwenden, um das Skript auszuführen. Sie müssen keine Programme eingeben oder Erweiterungen verwenden.
    • Verwenden Sie ein "tragbares" Shebang. Sie können das System auch veranlassen, die Version des Programms auszuwählen, die zuerst in der PATH enthalten ist, indem Sie #!/usr/bin/env gefolgt vom Programmnamen (z. B. #!/usr/bin/env bash oder #!/usr/bin/env python3) verwenden. Es gibt Vor- und Nachteile, wie ausführlich besprochen hier .
2
Skeptycal

Wenn Sie sich in einem Verzeichnis oder Ordner befinden, in dem die Skriptdatei verfügbar ist, ändern Sie einfach die Dateiberechtigung im ausführbaren Modus, indem Sie "chmod + x Ihr_Dateiname" verwenden. Danach führen Sie das Skript mit dem folgenden Befehl aus "$ Sudo ./Ihr_Dateiname.sh"Above". " repräsentieren das aktuelle Verzeichnis . Hinweis! Wenn Sie sich nicht in dem Verzeichnis befinden, in dem sich die Bash-Skriptdatei befindet, ändern Sie das Verzeichnis, in dem sich die Datei befindet, indem Sie den Befehl "cd Verzeichnisname/vollständigen Pfad schreiben" verwenden. Andernfalls kann Ihr Skript nicht ausgeführt werden. 

0
Hassan Shamshir