6

我有以下 bash 脚本test.sh

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

但是,如果我运行此脚本./test.sh,我需要输入ctrl+d才能退出 ssh 会话,并且该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除非您编码,否则参数(如)将被替换<<\ENDHERE,并且ENDHERE实际上可以是任何单词,通常大写。

阅读Advanced Bash Scripting guide(确实有一些缺陷)

于 2013-03-17T08:17:17.497 回答