【发布时间】:2013-05-23 16:45:47
【问题描述】:
我希望它打印v=1。为什么会打印v=?
cat<<DONE|ssh user@host
v=1
echo v=$v
DONE
在host 上,bash 是外壳。
【问题讨论】:
我希望它打印v=1。为什么会打印v=?
cat<<DONE|ssh user@host
v=1
echo v=$v
DONE
在host 上,bash 是外壳。
【问题讨论】:
你的代码相当于:
echo "v=1;echo v=$v"|ssh user@host
你想要的是:
echo 'v=1;echo v=$v'|ssh user@host
您可以通过使用cat<<'DONE' 而不是cat<<DONE 来实现此目的。
【讨论】:
变量在 heredocs 中展开。您需要使用\ 转义$
【讨论】: