2012-05-06 8 views
6

पर स्ट्रिंग के रूप में पूर्णांक जोड़ें I स्ट्रिंग बनाने के लिए एक चर के लिए यादृच्छिक पूर्णांक जोड़कर एक स्ट्रिंग आउटपुट करना चाहते हैं। हालांकि, बैश सिर्फ संख्याओं को जोड़ता है।एक वैरिएबल बैश

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

स्क्रिप्ट 3 111. के बजाय उत्पादन कैसे मैं 111 के वांछित परिणाम प्राप्त करते हैं जाएगा हर यादृच्छिक संख्या 1 है कहो?

उत्तर

16

आपके वांछित व्यवहार को प्राप्त करने के लिए कई संभावनाएं हैं। चलो पहले की जांच आप क्या किया है:

let b+=$number 

help let चल रहा है:

let: let ARGUMENT... 
    Evaluate arithmetic expressions. 

बताते हैं यही कारण है कि let b+=$number$number स्ट्रिंग संयोजन के बजाय b करने के एक पूर्णांक अलावा (1, 2, 3) करता है।

बस let हटाएं और वांछित व्यवहार 1, 11, 111 होगा।

स्ट्रिंग संयोजन प्रदर्शन करने के लिए अन्य विधि:।

b="$b$number" 

हाँ, बस "bb और number श्रृंखलाबद्ध का परिणाम बनने

एक तरफ ध्यान दें के रूप में, b=""b= रूप "" के बराबर है एक खाली स्ट्रिंग में विस्तारित किया गया है। एक चर पर मॉड्यूल ऑपरेशन अंकगणितीय विस्तार के साथ किया जा सकता है: number=$((RANDOM%9))

+1

+1 पूरी तरह से स्पष्टीकरण के लिए –

+0

आप इस तरह अंकगणितीय विस्तार भी कर सकते हैं: '((संख्या = रैंडम% 9))' –

संबंधित मुद्दे