Visszaszámláló a kihíváshoz :-)

csuhas32 képe

Mivel szezon van, tömeges megkeresések záporoznak felém, tudakolván, hogy mikor lesz folytatása a hirtelen félbemaradt azonos tartalmú kertészeti, minimum 4000 karakter hosszúságú, hozzászólásaim percenkénti közreadásának. Eddig az a taktikát követtem, hogy ilyenkor mindig elküldtem a linket: https://linuxmint.hu/comment/65379#comment-65379, gondolván ebben benne van minden. Nem feltételeztem, hogy más is ennyire kevéssé orientált térben és időben, mint én, ami újabb kérdéseket szül. Mert rendben, balacy kihívásának értelmében a végdátum május 12-e éjfél, de az még mennyi idő? Egyáltalán ma hanyadika van? Macerás ezt mindig kiszámolni.

Elkezdtem keresni az interneten és ezt találtam: https://linuxconfig.org/time-countdown-bash-script-example

Szóval nyitottam egy terminált:

nano countdown.sh

beillesztettem az alábbi tartalmat:

#!/bin/bash
 
if [ "$#" -lt "2" ] ; then
    echo "Incorrect usage ! Example:"
    echo './countdown.sh -d  "Jun 10 2011 16:06"'
    echo 'or'
    echo './countdown.sh -m  90'
    exit 1
fi
 
now=`date +%s`
 
if [ "$1" = "-d" ] ; then
    until=`date -d "$2" +%s`
    sec_rem=`expr $until - $now`
    echo "-d"
    if [ $sec_rem -lt 1 ]; then
        echo "$2 is already history !"
    fi
fi
 
if [ "$1" = "-m" ] ; then
    until=`expr 60 \* $2`
    until=`expr $until + $now`
    sec_rem=`expr $until - $now`
    echo "-m"
    if [ $sec_rem -lt 1 ]; then
        echo "$2 is already history !"
    fi
fi
 
_R=0
_C=7
tmp=0
percent=0
total_time=0
col=`tput cols`
col=$[ $col -5 ]

while [ $sec_rem -gt 0 ]; do
    clear
    date
    let sec_rem=$sec_rem-1
    interval=$sec_rem
    seconds=`expr $interval % 60`
    interval=`expr $interval - $seconds`
    minutes=`expr $interval % 3600 / 60`
    interval=`expr $interval - $minutes`
    hours=`expr $interval % 86400 / 3600`
    interval=`expr $interval - $hours`
    days=`expr $interval % 604800 / 86400`
    interval=`expr $interval - $hours`
    weeks=`expr $interval / 604800`
    echo "----------------------------"
    echo "A kihívás végéig hátravan:"
    echo "hét:      " $weeks
    echo "nap:      " $days
    echo "óra:      " $hours
    echo "perc:     " $minutes    
    echo "másodperc:" $seconds
    
    echo -n "["

    progress=$[$progress + 1]
    if [ $total_time -lt 1 ] ; then
        total_time=$[$hours * 3600 + $minutes * 60 + $seconds]
    fi
    
    printf -v f "%$(echo $_R)s>" ; printf "%s\n" "${f// /=}"
    _C=7
    tput cup 7 $col

    tmp=$percent
    percent=$[$progress * 100 / $total_time]
    printf "]%d%%" $percent
    change=$[$percent - $tmp]

    _R=$[ $col * $percent / 100 ]

    sleep 1
done
printf "\n"

 

Elmentettem a fájlt (Ctrl+O), majd kiléptem a Nano-ból (Ctrl+X)

A

chmod +x countdown.sh

paranccsal futtathatóvá tettem a fájlt.

Következett a

nano challange-countdown.sh

ebbe a fájlba a

#!/bin/bash

./countdown.sh -d "May 13 2024"

tartalmat tettem. Természtesen ezt is elmentettem, majd futtathatóvá tettem.

chmod +x challange-countdown.sh

Kész is vagyok. Most már csak nyitok egy terminált és kiadom a

./challange-countdown.sh

parancsot, máris pontos választ tudok adni ezzel a fontos kérdéssel kapcsolatban. :-)

A folyamat futását Ctrl+C-vel tudjátok megszakítani.

Lehet még fésülgetni, cicomázni, akár az indítópultba is betehető formában elkészíteni a dolgot, de alapvetően működik, a kihívásban szintén résztvevő fórumtársaknak is talán segítséget nyújthat abban, meddig tart még a vállalásuk, mennyi idejük van mondjuk elkészíteni az ennek keretében beküldendő blogbejegyzéseiket.

 

Hozzászólások

csuhas32 képe

Ki hogyan halad a kihívással?

Értékelés: 

0
Még nincs értékelve

#1 A kihívás keretén belül áthoztam ide két korábban másol közölt (bizonyára nagyképűen hangzik) szerintem értékes írásomat és megírtam ezt a kis szösszenetet. Volt ma egy megítélésem szerint elég jó hozzászólásom, ha nagyon akartam volna, egy kicsit feltupírozva blogot is lehetett volna kreálni belőle, de jó helyen van az így is. Nehéz időszak ez. A saját értékelésem szerint a kihívást már rég elbuktam a másik rész be nem tartása miatt , de az sokkal fontosabb, hogy a linuxmint.hu-n írhattam újra egy témába T.Istvánnal és 444tibivel.
Mivel a kihívást balacy hirdette meg, az lenne az igazi, ha ő értékelné, ki hogyan teljesített még akkor is, igencsak örülnék ennek, ha kapok majd egy kis jogos feddést. :-)
Egyébként a kihívás vége egybeesik egy másik eseményével is, úgyhogy az abból hátralévő időt is mutatja ez a kis visszaszámláló, akár el lehetett volna nevezni arról is, de a challenge-ben szerepelt, hogy bizonyos dolgokról nem beszélünk és hát ez is köztük volt.

Amúgy a visszaszámláló nekem így jobban tetszik:

Ha valakit esetleg érdekel, itt a változtatott részlet:


    echo "------------------------------------"
    echo "A kihívás végéig hátravan:"
    echo ""
    echo "     " $weeks "hét" $days "nap"
    echo ""
    echo $hours "óra" $minutes "perc" $seconds "másodperc"