5

2つの異なる場所からExpectスクリプトを実行しようとしていますが、参照されている次のExpect実行可能ファイルで動作します。

  1. 私のLinuxホームディレクトリ(#!/usr/bin/expect
  2. 別のサーバーのクリアケースビュー(#!/clearlib/vobs/otherdir/bin/expect

問題は、Expect実行可能ファイルの場所の参照をファイルの最初の行に変更しない限り、両方の場所でスクリプトを実行できないことです。

対応するディレクトリのExpect実行可能ファイルの正しいインスタンスを取得するにはどうすればよいですか?

4

1 に答える 1

4

パスが両方のサーバーで正しく設定されている場合は、次を使用できます/usr/bin/env

#!/usr/bin/env expect

PATHこれは、 (/usr/bin一方の場合、もう一方/clearlib/vobs/otherdir/binの場合)に見られるexpectを使用します

代わりenvに例のように使用することにより、スクリプトの実行時にインタープリターが検索および検索されます。
これにより、スクリプトの移植性が向上しますが、実行可能検索パス上のすべてのディレクトリで一致するものが検索されるため、間違ったインタープリターが選択されるリスクも高まります。
また、バイナリへのパスenvもマシンごとに異なる可能性があるという同じ問題があります。

また、適切な設定に問題がある場合はPATH、「/usr/bin/envシバンラインの特異性に関する質問」が役立ちます。

于 2012-11-14T16:13:52.977 に答える