shell脚本中的睡眠间隔

Fog*_*ert 2 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
Run Code Online (Sandbox Code Playgroud)

运行此后,我收到此错误:
sleep: invalid time interval '*60'

我想这里有一个变量的小错误,但我没有设法搞清楚.

Ini*_*ian 5

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

minutes=$(($1*60))
Run Code Online (Sandbox Code Playgroud)

该错误是因为您传递了一个它不喜欢的文字字符串输入sleep.