我正在尝试使用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' {} \;
请建议,
由于
答案 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" {} \;