变量未传递给远程计算机

时间:2015-03-25 12:39:33

标签: linux sed

我正在尝试使用ssh从本地计算机执行到远程计算机。我设置了$HN$ManagedServerName值 - 但是当我执行以下命令时 - $ManagedServerName变量取空值

ssh $HN 'echo `cd /u01/app/oracle/product/webcenter/sites; find -name "*.ini" -not -path "./Shared/*" -not -path ".logs/*" -exec sed -i 's/TWP/'$ManagedServerName'/g' {} \;

请建议,

由于

2 个答案:

答案 0 :(得分:1)

你的报价错了。 echo之前的单引号由sed表达式中的第一个单引号关闭,然后在$ ManagedServerName周围打开一个新的单引号,因此另一方的shell正在尝试扩展该变量。尝试:

sed -i "s/TWP/'"$ManagedServerName"'/g"

答案 1 :(得分:0)

我认为你会想在sed命令中使用双引号,这样你就可以对搜索词进行适当的变量扩展和连接:

ssh $HN 'echo `cd /u01/app/oracle/product/webcenter/sites; find -name "*.ini" -not -path "./Shared/*" -not -path ".logs/*" -exec sed -i "s/TWP/$ManagedServerName/g" {} \;