循环变量为空值

时间:2014-06-04 09:04:24

标签: bash

我有一些变数

VAR1 = 1

VAR2 =

VAR3 = 3

我想通过循环和放大来调整它给那些空的那些空值。

对于$ VAR1 $ VAR2 $ VAR3

中的somevar

DO

测试-z $ somevar&& $ somevar =空

完成

但它不起作用:(

2 个答案:

答案 0 :(得分:2)

最简单的方法可能是为每个变量分配一个默认值。例如:

${VAR:=value}

这会将$VAR的值设置为"值"如果它未设置或为空。

要回答有关您的代码无法正常运作的具体问题,可能是因为您正在进行

$somevar=null

而不是:

somevar=null

答案 1 :(得分:0)

如果你想用一个文字字符串设置变量' null'你可以这样做:

for somevar in VAR1 VAR2 VAR3; do
    [[ -z ${!somevar} ]] && eval "${somevar}=null"
done

那是安全的。只需确保变量名称有效。