我有以下bash脚本test.sh
#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1
#do some stuff
exit
但是,如果我运行此脚本./test.sh
,我需要输入 ctrl + d 以退出ssh会话,看起来好像exit
命令不起作用我想要的方式。
有什么方法可以退出从这个bash脚本创建的ssh会话?
答案 0 :(得分:16)
您可能想要编码here document
#!/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(确实存在一些不完善之处)