Ich habe ein Bash-Skript wie:Wie führe ich ein Bash-Skript im Terminal aus?
#!/bin/bash
echo Hello world!
Wie kann ich das in Terminal ausführen?
Ich habe ein Bash-Skript wie:Wie führe ich ein Bash-Skript im Terminal aus?
#!/bin/bash
echo Hello world!
Wie kann ich das in Terminal ausführen?
$prompt: /path/to/script
und drücken Sie die Eingabetaste. Beachten Sie, dass Sie sicherstellen müssen, dass das Skript über Ausführungsberechtigungen verfügt.
cd in das Verzeichnis, das das Skript enthält, oder in einem Ordner ist setzen, das PATH in Ihrem $
istdann
./scriptname.sh
wenn im selben Verzeichnis eingeben oder
scriptname.sh
wenn es im bin-Ordner ist.
Dies funktioniert nur, wenn das Skript das Ausführungsbit gesetzt hat. Das muss wahrscheinlich angesprochen werden. –
'./Scriptname.sh' funktioniert für mich, aber' scriptname.sh' gibt 'scriptname.sh: Befehl nicht gefunden'. '-rwxr-xr-x' sind seine Berechtigungen. –
Noch ein anderer Weg, um sie auszuführen (diesmal ohne das Festlegen von Berechtigungen ausführen):
bash /path/to/scriptname
Sie tun können:
sh scriptname.sh
Downvote: Das ist falsch, wenn es ein Bash-Skript ist. – tripleee
Upvote: das ist, was für mich auf Mac OS X arbeitete – kraftydevil
Upvote: Dies ist in Ordnung unter Mac OS X, wenn Ihr Bash-Skript im selben Verzeichnis ist –
ändern Verzeichnis wo Skript befindet von mit cd Befehl
Geben Sie dann
einbash program-name.sh
Es gibt keine Notwendigkeit, irgendwo zu "cd"; Sie können einen beliebig komplexen Pfadnamen als Argument für 'bash' angeben; In der Tat funktioniert jedes Programm, das ein Dateinamenargument verwendet, auf diese Weise (oder ist erschreckend, sinnlos gebrochen). – tripleee
Zuerst müssen Sie es ausführbar machen mit: chmod + x Dateiname. Am Dateinamen sollten Sie den Namen der Datei so schreiben, wie er ist, zum Beispiel: helloworld.sh Nachdem Sie es ausführbar gemacht haben, können Sie es mit/Dateiname ausführen. Hoffen, dass es geholfen hat.
Hat es Ausführungsberechtigungen? Versuchen Sie einen 'chmod + x-Skriptnamen' und dann './Skriptname'. – dirkgently