我有以下bash脚本test.sh
#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1
#do some stuff
exit
如果我运行这个脚本 ./test.sh
,需要输入ctrl+d才能退出ssh会话,而且看起来exit
命令并没有按照我的意愿工作。
是否有任何方法可以退出从该bash脚本创建的ssh会话?
你可能想编写一个Here文档
#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1 << ENDHERE
here do some remote stuff
also here
exit
ENDHERE
如果您在代码中使用 <<-ENDHERE
,则会取消 Here Document 中每行的初始空格或制表符。除非您编写 <<\ENDHERE
,否则参数(像$foo
)将被替换,而 ENDHERE
实际上可以是任何单词,通常是大写字母。请阅读Advanced Bash Scripting guide(其中确实存在一些缺陷)。