簡體   English   中英

Bash Shell腳本變量

[英]Bash shell scripting variables

我的shell腳本中有以下行:

如果[-n“ $ {USE_X:+1}”]; 然后

我無法弄清楚“:+1”部分的含義。 有任何想法嗎?

在這里看看。 該URL提供以下解釋:

$ {參數:+ alt_value}

如果設置了參數,則使用alt_value,否則使用空字符串。

並具有以下示例:

echo
echo "###### \${parameter:+alt_value} ########"
echo

a=${param4:+xyz}
echo "a = $a"      # a =

param5=
a=${param5:+xyz}
echo "a = $a"      # a =
# Different result from   a=${param5+xyz}

param6=123
a=${param6:+xyz}
echo "a = $a"      # a = xyz

基本上,如果設置了$ USE_X,則該語句的計算結果為1,否則為null。 大概類似於

if [ -z $USE_X ];
then
    echo 1
else
    echo ""
fi

來自http://tldp.org/LDP/abs/html/parameter-substitution.html#PATTMATCHING

${parameter+alt_value}, ${parameter:+alt_value}
If parameter set, use alt_value, else use null string.

Both forms nearly equivalent. The : makes a difference only when parameter has been declared and is null, see below.

由於aioobe已經回答了問題本身,因此這是一種使用正則表達式搜索像Bash一樣長的聯機幫助頁的方法,以該問題為例:


/\{.*:\+

第一個正斜杠將less (聯機幫助頁查看器)置於搜索模式; 正則表達式表示先搜索左括號,然后搜索任意數量的內容,然后搜索冒號和加號。 方括號和加號需要轉義,因為它們對正則表達式解析器具有特殊含義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM