替换 shell 中有 '[]' 的字符串

问题描述 投票:0回答:0

我尝试过使用替换方法,例如:

line='`[s]`'

inline_code=$(echo "$line" | awk -v RS='`' 'NR%2==0')

pattern='`([^`]+)`'
while [[ $line =~ $pattern ]]; do
    inline_codes+=("${BASH_REMATCH[1]}")
    line=${line/${BASH_REMATCH[0]}/%_inlinecode_%}
done

我预计

line
可以是
%_inlinecode_%
,但是while循环不会停止。

我试图找到问题,我发现

line
仍然是
[s]

如果字符串中有特殊字符,例如:

[]
,shell无法替换成功。

shell
© www.soinside.com 2019 - 2024. All rights reserved.