Basé sur ce que j'ai lu en ligne, sh
est essentiellement un alias pour bash
; exécuter un script shell avec sh
se comportera de la même manière que s'il était exécuté avec bash
.
Dans mon expérience, ce n'est pas tout à fait vrai, car les sauts de ligne sont traités différemment. Quelle est exactement la différence entre sh
et bash
, et comme zsh
est maintenant le shell par défaut, est-ce que quelqu'un sait si sh
changera dans les futures versions de Mac OS ?
Considérez le code suivant :
sh -c "echo \"Hello\nWorld\""
Cela devrait produire la sortie suivante :
Hello
World
Cependant, lorsqu'il est exécuté avec bash
:
bash -c "echo \"Hello\nWorld\""
Le saut de ligne n'est pas affiché :
Hello\nWorld
Merci d'avance !
0 votes
@user3439894 Sous BigSur,
/bin/sh
est juste un wrapper qui exécute le shell/var/select/sh
pointe vers (qui, dans mon cas, estbash
), voirman sh
pour plus de détails.0 votes
Il se peut que ce soit déjà le cas pour Catalina, exécutez
strings /bin/sh
pour vérifier.