declare和random

declare可以为变量声明类型:

declare -i var=1 # 声明为整数类型

var=var+1 #此时数学运算不需要let或者双圆括号

还有另外一点区别:

n=6/3 echo "n = $n" # n = 6/3 declare -i n n=6/3 echo "n = $n" # n = 2

declare -r var=1 #此时var的值不能在改变

declare -f声明函数 如果后面没有参数的话,会列出所有已定义的函数

declare还可定义局部变量

没定义以前

foo () { FOO="bar" } bar () { foo echo $FOO } bar # Prints bar.

定义后的结果

foo (){ declare FOO="bar" } bar () { foo echo $FOO } bar # Prints nothing.

declare还可以查找已定义的变量

bash$ declare | grep HOME HOME=/home/bozo bash$ zzy=68 bash$ declare | grep zzy zzy=68

随机数RANDOM

其范围是0-32767

几种产生随机数的技巧

1.产生小于一个数的随机数

RANGE=500 number=$RANDOM let "number %= $RANGE" echo "Random number less than $RANGE --- $number"

2产生大于一个数的随机数

FLOOR=200 number=0 #initialize while [ "$number" -le $FLOOR ] do number=$RANDOM done echo "Random number greater than $FLOOR --- $number" echo

3产生中间数的随机数

# Generate random number between 6 and 30. rnumber=$((RANDOM%25+6)) # Generate random number in the same 6 - 30 range, #+ but the number must be evenly divisible by 3. rnumber=$(((RANDOM%30/3+1)*3)) # Note that this will not work all the time. # It fails if $RANDOM%30 returns 0. # suggests the following alternative: rnumber=$(( RANDOM%27/3*3+6 ))

值得注意的是如果为RANDOM附上相同的值,产生的随机序列是相同的

number=$RANDOM echo $number echo RANDOM=1 number=$RANDOM echo $number echo RANDOM=1 number=$RANDOM echo $number #和上面的结果是相同的 echo RANDOM=2 number=$RANDOM echo $number echo

输入结果为

11341 16807 16807 #此处看出和上面是一个值 846 

 

你可能感兴趣的:(linux,random,bash,less)