¿Especificar un intérprete genérico para un programa como esperar?

¿Especificar un intérprete genérico para un programa como esperar?

Estoy escribiendo un script expect que se puede utilizar en varios sistemas operativos, pero el problema es

No puedo usar #!/usr/bin/expecttodos 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 envsiempre 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.

información relacionada