要替换bash字符串中的子字符串,str
我使用:
str=${str/$pattern/$new}
但是,我目前正在编写一个脚本,该脚本将通过执行ash
。
我有一个包含的字符串,'/'
并且我想使用上述语法来替换'/'
字符串中的,但是它不起作用。
我试过了:
str=${str///a}
str=${str/\//a}
str=${str/'/'/a}
但是它们不起作用
我该如何解决?
此参数扩展是POSIX sh的bash扩展。如果查看IEEE标准1003.1的相关部分,您会发现它不是必需的功能,因此仅承诺POSIX合规性的shell(例如)ash
没有实现的义务,也没有义务实现它们的实现。他们应该以任何特定的正确性标准这样做。
如果要使用bash扩展,则需要使用bash(或其他类似扩展的ksh派生)。
在此期间,您可以使用其他工具。例如:
str=$(printf '%s' "$str" | tr '/' 'a')
要么
str=$(printf '%s' "$str" | sed -e 's@/@a@g')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句