ssh -v -N -f -D 7070 user@1.2.3.4 &>out.ssh那么stdout和stderr都被定向到了out.ssh文件中。
但是如果分像下面这样分两步(在脚本中会这么用):
SSH_COMMAND="ssh -v -N -f -D 7070 user@1.2.3.4 &>out.ssh"那么就看不到out.ssh,似乎&>out.ssh被理解为在1.2.3.4的主机上重定向。
$SSH_COMMAND
必须这么改:
SSH_COMMAND="ssh -v -N -f -D 7070 user@1.2.3.4"才能得到和交互执行一样的结果,即定向到本地文件。是什么原理呢?
$SSH_COMMAND &>out.ssh
Update:2/28/2011 用eval "$SSH_COMMAND"是可以的。或者放到一个函数里面再执行。
没有评论:
发表评论