通过 ssh bash 调用存在问题,尽管我已经阅读了有关它的文章,但我仍然无法解释以下内容:
这是一个脚本,很简单
#!/bin/bash
theUser=$1
theHost=$2
ssh -tt $theUser@$theHost 'bash' << EOF
a=1
echo 'dat '$a
exit
EOF
结果如下:
victor@moria:~$ bash thelast.sh victor 10.0.0.8
victor@10.0.0.8's password:
a=1
echo 'dat '
exit
victor@mordor:~$ a=1
victor@mordor:~$ echo 'dat '
dat
victor@mordor:~$ exit
exit
Connection to 10.0.0.8 closed.
如您所见,环境不存储变量“a”的值,因此无法回显它,但任何其他命令(如 ls 或 date)都会返回结果。
所以问题是我做错了什么以及如何避免这种行为?
ps 我无法替换 ssh -tt,但任何其他命令都可以自由替换。
提前致谢