108 votes

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

Quand est-ce que #!/bin/bash plus approprié que #!/bin/sh dans un Shell Shell ?

56 votes

Lorsque vous utilisez bash plutôt qu'aux fonctions et à la syntaxe de l sh les fonctions et la syntaxe.

6 votes

3 votes

Si cela peut aider quelqu'un, j'ai remarqué que vim mettra en lumière bash -ismes si votre script possède la fonction #!/bin/sh shebang. Je le change seulement en bash si les choses deviennent suffisamment compliquées pour nécessiter des fonctions de base.

1voto

Michael Felt Points 121
  • sh (pour la plupart des cas), bash si nécessaire (ou ksh, ou autre).

Le chemin le plus sûr, lorsqu'il est codé en dur, serait /usr/bin/ shellOfChoice mais une nouvelle convention que j'essaie d'utiliser en permanence maintenant - comme les "emplacements par défaut" via un changement de PATH peuvent changer est :

!/usr/bin/env sh ou

!/usr/bin/env bash

ou par exemple, perl scripts

!/usr/bin/env perl -w

Bien sûr, lorsque vous avez une raison pour qu'un script ne prenne JAMAIS automatiquement un nouveau PATH alors continuez à l'avoir codé en dur - et alors /usr/bin/quelque chose devrait être le chemin le plus probable à utiliser.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X