linux - 变量没有传递到远程机器

标签 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' {} \;

请建议,

谢谢

最佳答案

你的引用是错误的。 echo 之前的单引号被 sed 表达式中的第一个单引号关闭,然后您在 $ManagedServerName 周围打开一个新的单引号,因此另一侧的 shell 试图扩展该变量。尝试:

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

关于linux - 变量没有传递到远程机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29255928/

相关文章:

python - 如何运行 django 项目?

regex - 删除 SED 中指定标签内匹配前后的行

regex - 如何使用 sed 命令删除一行中除前三个字符以外的所有字符?

json - 使用 git 过滤器忽略 json 文件中的特定行

linux - 根据列匹配从两个输入文件创建输出文件

shell - 如何从另一个文件的文件中删除特定内容?

linux - 如何在 vim 中选择特定的文本 block ?

linux - Vim 以插入模式启动并插入特殊字符

linux - 如何在centos7上启用http2

linux - 将多个记录合并为具有所有非空值的唯一记录