我想在bash中执行以下操作:
if [ "${AA_BB_*}" ] ; then
echo "I am in"
fi
和" AA__BB"只是一个模式。所以无论我设置了什么" AA_BB_1"或" AA_BB_X"在我的环境中,此脚本将打印"我在"
我怎样才能实现这一目标?非常感谢
答案 0 :(得分:2)
您已关闭:${!AA_BB_*}
将展开到与AA_BB_*
匹配的变量名称列表。
if [ "${!AA_BB_*}" ]; then
但请注意,这将与所有 shell变量匹配,而不仅仅是那些设置了export
属性的变量。如果您确实要特别针对环境变量进行检查,则必须grep
env
的输出:
if env | grep -q 'AA_BB_*'; then
答案 1 :(得分:0)
你可以使用env列出变量,awk只选择变量名和grep来匹配模式:
if (env | awk -F= '{print $1}' | grep -q "AA_BB_*"); then echo 'I am in' ;fi