0

所以我正在制作一个脚本,允许您输入一个数字,导出它,然后导入它并在循环中使用它。这就是我的意思:

read NumberOfVMs "How many do you want? "
echo $NumberOfVMs > /variables/NumberOfVMs

然后稍后;

while [ $NumberOfVMs -gt 0 ];do
    # This is the loop I use to repeat the effects I want. 
    # This method works fine for me.
    NumberOfVMs=$((NumberOfVMs-1))
done

但是,让我明白的是,我需要使用按数字列出的变量(基于 $NumberOfVMs 等于什么。我还想将数字填零到四个 0。我知道我可以通过$(printf %04g $NumberOfVMs).

例如,我希望在提问时能够创建 3 个变量(分别在变量名末尾添加 0001、0002 和 0003)。我目前正在这样做

while [ $NumberOfVMs -gt 0 ];do          
    read -p "Enter percentage of RAM to allot GuestOS (1-99): " percentram$(printf %04g $NumberOfVMs)
    NumberOfVMs=$((NumberOfVMs-1))
done

并且,虽然我确实相信(我可能错了)正在编写百分比ram0001 - 我无法弄清楚如何在使用变量时动态使用它,因为它 $percentram$(printf %04g $NumberOfVMs)不等于percentram0001但等于percentram添加了 0001 的输出。

拜托,如果你能帮助我,我会永远爱你。

4

1 回答 1

2

您可以使用 eval hack:

NumberOfVMs=10
read -p "Enter percentage of RAM to allot GuestOS (1-99): " count
eval "percent$(printf %04g $NumberOfVMs)=$count"
echo $percent0010
于 2015-02-10T03:33:23.333 回答