shell脚本中的睡眠间隔

时间:2017-04-25 07:19:30

标签: linux bash 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'

我想这是变量的一个小错误,但我没有设法弄明白。

1 个答案:

答案 0 :(得分:5)

你没有这样算术。您需要使用$((..))作为

进行arithmetic evaluation
minutes=$(($1*60))

错误是因为您将文字字符串输入传递给它不喜欢的sleep