2
我希望它打印v=1
。爲什麼打印v=
?管道腳本ssh,無法設置變量
cat<<DONE|ssh [email protected]
v=1
echo v=$v
DONE
在host
上,bash是shell。
我希望它打印v=1
。爲什麼打印v=
?管道腳本ssh,無法設置變量
cat<<DONE|ssh [email protected]
v=1
echo v=$v
DONE
在host
上,bash是shell。
你的代碼,以逃避$
等同於:
echo "v=1;echo v=$v"|ssh [email protected]
你想要的是:
echo 'v=1;echo v=$v'|ssh [email protected]
您可以通過使用cat<<'DONE'
,而不是cat<<DONE
實現這一目標。
變量在heredocs中擴展。你需要用\
另請參閱http://stackoverflow.com/questions/3314660/passing-variables-in-remote-ssh-command – devnull