2013-04-28 53 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

相关问题