我将在远程主机上运行带变量替换的管道命令并重定向输出。鉴于登录shell是csh,我必须使用“bash -c”。在用户nlrc和jerdiggity的帮助下,没有变量替换的命令可以表示为:
localhost$ ssh -f -q remotehost 'bash -c "ls /var/tmp/ora_flist.sh|xargs -L1 cat >/var/tmp/1"'
但上面的单引号将预先使用变量替换,比如用ora_flist.sh替换$ filename。我怎么能做到这一点?
感谢。
答案 0 :(得分:2)
这样的事情应该有效:
ssh -f -q remotehost 'bash -c "ls /var/tmp/ora_flist.sh|xargs -L1 cat >/var/tmp/1"'
答案 1 :(得分:0)
所以你的问题是你希望shell变量在本地扩展。只需将它留在单引号之外,例如
this.Finish();
避免引用地狱的另一个非常有用的技巧是使用heredoc,例如
Finish()