我尝试过使用替换方法,例如:
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无法替换成功。