机器名称=机器 1
替换: MACHINEDOTS="'uname -n'" 为 MACHINEDOTS="machine1"
我尝试了以下 sed cmd,
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp 路径
显示错误:sed: 无效选项 -- '"'
当我尝试在 Mac OS X 10.7 上运行您的示例时,我得到一个“未终止的替代模式”,因为您使用了双引号 " 而不是单引号 ' 或反引号 `。
用单引号替换双引号并在 tmp 之后摆脱垃圾(您的意思是 && mv -f tmp path 吗?),如下所示:
sed 's/MACHINEDOTS=''uname -n''/MACHINEDOTS="'$machineName'"/g' tmp
有效,但我不能 100% 确定这是否是您想要的。
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp 路径
你的意思是评价uname -n
?它将需要在反引号中。像这样:
$ sed 's/\(MACHINEDOTS="\)'`uname -n`'"/\1'$machineName'"/g'