(Siehe Verwenden Sie #!/bin/sh oder #!/bin/bash für Ubuntu-OSX-Kompatibilität und Benutzerfreundlichkeit &POSIX)
Wenn ich möchte, dass meine Skripte die Bash-Shell verwenden, ruft die Verwendung der .bash-Erweiterung tatsächlich Bash auf oder hängt sie von der Systemkonfiguration / 1. Shebang-Zeile ab. Wenn beide wirksam, aber unterschiedlich wären, was hätte Vorrang?
Ich bin mir nicht sicher, ob ich meine Skripte mit .sh beenden soll, um nur „Shell-Skript“ anzugeben, und dann die erste Zeile die Bash-Shell auswählen soll (z. B. #!/usr/bin/env bash
) oder ob sie einfach mit .bash (sowie der Zeile 1-Einstellung) beendet werden sollen. Ich möchte, dass bash aufgerufen wird.
Akzeptierte Antwort:
ruft die Verwendung der .bash-Erweiterung tatsächlich bash auf oder hängt es
von der Systemkonfiguration / 1. Shebang-Zeile ab.
Wenn Sie keinen Interpreter explizit verwenden, wird der aufgerufene Interpreter durch shebang
bestimmt im Skript verwendet. Wenn Sie speziell einen Interpreter verwenden, ist es dem Interpreter egal, welche Erweiterung Sie für Ihr Skript angeben. Die Erweiterung existiert jedoch, um für andere deutlich zu machen, um welche Art von Skript es sich handelt.
[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"
Siehe .py
Erweiterung des Bash-Skripts macht es nicht zu einem Python-Skript.
[[email protected] ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a bash script"
^
SyntaxError: invalid syntax
Es ist immer ein bash
Skript.
[[email protected] ~]$ ./ext.py
Hi. I am a bash script