GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden Sie die Erweiterung .sh oder .bash für Bash-Skripte?

(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

Linux
  1. So verwenden Sie ein verschlüsseltes Passwort in einem Linux-Bash-Shell-Skript

  2. So verwenden Sie die Bedingungsanweisung if else in Bash-Skript

  3. Verwenden von Bash für die Automatisierung

  4. 2 Perl-Skripte zur Speicherregression für Linux

  5. Wie kann man Bash-Skripte in Vim hervorheben?

Bash für Schleife

Kommentare in Bash-Skripten schreiben

So verwenden Sie bedingte Anweisungen in Bash-Skripten

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

Bash-Anfängerserie Nr. 3:Übergabe von Argumenten an Bash-Skripte

Bash-Skript für Schleife mit Beispielen erklärt