【问题标题】:for loop to check multiple var to return the name of empty varfor 循环检查多个 var 以返回空 var 的名称
【发布时间】:2014-03-02 13:04:58
【问题描述】:

我正在编写一个 bash 脚本,我有一个 var 列表

var1="chicken"
var2="sweet potatoe"
var3=""
var4="rice"

我想返回 var 本身的名称,它是空的

for var in var1 var2 var3 var4; do
    if [[ ! -n "$var" ]]; then
    echo "Fix that: $var ${!var}"
    fi
done

这什么都不返回。

相反的作品

for var in var1 var2 var3 var4; do
    if [[ -n "$var" ]]; then
    echo "Fix that: $var ${!var}"
    fi
done

我已经测试了几种方法来实现这一点,我想保持它非常简单,我想不通。

感谢您的帮助。

【问题讨论】:

    标签: bash loops for-loop var


    【解决方案1】:

    使用变量间接:

    for var in var1 var2 var3 var4; do
        [[ -z ${!var} ]] && echo empty: $var
    done
    
    empty: var3
    

    【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2019-08-16
    • 2019-12-04
    • 1970-01-01
    • 2011-08-08
    • 2019-10-18
    • 2015-08-28
    • 2018-11-28
    相关资源
    最近更新 更多