0

いくつかのsshコマンドを実行するスクリプトを作成して、入力を減らしようとしています。たとえば、単にエディタを開くことは問題ありませんが、特定のファイルでエディタを開くことはできません。

これは機能します:

editFile="ssh -X -t $username@$serverIP 'nano'"
$editFile

これはしません:

editFile="ssh -X -t $username@$serverIP 'nano ~/test'"
$editFile

また、このような画面に接続することはできませんが、画面を起動するだけで問題なく動作します。

viewScreen="ssh -X -t $username@$serverIP 'screen -r screen1'
$viewScreen

-vフラグを追加すると、接続が確立された後、次のエラーが発生します。

debug1: Sending command: 'nano /home/herb/.Scripts/test.txt'
bash: nano ~/test: No such file or directory

debug1: Sending command: 'screen -r screen1'
bash: screen -r screen1: command not found

どちらのコマンドも端末に入力すれば問題なく動作するので、ここで見逃している魔法があるはずです。

4

1 に答える 1

3

問題の 1 つは、「コマンド」引数に単一引用符を使用していることです。それらがなくても機能するはずです(または、少なくとも別のエラーが発生します)。

コマンドを変数に割り当てる代わりに、「エイリアス」コマンドも使用する必要があります。

alias viewScreen="ssh -X -t $username@$serverIP screen -r screen1"
viewScreen

これはエイリアスを定義するときに変数を評価することに注意してください。したがって、$username と $serverIP は事前に定義する必要があります。

于 2012-06-17T13:31:16.100 に答える