我有一个bash脚本,列出了如果用户选择将启动标志插入特定程序时可能会出现的子程序/进程。我想匹配以下格式的字符串,并根据用户选择的pgm我想插入/替换{PGMPATH}/pgm的新标志infront。
start -existingFlag ${PGMPATH}/pgm
start -existingFlag -anotherExistingFlag ${PGMPATH}/anotherPgm
start -existingFlag -anotherFlag ${PGMPATH}/yetAnotherPgm otherStuff
但先从我尽力配合朝着一个硬编码字符串(将来向在启动文件中的行):
start -existingFlag ${PGMPATH}\/pgm*
现行方案是根据这样的事情在startupfile上市
,并用一个新行看起来像这样替换它:
*start -existingFlag -newFlag ${PGMPATH}\/pgm*
从脚本:
existingString="start -existingFlag ${PGMPATH}\/pgm"
newString="start -existingFlag -newFlag ${PGMPATH}\/pgm"
sed 's/$replaceString/$newString/g' $STARTUPCONFFILE
只要在字符串中没有'$'(只在{PGMPATH}之前),但是只要我在$ {PGMPATH}中添加'$',SED就会工作(字符串被替换)不会取代。我已经尝试了很多,但是我无法完成它的工作。
对此提出建议?
太好了,非常感谢。有效! – user1841901