GNU/Linux >> Tutoriels Linux >  >> Linux

Quel Bash est en cours d'exécution ?

Je pense avoir configuré bash en tant que shell, mais pourquoi cela se produit-il ?

Mon shell est bash :

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

Erreur lors de l'exécution d'un script avec sh

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

Aucune erreur de bash

# bash ubuntu/util.sh

Réponse acceptée :

Il exécute l'exécutable bash que vous attendez, mais votre shell n'est pas simplement bash ; c'est bash qui s'exécute dans POSIX sh le mode de compatibilité. Il le fait en regardant le nom de la commande sous laquelle il a été invoqué, et s'il s'agit de sh , puis il active automatiquement le mode POSIX. Il fait un travail très terrible à cet égard et ne devrait pas être entièrement invoqué pour tester POSIX sh scripts compatibles, mais cela devrait considérablement restreindre la syntaxe autorisée.

–posix

Modifiez le comportement de bash lorsque l'opération par défaut diffère de la norme POSIX pour correspondre à la norme (mode posix).
Voir VOIR AUSSI ci-dessous pour une référence à un document qui détaille comment le mode posix affecte le comportement de bash.

Et depuis http://tiswww.case.edu/php/chet/bash/POSIX :

Démarrer Bash avec le --posix option de ligne de commande ou en exécutant set
-o posix
pendant que Bash est en cours d'exécution, Bash se conformera plus étroitement à la norme POSIX en modifiant le comportement pour qu'il corresponde à celui
spécifié par POSIX dans les zones où la valeur par défaut de Bash diffère.

Lorsqu'il est appelé en tant que sh , Bash passe en mode POSIX après avoir lu les fichiers
de démarrage.


Linux
  1. Quel terminal est le meilleur :Bash vs Zsh

  2. Comment obtenir le Tty dans lequel Bash est en cours d'exécution ?

  3. Quel shell dois-je utiliser - Tcsh Vs Bash ??

  4. Comment lire une chaîne en tant que numéro hexadécimal dans Bash ?

  5. Quelle est la différence entre exécuter un script Bash et le sourcer ?

Variable d'exportation bash

Commande d'attente bash

Bash pendant la boucle

Fonctions bash

Bash jusqu'à la boucle

Bash Shebang