簡體   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