(Consulte Use #!/bin/sh o #!/bin/bash para obtener compatibilidad y facilidad de uso con Ubuntu-OSX y POSIX)
Si quiero que mis scripts usen el shell bash, el uso de la extensión .bash en realidad invoca bash o depende de la configuración del sistema/primera línea shebang. Si ambos estuvieran vigentes pero fueran diferentes, ¿cuál tendría prioridad?
No estoy seguro de si terminar mis scripts con .sh para indicar simplemente "script de shell" y luego hacer que la primera línea seleccione el shell bash (por ejemplo, #!/usr/bin/env bash
) o si simplemente terminarlos con .bash (así como la configuración de la línea 1). Quiero que se invoque bash.
Respuesta aceptada:
¿El uso de la extensión .bash en realidad invoca a bash o depende
de la configuración del sistema / 1ra línea shebang.
Si no usa un intérprete explícitamente, entonces el intérprete que se invoca está determinado por el shebang
utilizado en el guión. Si usa un intérprete específicamente, al intérprete no le importa qué extensión le dé a su script. Sin embargo, la extensión existe para que sea muy obvio para los demás qué tipo de secuencia de comandos es.
[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"
Ver, .py
la extensión del script bash no lo convierte en un script de python.
[[email protected] ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a bash script"
^
SyntaxError: invalid syntax
Siempre es un bash
guión.
[[email protected] ~]$ ./ext.py
Hi. I am a bash script