2

我希望它打印出来v=1。为什么会这样打印v=

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

host, bash 是外壳。

4

2 回答 2

7

您的代码相当于:

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

你想要的是:

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

您可以通过使用cat<<'DONE'代替来实现这一点cat<<DONE

于 2013-05-28T16:17:04.623 回答
3

变量在 heredocs 中展开。你需要$用一个来逃避\

于 2013-05-28T16:14:28.007 回答