(Vedi Usa #!/bin/sh o #!/bin/bash per compatibilità Ubuntu-OSX e facilità d'uso e POSIX)
Se voglio che i miei script utilizzino la shell bash, l'utilizzo dell'estensione .bash richiama effettivamente bash o dipende dalla configurazione del sistema / 1a riga shebang. Se entrambi fossero in vigore ma diversi, quale avrebbe la precedenza?
Non sono sicuro se terminare i miei script con .sh per indicare semplicemente "script di shell" e quindi fare in modo che la prima riga selezioni la shell bash (ad es. #!/usr/bin/env bash
) o se terminarli semplicemente con .bash (così come l'impostazione della riga 1). Voglio che bash venga invocato.
Risposta accettata:
l'utilizzo dell'estensione .bash in realtà richiama bash o dipende
dalla configurazione del sistema / 1a riga shebang.
Se non utilizzi un interprete in modo esplicito, l'interprete invocato è determinato da shebang
utilizzato nella sceneggiatura. Se usi un interprete in modo specifico, all'interprete non importa quale estensione dai per il tuo script. Tuttavia, l'estensione esiste per rendere molto ovvio per gli altri che tipo di script è.
[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"
Vedi, .py
l'estensione allo script bash non lo rende uno script python.
[[email protected] ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a bash script"
^
SyntaxError: invalid syntax
È sempre un bash
copione.
[[email protected] ~]$ ./ext.py
Hi. I am a bash script