gpt4 book ai didi

linux - 了解 bash 脚本语法

转载 作者:太空狗 更新时间:2023-10-29 11:04:17 24 4
gpt4 key购买 nike

以下 bash 语法是什么意思:

function use_library {
local name=$1
local enabled=1
[[ ,${LIBS_FROM_GIT}, =~ ,${name}, ]] && enabled=0
return $enabled
}

我不是特别理解 [[ ,${LIBS_FROM_GIT}, =~ ,${name}, ]] 行。它是某种正则表达式或字符串比较吗?

最佳答案

这是比较变量并防止其中一些未定义/为空的奇怪行为的技巧。

您可以使用 或任何其他。主要是它想比较 ${LIBS_FROM_GIT}${name} 并防止其中一个为空的情况。

正如 Etan Reisner 在评论中指出的那样,[[ 没有空变量扩展问题。所以这个技巧通常在与单个 [:

进行比较时使用

这行不通:

$ [ $d == $f ] && echo "yes"
bash: [: a: unary operator expected

但如果我们在两个变量周围都添加一个字符串,它就会这样做:

$ [ ,$d, == ,$f, ] && echo "yes"
$

最后,注意你可以直接使用这个:

[[ ,${LIBS_FROM_GIT}, =~ ,${name}, ]] && return 0 || return 1

关于linux - 了解 bash 脚本语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489501/

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