将脚本传递给ssh,无法设置变量

时间:2013-05-28 16:08:16

标签: linux bash

我希望它能打印v=1。为什么打印v=

cat<<DONE|ssh user@host
v=1
echo v=$v
DONE

host上,bash是shell。

2 个答案:

答案 0 :(得分:7)

您的代码相当于:

echo "v=1;echo v=$v"|ssh user@host

你想要的是:

echo 'v=1;echo v=$v'|ssh user@host

您可以使用cat<<'DONE'代替cat<<DONE来实现此目的。

答案 1 :(得分:3)

变量在heredocs中扩展。您需要使用$

转义\