我一直在尝试编写一个Bash脚本,它可以自动化为MRTG图表添加新设备所需的一切。部分原因是我需要编辑一个我读过的cfg文件,可以使用sed命令完成。下面粘贴的行是运行脚本时发生错误的地方,给我一个“意外的EOF,同时寻找匹配的”“”错误。镇,塔,设备和方向在上面声明。任何帮助缩小问题可能会是一个巨大的帮助!
newpattern="WorkDir: /var/www/html/mrtg/$town/$tower/$equipment$direction"
pattern="WorkDir: "
sudo sed -e "s/$pattern/$newpattern/" ~/MRTGconfigs/mrtg-BeatriceBSWT2960.cfg
答案 0 :(得分:2)
你需要在s///
命令中使用除斜杠之外的东西,因为替换文本中有大量的斜杠:
newpattern="WorkDir: /var/www/html/mrtg/$town/$tower/$equipment$direction"
pattern="WorkDir: "
sudo sed -e "s%$pattern%$newpattern%" ~/MRTGconfigs/mrtg-BeatriceBSWT2960.cfg
我使用了%
个符号;您可以使用$pattern
和$newpattern
中既不显示的任何其他字符。如果需要,可以使用控制字符,例如 Control-A ;这也很好。