2011-03-30 120 views
1

寻找一种简单的方法,使一个随机数,我碰到一个web page所使用的代码

echo $[ ($RANDOM % $DIE_SIDES) + 1 ] 

后续剪断什么$[的目的。谷歌搜索没有透露我寻求的答案。谢谢

回答

4

$[expression]构造是用于算术;例如,$[1+1]返回2.您也可以说$((expression))expr 1 + 1expr命令版本是老派,应该在任何shell中工作,$[expression]$((expression))版本在bash中工作,但我不确定它们是否被POSIX覆盖。

更新:$[expression]表单是bash扩展名,$((expression))表单是为POSIX shell指定的。

+0

这个bash扩展在哪里被记录?我无法在手册页中找到它。 – 2011-03-30 10:28:26

+0

@glenn:我能找到的唯一参考资料是[this one](http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-10.html#ss10.2),仅限官方文档似乎谈论['((表达式))'](http://www.gnu.org/software/bash/manual/html_node/Arithmetic-Expansion.html#index-arithmetic-expansion-89)POSIX版本。我猜'$ [表达式]'是POSIX拥有'$(())'之前的工件,它可能会被弃用。搜索'$ ['没有太大作用:) – 2011-03-30 17:12:45