如何退出从bash脚本创建的ssh会话?

use*_*637 6 linux ssh bash

我有以下bash脚本 test.sh

#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1
#do some stuff
exit
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行此脚本,./test.sh我需要输入ctrl + d以退出ssh会话,看起来好像exit命令没有按照我的意图运行.

有什么办法可以退出这个从这个bash脚本创建的ssh会话吗?

Bas*_*tch 16

您可能想要编写此处的文档

#!/bin/bash
ssh -o "StrictHostKeyChecking no" user@$1 << ENDHERE
   here do some remote stuff
   also here
   exit
ENDHERE
Run Code Online (Sandbox Code Playgroud)

如果您编码<<-ENDHERE初始空格或此处文档的每一行中的选项卡都被禁止.$foo除非你编码<<\ENDHERE,否则参数(例如)被替换,并且ENDHERE实际上可以是任何单词,通常是大写字母.

阅读Advanced Bash Scripting指南(确实存在一些不完善之处)