.bashrc
後でコマンドラインで使用できる関数を定義します。
function mycommand() {
ssh user@123.456.789.0 cd testdir;./test.sh "$1"
}
このコマンドを使用すると、cd
コマンドだけがリモート ホストで実行されます。test.sh
コマンドはローカル ホストで実行されます。これは、セミコロンが 2 つの異なるコマンド (ssh
コマンドとコマンド) を区切るためtest.sh
です。
次のように関数を定義しようとしました(一重引用符に注意してください):
function mycommand() {
ssh user@123.456.789.0 'cd testdir;./test.sh "$1"'
}
cd
コマンドとコマンドをまとめようとしましたが、関数に与えるものとは関係なくtest.sh
、引数が解決されません。$1
常にコマンドを実行しようとします
./test.sh $1
リモートホスト上。
に与えられた引数を渡す機能を使用して、ディレクトリに変更した後にmycommand
スクリプトtest.sh
がリモートホストで実行されるように、適切に定義するにはどうすればよいですか?testdir
mycommand
test.sh