微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐