【发布时间】:2015-09-12 15:30:41
【问题描述】:
我正在寻找使用 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。
要么我的外壳讨厌馅饼,要么我做错了什么,但我似乎找不到其他人这样做的实例,或者至少我找不到任何人以我的方式描述它的实例当我在 Google 上搜索时试图描述它...
在赋值中使用变量时,有没有办法让这个变量赋值?
【问题讨论】:
-
您基本上想要一个动态名称为您的变量(获取帮助here)