远程SSH和变量替换

时间:2015-12-09 08:53:59

标签: bash

未注释的行抱怨'mus'文件不存在,而注释行的行为与预期一致,并给出了'mus'文件中的行数

vr=$(ssh $1 "cd $2; count=`cat mus | wc -l`; echo $count")
#vr=$(ssh $1 "cd $2; cat mus | wc -l")
echo $vr

2 个答案:

答案 0 :(得分:3)

未注释的行正在本地系统上查找文件<script type="text/javascript"> (function($) { AJS.toInit(function(){ // init on load AJS.$("#qf-field-picker-trigger").hide(); }) JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function (e, context) { // init on refresh AJS.$("#qf-field-picker-trigger").hide(); }); })(AJS.$); </script> ,而注释的行在远程系统上查找。您需要转义反引号以及mus变量中的$才能使其生效:

count

答案 1 :(得分:2)

您将收到此错误:

vr=$(ssh $1 "cd $2; count=\`cat mus | wc -l\`; echo \$count")
echo $vr

原因是这个命令

cat: mus: No such file or directory

在本地执行而不是在远程主机上执行。

要在远程主机上执行多个命令,请使用here-doc:

count=`cat mus | wc -l`