0

2 つのシェル スクリプトがあります。これらを script1 と script2 と呼びましょう。

script1 内で script2 を呼び出します。ローカル ターミナルから script1 を呼び出すと正常に動作しますが、このコマンドを ssh で次のように起動すると、次のようになります。

plink.exe -ssh hostname -l user -pw password "path to script1/script1"

次のエラーが表示されます。

script2 が見つかりません。

これで、script1 内に絶対パスを入れて script2 を呼び出すことができますが、問題は script2 が他のスクリプトなどを呼び出すことです...

root からのコマンドを ssh で探すのを避けることはできますか?

4

2 に答える 2

1

script1 で、スクリプトの開始時にこれを追加すると役立つかどうか試してください。

cd $(dirname "$0")

または、script2 への呼び出しの前後で pushd/popd を呼び出します。

pushd $(dirname "$0")
relative_path_for_script2/script2 arg1 arg2 ...
popd

端末から手動で呼び出しているときに、script1特定のディレクトリ、たとえばそのディレクトリから実行する必要がある場合。/tmppushd

于 2013-05-15T13:46:38.937 に答える
0

それを呼び出すコードPATH内またはコード内に を設定します。script1

于 2013-05-15T15:41:56.517 に答える