繁体   English   中英

了解bash脚本语法

[英]understand bash script syntax

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM