2012-05-06 10 views
6

文字列を生成するために変数にランダムな整数を追加して文字列を出力したい。しかし、Bashは、数字を一緒に追加します。整数を文字列として変数bashに追加する

#!/bin/bash 
b="" 
for ((x=1; x<=3; x++)) 
do 
number=$RANDOM 
let number%=9 
let b+=$number 
done 
echo ${b} 

は、すべての乱数が1であると言う、スクリプトが出力3の代わりに、111 は、どのように私は111の所望の結果を達成んだろうか?

答えて

16

希望する動作を達成するには、いくつかの可能性があります。まずはあなたが何をやったか見てみましょう:

let b+=$number 

help letを実行:let b+=$number$number代わりに、文字列の連結のbへの整数加算(123)を実行する理由を説明

let: let ARGUMENT... 
    Evaluate arithmetic expressions. 

単純にletを削除し、希望の動作1,11111が発生します。

文字列連結を実行するための他の方法は:

b="$b$number" 

はい、単に「bbnumberを連結した結果になろう

サイドノートとして、b=""""としてb=と等価です。変数へのモジュール操作は、算術展開で行うことができます。number=$((RANDOM%9))

+1

+1 –

+0

このように算術展開を行うこともできます: '((number = RANDOM%9))' –

関連する問題