- 论坛徽章:
- 1
|
本帖最后由 registcn 于 2014-01-14 12:42 编辑
事发直接原因是1)所述,2),3)是联想到的,现在,3个问题拆开说:
1)[who@xxx]ssh remotehost "$(host)" 首先提示host用错了(因为没有参数),然后竟登录上了remotehost并输出logged from xxx,为啥?感觉即便host没参数(用错了),也不改登录到remotehost上的?这是什么原理?
2)[who@xxx]ssh remotehost "\$(hostname)" 和ssh remotehost "$(hostname)" 两个结果分别是本机和远程机器的hostname,对于一个变量来说加不加\$可以解释本地和远程变量的区别,但对于$()子进程来说,\$也能转义为远程主机的子进程?
3)假设2)中的\$可以转义子进程,也可解释本地和远程变量的转义,那么怎么同时解释这两者呢?执行ssh remotehost "str=1234567;echo $(hostname;echo \$str;" 输出结果为
remotehost
bash: line 1: 1234567: command not found
按前面假设,hostname输出为远程机器的hostname没问题,str也应该是在远程定义的1234567呀(因为加\$了)?为啥报command not found? |
|