外壳参数扩展中的大括号不起作用



我有一个程序解析两个文件并比较它们,查找两者之间的冲突,并允许用户决定采取什么操作。因此,我需要能够解析下面的行。当使用模式替换参数展开时,如果字符串包含{},将导致错误。

我正在寻找一个潜在的工作围绕以下行

F=TSM_CLASS="Test text {class}"
newstring=${F//{class}/\{class\}}

结果:

echo $newstring
TSM_CLASS="Test text }/{class}}"

${F//{class}是一个完整的参数展开,将F值中的{class实例全部替换为空字符串。要在模式和/或替换字符串中嵌入大括号,需要对它们加引号。

$ F=TSM_CLASS="Test text {class}"
$
$ echo "${F//{class}/\{class\}}"
TSM_CLASS=Test text {class}

相关内容

  • 没有找到相关文章

最新更新