我制作了一个基本的 shell 脚本,用于查找文件是否存在。它可以获得 sleep 间隔的参数(可选)。如果我不指定任何值,则默认为 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 :无效时间间隔“*60”
我猜变量有一个小错误,但我没能弄清楚。
最佳答案
你不是那样做算术的。你需要做arithmetic evaluation 使用 $((..))
作为
minutes=$(($1*60))
该错误是因为您将一个文字字符串输入传递给sleep
,而它不喜欢它。
关于linux - shell脚本中的 sleep 间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43604093/