次のbashスクリプトがありますtest.sh
#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1
#do some stuff
exit
ただし、このスクリプトを実行すると、ssh セッションから抜け出すためにctrl+d./test.sh
を入力する必要があり、コマンドが意図したとおりに機能していないように見えます。exit
この bash スクリプトから作成されたこの ssh セッションを終了する方法はありますか?
ヒアドキュメントをコーディングすることをお勧めします
#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1 << ENDHERE
here do some remote stuff
also here
exit
ENDHERE
<<-ENDHERE
ヒアドキュメントの各行の最初のスペースまたはタブをコーディングすると、抑制されます。をコーディングしない限り、パラメータ(など$foo
)は置き換えられます。実際には、通常は大文字の任意の単語にすることができます。<<\ENDHERE
ENDHERE
Advanced Bash Scriptingガイドを読む(いくつかの欠陥があります)