2016-04-06 4 views
0

Ich habe ein Skript, das jede Minute läuft und ich mag überprüfen, ob die aktuelle Minute in einer Variablen enthalten ist, die aus einer Textdatei zugewiesen werden.Wie die aktuelle Minute abrufen und prüfen, ob die Minute in einer Datei ist

clip_time = (< /home/project/data/clip_time.cfg)

clip_time.cfg ist eine Textdatei, die wie folgt aussieht: 00,05,10,15,20,25,30, 35,40,45,50,55

in einer if-Anweisung: wenn die aktuelle Minute von "Datum '+% M'" in den variablen ist, sagen Sie "45", dann dies tun, wenn nicht, tun Diese

würde ausgelöst, wenn die Minute 45 ist, aber nicht 46, 47, 48, 49. Aber trigger auf 50.

Also mit anderen Worten, führen Sie jede Minute des Skript, und wenn die Minute in der Variablen ist, dies zu tun, wenn 30 Sekunden lang nicht schlafen und weiter.

Die Variable wird nicht notwendigerweise alle 5 Minuten. Es könnte 05, 08, 11, 22 sein, 35.

Antwort

0

Eine Möglichkeit, es zu tun ist, indem geprüft wird, dass die clip_time Zeichenfolge die aktuelle Minute als Teil enthält:

clip_time="$(cat /home/project/data/clip_time.cfg)" 
minute="$(date +%M)" 

# The 2 asterisks make this a glob match, which should find that 
# minute in the list, if it's in there 
if [[ "$clip_time" == *"$minute"* ]]; then 
    echo "$minute is in the list" 
else 
    echo "$minute is NOT in the list" 
fi 
0

können Sie mak e Verwendung zusammen grep und Datum wie folgt:

grep "\b`date "+%M"`\b" test 

mit Wortgrenzen und -q Flagge selbst hinzufügen kann ein 0 oder 1, wie dies zurück:

grep -q "\b`date "+%M"`\b" test 
Verwandte Themen