You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

bash脚本执行ssh报错:无法解析主机名 求助排查

问题根源

你的脚本里的$IP被当前shell提前展开了——外层的双引号会让$IP在启动gnome-terminal时就被解析,而此时read IP还没执行,$IP是空字符串,导致ssh命令变成ssh htb-student@,这就是报错的核心原因。

修正方案

有两种简单的修正方式:

方式一:转义变量符号

把$IP改成\$IP,让$在当前shell不被解析,传递到新的bash进程中再处理:

#!/bin/bash

sudo openvpn academy.ovpn & 

gnome-terminal --tab --title="test" --command="bash -c 'read IP; ssh htb-student@\$IP; echo HTB_@cademy_stdnt!; $SHELL'"

方式二:调整引号嵌套

把外层的双引号换成单引号,内部的单引号换成双引号,避免当前shell提前解析变量:

#!/bin/bash

sudo openvpn academy.ovpn & 

gnome-terminal --tab --title="test" --command='bash -c "read IP; ssh htb-student@$IP; echo HTB_@cademy_stdnt!; $SHELL"'
额外建议

VPN启动后需要一点时间建立连接,直接打开ssh终端可能会因为网络未就绪失败,建议在启动gnome-terminal前加个等待时间,比如:

sudo openvpn academy.ovpn &
sleep 5  # 等待5秒让VPN连接建立
gnome-terminal --tab --title="test" --command='bash -c "read IP; ssh htb-student@$IP; echo HTB_@cademy_stdnt!; $SHELL"'

内容的提问来源于stack exchange,提问作者Clientic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:34:55