2011-03-30 46 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