gpt4 book ai didi

linux - 在这种情况下我如何使用 expr 函数 [Linux]

转载 作者:太空宇宙 更新时间:2023-11-04 09:54:42 24 4
gpt4 key购买 nike

案例1

i="text stack"
j="tex"
if [[ $(expr "$i" : "$j") -ne 0 ]];then
echo true
fi

案例2

i="text stack"
j="stac"
if [[ $(expr "$i" : "$j") -ne 0 ]];then
echo true
fi

案例3

i="text stack"
j="ext"
if [[ $(expr "$i" : "$j") -ne 0 ]];then
echo true
fi

它只适用于 case1。我怎样才能使它在所有情况下都能正常工作(并回显为真)?

最佳答案

expr 的 : 运算符是一个 anchored 正则表达式,即只会匹配字符串的开头(就好像您的正则表达式以 '^ ').

当您使用 bash 的 [[ 内置运算符时,我会这样写:

i="text stack"
j="stac"
if [[ "$i" =~ "$j" ]]; then
echo true
fi

=~ 表示(来自 bash 联机帮助页)... 运算符右侧的字符串被视为扩展的正则表达式并进行相应匹配(如在 regex(3) 中) .如果字符串与模式匹配,则返回值为 0,否则为 1。

关于linux - 在这种情况下我如何使用 expr 函数 [Linux],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043732/

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