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 が等しいことに基づいて)。また、数値を 4 つの 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

そして、私は(間違っているかもしれませんが)percentram0001が書かれていると信じています が、0001が追加された出力と$percentram$(printf %04g $NumberOfVMs)等しくpercentram0001なく、むしろ等しい変数を使用するときに動的に使用する方法を理解できませんそれに。percentram

どうか、私を助けていただければ、私はあなたを永遠に愛します。

4

1 に答える 1

2

評価ハックを使用できます:

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 に答える