Linux bash - podmínky IF - den/týden je sudý/lichý a dle rozdílu mezi daty

Linux bash - podmínky IF - den/týden je sudý/lichý a dle rozdílu mezi daty

V následujícím obsahu si uvedeme příklady, jak napsat shell skript pro linux bash s podmínkami, kdy se ověřuje zda je den/týden lichý či sudý a také zda je rozdíl mezi daty vetší než x dnů.

Podmínka zda je den lichý nebo sudý

# daily backup
# only if day is even
day=$(date +%d)
if [ $((10#${day}%2)) -eq 0 ];then
     echo 'date is even - backup now'
else
    echo 'date is odd - no backup now'
fi

 

Podmínka zda je týden lichý nebo sudý

# weekly backup
# only if week is even
week=`date +"%V"`
if [ $(($week%2)) -eq 0 ];then
     echo 'week is even - backup now'
else
    echo 'week is odd - no backup now'
fi

 

Podmínka zda rozdíl mezi daty větší než 10 dnů

# backup by diff between two dates
# only diff is bigger than 10 days
datePast='20221009'
dateNow=$(date '+%y%m%d')
let diff=(`date +%s -d $dateNow`-`date +%s -d $datePast`)/86400
echo $diff
if [ diff > 10 ];then
     echo 'bigger than 10 - backup now'
else
    echo 'less than 10 - no backup now'
fi

 

Chyby

Při porovnání hodnoty week=`date +"%V"` se můžeme setkat s chybou

line 13: 08: value too great for base (error token is "08")

Řešením je odebrat úvodní nulu

week=${week#0}

 

Příklady je možné najít na githubu.

 

Související obsah

linux

bash

terminal

backup

shell

Komentáře

Vaše reakce na Linux bash - podmínky IF - den/týden je sudý/lichý a dle rozdílu mezi daty

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.