从bash中的名称列表中评估变量

时间:2015-06-15 23:28:20

标签: bash

vars="a,b"
a="True"
b="False"
IFS=","
for var in $vars; do
  if [[ "$var" = "True" ]]; then
    echo "True found"    
  fi
done

我希望上面的bash脚本打印出来" True found"。但它没有打印任何东西。关于为什么的任何想法?

1 个答案:

答案 0 :(得分:2)

制作本:

if [[ "${!var}" = "True" ]]; then

${!varname}展开$varname中指定的变量。否则,您将获得名称本身,而不是具有该名称的变量的内容。

有关详细信息,请参阅BashFAQ #6