Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我希望它打印出来v=1。为什么会这样打印v=?
v=1
v=
cat<<DONE|ssh user@host v=1 echo v=$v DONE
在host, bash 是外壳。
host
您的代码相当于:
echo "v=1;echo v=$v"|ssh user@host
你想要的是:
echo 'v=1;echo v=$v'|ssh user@host
您可以通过使用cat<<'DONE'代替来实现这一点cat<<DONE。
cat<<'DONE'
cat<<DONE
变量在 heredocs 中展开。你需要$用一个来逃避\
$
\