1

次のbashスクリプトがあります

#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1
cd /home/ubuntu
wget google.com

実行すると、./test.shリモートサーバーにsshされますが、ctrl + dwgetを押さない限りコマンドは実行されず、sshセッションが終了し、ファイルがに保存されますindex.html/home/ubuntu

index.htmlリモート サーバーにファイルを保存できるように、この bash スクリプトを変更するにはどうすればよいですか?

4

3 に答える 3

4

のコマンドラインで実行するコマンドを指定するだけですssh

ssh -o "StrictHostKeyChecking no" ubuntu@$1 'cd /home/ubuntu; wget google.com'
于 2013-03-17T21:05:32.760 に答える
3

スクリプトの機能:

  • 指定されたホストへの対話型接続を開きます
  • 接続が完了するまで待ちます (そのため、Ctrl-D を押す必要があります)。
  • いくつかのコマンドをローカルで実行する

必要なのは、リモート ホストでスクリプトを作成して実行することです。

run.sh
#!/bin/sh
cd /home/ubuntu
wget google.com

ローカル ホストのスクリプトでは、次のようになります。

ssh -o "StrictHostKeyChecking no" ubuntu@$1 run.sh
于 2013-03-17T21:04:41.687 に答える
2

あなたは bash の概念が非常に間違っています。Bash は、入力を行うマクロを作成する方法ではありません。Bash は、ローカル マシンで一連のコマンドを実行するスクリプト言語です。これは、リモート ホストに接続する ssh コマンドを実行することを意味します。ssh スクリプトの実行が完了すると、bash は cd を実行し、次に wget を実行します。

やりたいことは、コマンドをリモート ssh サーバーに渡すことです。

 #!/bin/bash
 ssh -o "StrictHostKeyChecking no" ubuntu@$1 "cd /home/ubuntu; wget google.com"
于 2013-03-17T21:10:49.143 に答える