私はbashスクリプトを作成しようとしています。bashスクリプトを使用してリモートマシンにsshを実行するときにコマンドが見つかりません
すべては彼らが私のマシンのいくつかの特定のコマンドであり、私は、彼らはを通じて、私は、SSH事に何とか関連していると思う
./start_components1.sh: line 17: cmd1: command not found
私にエラーを与えているいくつかの特定のコマンド事の横に取り組んでいますbashスクリプトをマシンにロードします。私は間違っている可能性がある。
とにかく、端末から私のマシンに普通にsshしてコマンドを実行すると、完璧に動作します。
私がbashスクリプトを通して同じことをしようとすると、コマンドが見つかりませんでした。
私はたくさんのグーグルで調べて、さまざまなことを試しました。何も働かなかった。それは助けることができる場合
はここ私のスクリプト:
#!/bin/bash
USERNAME=odroid
while getopts r:d:p:f: option
do
case "${option}"
in
r) ROBOT=${OPTARG};;
esac
done
for HOSTNAME in ${ROBOT}; do
ssh -l ${USERNAME} "robot${HOSTNAME}" "./start_components${HOSTNAME}.sh; ls"
done
EDIT:私はそれが私がまた私のファイルのアクセス権がそのように実行可能ファイルに設定されていなかったことに気づき@PauloScardineことでヒントに従った後働いていたと思いました私sudo chmod +x fileToExecute
私はこれが私の問題を解決したと思ったが、: それはまだ動作していません。コマンドはエラーなしで実行されますが、実際には実行されません。例:私がマシン上でssh(bashスクリプトなし)を実行した場合、私は/opt/openrobots/bin/pom-ros
私が起動したいコンポーネントが起動していることを確認します。私は/opt/openrobots/bin/pom-ros
を起動する必要がありstart_components2.sh
ファイルを起動すると、私は何も出力が表示されていないと私は何の効果もありませんので、コンポーネントが起動されていないことを確信して:(見つからない事前に
おかげ
おそらくsshがやっているttyなしでセッションを実行すると 'cmd1'は' $ PATH'にないと思います。 './start_components$ {HOSTNAME} .sh'に' cmd1'への完全なパスを入れようとしましたか? –
こんにちは@PauloScardine私は今試してみましたが、別のエラーが表示されます: 'permission denied'。 私は 'sudo。/ start_components2.sh'を使わないので、なぜ私に許可されていないのですか? サポートをいただき、ありがとうございます。 – kalmanIsAGameChanger
'set -x; export PS4 = '$ LINENO>''を '。/ start_components2.sh'の2行目に追加してください。各行に対して何が実行されているかを確認することができます。がんばろう。 – shellter