gpt4 book ai didi

regex - 将 bash =~ 运算符更改为 sh 兼容参数

转载 作者:行者123 更新时间:2023-12-05 08:20:27 25 4
gpt4 key购买 nike

所以我在 coreos 中运行一个 bash 脚本,因此我没有/bin/bash 但是我有/bin/sh。现在 sh 一直很好,直到我使用其他人的 bash 脚本并且他们有以下行。

 if [[ "$file" =~ ^https?:// ]]; then

我的操作系统提示 sh: =~: unknown operand 现在我认为这意味着 ~= 操作符与 sh 不兼容,但必须有一些另一种方法来做这个形式看所以我发现 ~= 是某种正则表达式运算符。我的问题是,我可以用一些东西替换 ~= 吗?注意:我的机器上有 grep。

最佳答案

I have grep on my machine

按照上面的行,您可以使用 if 语句编写一个简单的条件

if echo "$file" | grep -Eq "^https?://"; then
printf 'regex matches\n'
fi

grep 中的正则表达式匹配使用在任何 POSIX compliant grep 中可用的 ERE(扩展正则表达式)你已经安装了。 -q 只是抑制打印的正常标准输出,但只是返回一个退出代码以了解匹配是否成功。

即使您拥有的某些grep 包没有-E 允许,也只使用基本的正则表达式支持,但剥夺? 它的特殊值(value)并按字面意思传递它

if echo "$file" | grep -q "^https\?://"; then

关于regex - 将 bash =~ 运算符更改为 sh 兼容参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50706575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com