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

Welche Bash wird ausgeführt?

Ich glaube, ich habe Bash als Shell konfiguriert, aber warum passiert das?

Meine Shell ist bash:

# ls -al `which sh`
  lrwxrwxrwx 1 root root 4 Jul 12 03:25 /bin/sh -> bash 

Fehler beim Ausführen eines Skripts mit sh

# sh ubuntu/util.sh
  ubuntu/util.sh: line 32: `test-build-release': not a valid identifier

Kein Fehler von bash

# bash ubuntu/util.sh

Akzeptierte Antwort:

Es führt die ausführbare Bash-Datei aus, die Sie erwarten, aber Ihre Shell ist nicht einfach Bash; es ist bash, das in POSIX sh läuft Kompatibilitätsmodus. Dies geschieht, indem es sich den Befehlsnamen ansieht, als der es aufgerufen wurde, und ob das sh ist , dann aktiviert es automatisch den POSIX-Modus. Es leistet dabei einen sehr schlechten Job und sollte beim Testen von POSIX sh nicht vollständig verwendet werden kompatible Skripte, sollte aber die zulässige Syntax erheblich einschränken.

–posix

Ändern Sie das Verhalten von Bash, wenn die Standardoperation vom POSIX-Standard abweicht, um es dem Standard anzupassen (Posix-Modus).
Siehe SIEHE AUCH unten für einen Verweis auf ein Dokument, das beschreibt, wie der Posix-Modus das Verhalten von Bash beeinflusst.

Und von http://tiswww.case.edu/php/chet/bash/POSIX :

Starten Sie Bash mit --posix Befehlszeilenoption oder Ausführen von set
-o posix
während Bash ausgeführt wird, bewirkt, dass Bash sich besser an den POSIX-Standard anpasst, indem das Verhalten so geändert wird, dass es dem
entspricht, das von POSIX in Bereichen angegeben wird, in denen der Bash-Standard abweicht.

Bei Aufruf als sh , Bash wechselt in den POSIX-Modus, nachdem die
Startdateien gelesen wurden.


Linux
  1. Auswirkungen auf die Sicherheit, wenn vergessen wird, eine Variable in Bash/Posix-Shells zu zitieren?

  2. Welcher Shell-Interpreter führt ein Skript ohne Shebang aus?

  3. Welches sind die speziellen Parameter/Variablen der (Bash-)Shell?

  4. Wie bekomme ich das Tty, in dem Bash läuft?

  5. Welche Shell sollte ich verwenden – Tcsh Vs Bash?

Bash-Exportvariable

Bash-Wartebefehl

Bash-while-Schleife

Bash-Funktionen

Bash bis Loop

Bash Shebang