(Voir Utiliser #!/bin/sh ou #!/bin/bash pour la compatibilité Ubuntu-OSX et la facilité d'utilisation &POSIX)
Si je veux que mes scripts utilisent le shell bash, l'utilisation de l'extension .bash appelle-t-elle réellement bash ou dépend-elle de la configuration système / 1ère ligne shebang. Si les deux étaient en vigueur mais différents, lequel aurait la priorité ?
Je ne sais pas s'il faut terminer mes scripts avec .sh pour indiquer simplement "script shell", puis faire en sorte que la première ligne sélectionne le shell bash (par exemple, #!/usr/bin/env bash
) ou s'il faut simplement les terminer avec .bash (ainsi que le réglage de la ligne 1). Je veux que bash soit invoqué.
Réponse acceptée :
l'utilisation de l'extension .bash appelle-t-elle réellement bash ou dépend-elle
de la configuration système / 1ère ligne shebang.
Si vous n'utilisez pas explicitement un interpréteur, alors l'interpréteur invoqué est déterminé par le shebang
utilisé dans le scénario. Si vous utilisez un interpréteur spécifiquement, l'interpréteur ne se soucie pas de l'extension que vous donnez à votre script. Cependant, l'extension existe pour rendre très évident pour les autres le type de script dont il s'agit.
[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"
Voir, .py
l'extension du script bash n'en fait pas un script python.
[[email protected] ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a bash script"
^
SyntaxError: invalid syntax
C'est toujours un bash
script.
[[email protected] ~]$ ./ext.py
Hi. I am a bash script