GNU/Linux >> Tutoriels Linux >  >> Linux

Aucune raison d'avoir un Shebang pointant vers /bin/sh plutôt que /bin/bash ?

Dans la plupart des scripts shell que j'ai vus (à part ceux que je n'ai pas écrits moi-même), j'ai remarqué que le shebang est défini sur #!/bin/sh . Cela ne me surprend pas vraiment sur les scripts plus anciens, mais c'est également présent sur les scripts relativement nouveaux.

Y a-t-il une raison de préférer /bin/sh sur /bin/bash , depuis bash est à peu près omniprésent, et souvent par défaut, sur de nombreuses machines Linux et BSD depuis plus d'une décennie ?

Réponse acceptée :

  1. Certains systèmes n'offrent pas bash par défaut (par exemple, FreeBSD).
  2. Même si bash est installé, il se peut qu'il ne se trouve pas dans /bin .
  3. La plupart des scripts simples ne nécessitent pas bash.
  4. L'utilisation du shell POSIX est plus portable et les scripts s'exécuteront sur une plus grande variété de systèmes.

Linux
  1. Différence entre /bin/false et /sbin/nologin

  2. /usr/bin Vs /usr/local/bin Sous Linux ?

  3. Bash =~ Regex et Https://regex101.com/?

  4. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  5. les bases de grep

L'espace est-il autorisé entre # ! Et /bin/bash à Shebang ?

Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

Quand dois-je utiliser #!/bin/bash et quand #!/bin/sh ?

Différence entre /bin et /usr/bin

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

chroot échoue - impossible d'exécuter la commande `/bin/bash' :aucun fichier ou répertoire de ce type