2017-04-25 18 views
2

ファイルの存在を探す基本的なシェルスクリプトを作成しました。スリープインターバルのパラメータ(オプション)を取得できます。私が何も言わないならば、デフォルトは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'

私はここに推測するには、変数と小さなミスですが、私はdidnのそれを把握することはできません。

+3

'minutes = $ 1 * 60'を' minutes = $(($ 1 * 60))に変更する ' – user000001

+0

60秒ごとに自動チェックファイルが必要ですか? – Alex

+0

ありがとう、それは動作します! :) –

答えて

5

このように算術演算を行っているわけではありません。あなたはそれが好きではないsleepリテラル文字列の入力を渡しているため、エラーがある

minutes=$(($1*60)) 

として $((..))を使用して arithmetic evaluationを行う必要があります。