2013-04-28 86 views
1

這樣做的目的基本上是創建一副紙牌並隨機抽取1.現在,它甚至不分解字符串並將它們讀入數組中。我得到了一個命令suitesdenominations字符串未找到,然後RANDOM另一個錯誤。將字符串分成數組並在bash中隨機選取一個元素

我在IFS行寫錯了嗎?我是bash腳本的新手,我非常感謝大家的幫助=]!

#!/bin/bash 
# Count how many elements. 
Suites=「Clubs Diamonds Hearts Spades」 
Denominations=「2 3 4 5 6 7 8 9 10 Jack Queen King Ace」 
# Read into array variable. 
IFS=' ' 
suite=($Suites) 
denomination=($Denominations) 
# Count how many elements. 
num_suites=${#suite[*]} 
num_denominations=${#denomination[*]} 
echo -n "${denomination[$((RANDOM%num_denominations))]} of " 
echo ${suite[$((RANDOM%num_suites))]} 
exit 0 
+0

這是爲我工作的。在一些運行中,我看到了回聲:黑桃皇后;俱樂部的王牌; 7 Hearts。這是與bash 4.2.24。 – 2013-04-29 00:03:28

+0

這很奇怪...你如何運行它?我使用Ubuntu和在終端,我輸入chmod a + rx cards.sh,然後輸入./cards.sh來運行它 – Hokerie 2013-04-29 00:06:34

回答

2
#!/bin/bash 
# Count how many elements. 
Suites="Clubs Diamonds Hearts Spades" 
Denominations="2 3 4 5 6 7 8 9 10 Jack Queen King Ace" 
# Read into array variable. 
IFS=' ' 
suite=($Suites) 
denomination=($Denominations) 
# Count how many elements. 
num_suites=${#suite[*]} 
num_denominations=${#denomination[*]} 
echo -n "${denomination[$((RANDOM%num_denominations))]} of " 
echo ${suite[$((RANDOM%num_suites))]} 
exit 0 

這裏是我跑的劇本。我看到的一個區別是,我使用「當你使用」和「在你的套房和麪額線上,或者,0x22與u + 201c和u + 201d。

+0

* face palm *所以這是一個錯字,一定是在給出的單詞文檔中自動修正的。 。 – Hokerie 2013-04-29 00:13:39

相關問題