6

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

#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1
#do some stuff
exit

ただし、このスクリプトを実行すると、ssh セッションから抜け出すためにctrl+d./test.shを入力する必要があり、コマンドが意図したとおりに機能していないように見えます。exit

この bash スクリプトから作成されたこの ssh セッションを終了する方法はありますか?

4

1 に答える 1

16

ヒアドキュメントをコーディングすることをお勧めします

#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1 << ENDHERE
   here do some remote stuff
   also here
   exit
ENDHERE

<<-ENDHEREヒアドキュメントの各行の最初のスペースまたはタブをコーディングすると、抑制されます。をコーディングしない限り、パラメータ(など$foo)は置き換えられます。実際には、通常は大文字の任意の単語にすることができます。<<\ENDHEREENDHERE

Advanced Bash Scriptingガイドを読む(いくつかの欠陥があります)

于 2013-03-17T08:17:17.497 に答える