Expect?などのプログラムの汎用インタプリタを指定しますか?

Expect?などのプログラムの汎用インタプリタを指定しますか?

複数のオペレーティングシステムで動作する期待スクリプトを書いていますが、問題は

どこでも使えないのでこうやろうと#!/usr/bin/expectしています。

 #!`which expect`

上にありますが失敗しました。

[sesiv@itseelm-lx4151 ~]$ ./sendcommand
-bash: ./sendcommand: `which: bad interpreter: No such file or directory

任意のソリューション。

答え1

最も効果的な技術の1つ(perl、python、phpインタプリタなど):

#!/usr/bin/env expect

env私はいつもそこにいたいです/usr/bin/。これで、多くの通訳者がこのように取り組むことができます。以前にも他のハッカーが存在していましたが、理解しにくく、移植性がありませんでした。

答え2

私はお勧めします

#!/bin/sh
expect_path="$(which expect)"
"$expect_path" "$0" "$@"

これがうまくいくことを願っています。私はbashとshの違いに慣れていません。

関連情報