Bash:使用另一个变量+ text分配给变量

时间:2015-06-25 20:35:15

标签: bash shell aix

我希望使用for循环来使用基本相同的代码分配几个变量。

#!bin/bash
for (( i=1; i<=4; i++ )); do
    case ${i} in 
        1) filling=apple; a=an ;; 
        2) filling=peach; a=a ;; 
        3) filling=pecan; a=a ;; 
        4) filling=cherry; a=a ;;
    esac
    echo "Would you like ${a} ${filling} pie? Y/N"
    read var1
    case ${var1} in
       Y|y) ${filling}_pie="True" ;; 
       N|n) ${filling}_pie="No" ;;
    esac
done

此脚本完全按预期工作,除非在最后指定变量。我得到apple_pie=True: command not found。我也试过了Y|y) ${${filling}}_pie="True" ;,但是当我这样做时,我得到bash: ${${filling}}_pie="True": bad substitution

要么我的shell讨厌派,要么我做错了但是我似乎无法找到其他任何人这样做的实例,或者至少我不能用任何人的实例来描述它我的方式我在Google上搜索时试图描述它......

在分配中使用变量时,有没有让它分配变量?

1 个答案:

答案 0 :(得分:2)

您可以在此处使用declare directive来声明动态变量:

declare ${filling}_pie="True"