首页 > 解决方案 > 仅打印具有值的变量

问题描述

value1=yellow
value2=
value3=red
value4=pink
value5=

我只需要打印带有值(=value1,value3,value4)的字符串的内容

#!/bin/bash
value1=yellow
value2=
value3=red
value4=pink
value5=

for a in {1..5}
do
echo $value$a
done

标签: bash

解决方案


您可以使用间接引用变量,然后检查它是否为空。

#!/bin/bash

value1=yellow
value2=
value3=red
value4=pink
value5=

for a in {1..5}
do
    var=value$a
    val=${!var}
    [[ -n ${val} ]] && echo "${val}"
done

推荐阅读