为什么我在本地机器上运行时会得到输出
$ bash -c 'a=$(date) && echo $a'
Thu Feb 20 23:12:26 MST 2014
但如果我在ssh上尝试(我在另一个盒子上有一个公钥,但在authorized_keys中没有强制命令)
$ ssh nathan@gnunix bash -c 'a=$(date) && echo $a'
只打印一个空行?
答案 0 :(得分:2)
您可能不需要bash -c
,只需这样就可以打印日期:
ssh nathan@gnunix 'a=$(date) && echo $a'
如果你必须使用bash -c
,那么就像这样逃避$
(否则$
被当前的shell解释为远程的{/ p>}
ssh nathan@gnunix "bash -c 'a=\$(date) && echo \$a'"
Fri Feb 21 01:22:42 EST 2014