我在 shell 腳本中找到了以下代碼,但我不確定test條件的評估物件是什么
if test "${SOME_VAR#*$from asdf/qwer}" != "$SOME_VAR"; then
echo "##zxcv[message text='some text.' status='NORMAL']";
fi
uj5u.com熱心網友回復:
這種組合#*$并不意味著什么特別。共有三個特殊符號,在這種情況下,它們中的每一個都有自己的含義。
${SOME_VAR#abc}是引數擴展。它的值是去掉$SOME_VAR匹配的最短前綴的值。abc
在您的示例中,abc是*${from} asdf/qwer. 這意味著*后面跟著變數的值$from(它是動態的,在計算運算式時被替換),后面跟著一個空格,然后是asdf/qwer.
總而言之,如果 的值$SOME_VAR以一個結尾的字串開頭,${from} asdf/qwer那么之前和包括的所有內容都asdf/qwer將被洗掉,并將結果值作為第一個引數傳遞給test.
鍵入man bash您的終端以閱讀檔案bash或在線閱讀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/445468.html
