Estoy escribiendo un script expect que se puede utilizar en varios sistemas operativos, pero el problema es
No puedo usar #!/usr/bin/expect
todos los sitios, así que intenté hacerlo.
#!`which expect`
en la cima pero falló
[sesiv@itseelm-lx4151 ~]$ ./sendcommand
-bash: ./sendcommand: `which: bad interpreter: No such file or directory
alguna solución para esto.
Respuesta1
Un truco que funciona principalmente (para intérpretes de perl, python, php y probablemente otros):
#!/usr/bin/env expect
Creo que env
siempre está de moda /usr/bin/
. Muchos intérpretes pueden funcionar de esa manera ahora. Solían existir otros trucos, pero no eran comprensibles o no eran tan portátiles.
Respuesta2
yo sugiero
#!/bin/sh
expect_path="$(which expect)"
"$expect_path" "$0" "$@"
Espero que esto funcione; No estoy familiarizado con las diferencias entre bash y sh.