2012-05-06 44 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: let ARGUMENT... 
    Evaluate arithmetic expressions. 

這就解釋了爲什麼let b+=$number執行的$numberb,而不是字符串連接整數加法(123)。

簡單地移除let並且期望的行爲111,111將發生。

執行字符串連接的另一種方法:

b="$b$number" 

是,簡單地稱爲「讓b成爲串聯bnumber的結果

作爲邊注,b=""相當於b=作爲""擴展爲一個空字符串變量上的模塊操作可以通過算術擴展完成:number=$((RANDOM%9))

+1

+1作爲一個詳細的解釋 –

+0

你也可以這樣算術擴展:'((number = RANDOM%9))' –

相關問題