解释这个BASH表达式

时间:2013-04-29 11:57:56

标签: bash

我想获得特定范围内的随机数:

random_number=$(( RANDOM % $RANGE ))

这给了我一个错误

 ")syntax error: invalid arithmetic operator (error token is "

我假设我不能在这个表达式中使用$ RANGE,但为什么呢? 我怎么能改写这个?

2 个答案:

答案 0 :(得分:3)

不是这样的:

random_number = $(( $RANDOM % $RANGE ))
$

之前

RANDOM

如果这不起作用post

建议:

shuf -i 2000-65000 -n 1

<强>更新
重写方法如下:

 random_number = $(( $RANDOM % some_numeric_value ))

答案 1 :(得分:2)

看起来你的变量RANGE可能会被回车或其他东西污染。

如果您使用的是Windows,可能会因EOL配置错误而导致\r,您可以尝试这样做:

random_number = $(( RANDOM % $(tr -d '\r' <<< "$RANGE") ))