random函数报错--shell value too great for base (error token is "096192304")

#!/bin/bash
  
function rand(){
  min=$1
  max=$(($2-$min+1))
  num=$(date +%N)

  ((retnum=$num%max+min));
   echo $retnum;

}
  
rnd=$(rand 1 50)
echo $rnd
  
exit 0

-- 报错 shell value too great for base (error token is "096192304")

解决方法:加上10#,即声明称十进制

将要转换成十进制的变量或者数字 在前面加上`10#`即可:

((retnum=10#$num%max+min));

原文地址:https://www.cnblogs.com/shishibuwan/p/11208003.html