設爲我想要做這樣的事情在bash以下:檢測如果給定的環境變量(唯一的變量名,則是環境的一部分)在bash
if [ "${AA_BB_*}" ] ; then
echo "I am in"
fi
而「AA__BB」只是一個圖案。因此,無論我在我的環境中設置了「AA_BB_1」還是「AA_BB_X」,此腳本都會打印出「我進來」
我該如何實現這一目標?非常感謝
設爲我想要做這樣的事情在bash以下:檢測如果給定的環境變量(唯一的變量名,則是環境的一部分)在bash
if [ "${AA_BB_*}" ] ; then
echo "I am in"
fi
而「AA__BB」只是一個圖案。因此,無論我在我的環境中設置了「AA_BB_1」還是「AA_BB_X」,此腳本都會打印出「我進來」
我該如何實現這一目標?非常感謝
您近距離:${!AA_BB_*}
將展開到匹配AA_BB_*
的變量名稱列表。
if [ "${!AA_BB_*}" ]; then
但是,請注意,這將對陣所有 shell變量,而不僅僅是那些export
屬性設置。如果你真的要對環境變量專門檢查,你必須grep
的env
輸出:
if env | grep -q 'AA_BB_*'; then
使用env列出變量,AWK只選擇變量名和grep匹配的模式:
if (env | awk -F= '{print $1}' | grep -q "AA_BB_*"); then echo 'I am in' ;fi