Bash 脚本,非法编号:08

5 bash

我在 ubuntu 中运行了一个非常简单的 bash 脚本,但遇到了一个问题。如果需要,我会发布整个脚本,但我已经缩小了问题的范围。基本上,我想每 15 秒运行一次代码,所以我从这个开始:

time=`date +%S`

time2=$((time%15))

if [ $time2 -eq 0 ]

then
Run Code Online (Sandbox Code Playgroud)

等等等等等等....

当时间为 08 秒时出现问题。脚本以非法编号终止:08。添加到,使用时:

time2=$(($time%15))
Run Code Online (Sandbox Code Playgroud)

而不是非法数字错误,它将以算术表达式终止:期望 EOF:“08%15”

我猜 08 不会被解释为一个数字。或者有一些基本问题,比如它认为它是八进制或其他东西。有什么帮助吗?

eph*_*ent 5

最短的解决方案:

time2=$(( ${time#0} % 15 ))
Run Code Online (Sandbox Code Playgroud)

${var#glob}手段“$varglob如果存在的话从一开始就去除”。