在shell脚本中的睡眠间隔

我做了一个基本的shell脚本,它查找文件的存在。 它可以获得睡眠间隔的参数(可选)。 如果我不给,默认的是60秒。

这是我的代码:

#!/bin/bash minutes=60 if [ "$#" -eq 1 ]; then re='^[0-9]+$' if ! [[ "$1" =~ re ]]; then echo $1 is not a number! exit 1 fi else minutes=$1*60 fi while [ ! -f uj_aru ] do last | grep Apr sleep "$minutes" done 

运行 ,我得到这个错误:
sleep: invalid time interval '*60'

我想这里是variables的一个小错误,但我没有设法弄清楚。

你没有这样做算术。 您需要使用$((..))进行算术评估

 minutes=$(($1*60)) 

错误是因为你正在传递一个文字字符串输入到它不喜欢的sleep