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