Accidentalmente comencé un script bash con $!
en lugar de #!
y obtuve un comportamiento muy extraño. Estoy intentando descubrir qué pasó.
Si intenta este script:
$!/bin/bash
echo Hello world!
obtendrá el siguiente comportamiento:
$ chmod +x hello
$ ./hello
[nothing happens, get prompt back]
$ exit
exit
Hello world!
$
lo que parece que esto sucedió:
- Una nueva cáscara del golpe generó.
- Al salir, se ejecuta el resto del script.
¿Qué pasa? ¿Cómo está sucediendo algo? Sin #!
, ¿cómo sabe el shell usar bash
para interpretar el script?
Obviamente se trata de una pregunta de "satisfacer mi curiosidad" en lugar de "resolver mi problema". Google no rinde mucho, probablemente porque #!
y $!
en las consultas no hacen feliz al robot de Google.