linux-了解bash脚本语法

以下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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...