linux – 如何在POSIX sh字符串中替换“”

linux – 如何在POSIX sh字符串中替换“”,第1张

概述要替换bash字符串str中的子字符串,我使用: str=${str/$pattern/$new} 但是,我现在正在编写一个将用灰烬执行的脚本. 我有一个包含’/’的字符串,我想使用上面的语法来替换我的字符串中的’/’,但它不起作用. 我试过了: str=${str///a}str=${str/\//a}str=${str/'/'/a} 但它们不起作用 我该如何解决这个问题? 此参数扩展是PO 要替换bash字符串str中的子字符串,我使用:
str=${str/$pattern/$new}

但是,我现在正在编写一个将用灰烬执行的脚本.

我有一个包含’/’的字符串,我想使用上面的语法来替换我的字符串中的’/’,但它不起作用.

我试过了:

str=${str///a}str=${str/\//a}str=${str/'/'/a}

但它们不起作用

我该如何解决这个问题?

解决方法 此参数扩展是POSIX sh的bash扩展.如果您查看 the relevant section of IEEE standard 1003.1,您将看到它不是必需的功能,因此仅承诺POSIX合规性的shell(例如ash)没有义务实现它,并且没有义务将它们的实现提供给任何特定的标准他们无论如何应该这样做是否正确

如果你想要bash扩展,你需要使用bash(或其他类似扩展的ksh派生词).

在此期间,您可以使用其他工具.例如:

str=$(printf '%s' "$str" | tr '/' 'a')

要么

str=$(printf '%s' "$str" | sed -e 's@/@a@g')
总结

以上是内存溢出为你收集整理的linux – 如何在POSIX sh字符串中替换“/”全部内容,希望文章能够帮你解决linux – 如何在POSIX sh字符串中替换“/”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存