Nowe posty

xx FirebirdSQL server w xinetd (1)
Wczoraj o 08:31:48
xx [SOLVED] Poczta Linux.pl (9)
2022-08-09, 15:09:29
xx Dostęp z komputerów z windowsem do plików udostępnionych na serwerze linux (samb (0)
2022-08-08, 20:27:55
xx brak uprawnienia do zamontowanej partycji ntfs - elementaryOS 6,1 (5)
2022-08-08, 06:36:07
xx Jak zainstalować sterowniki do karty sieciowej TP LINK WN350GD (1)
2022-08-04, 05:55:46
xx Ubuntu vs Fedora (1)
2022-07-26, 03:40:58
xx virtualization technology (1)
2022-07-25, 21:27:10
xx Migracja z centos 6 na centos 7 (3)
2022-07-25, 07:31:19
xx akonadi w KDE5 (10)
2022-07-22, 23:34:05
xx Alternatywa dla Delphi (7)
2022-07-22, 15:27:42

Autor Wątek: Countdown w bashu  (Przeczytany 1717 razy)

Syster

  • Gość
Countdown w bashu
« dnia: 2009-04-25, 13:35:17 »
Witajcie!
Poszukuje jakieś metody na odliczanie do danej daty w gnome. Niestety żadnego appletu nie znalazłem jedynie prawie dobrze działający skrypt w bashu:
#!/bin/bash

file=`ls ~/bin/countdown.txt`
usage="Usage: $0 #get time until destination\\n \\
$0 --add time name #assign time to the name\\n \\
$0 --reset [time] #reset clock, to time, if given\\n \\
See man date(1) for time add/reset format."

now=`date +%s`

if [ "$1" = "--add" ] ; then
if [ "$#" -lt "3" ] ; then
echo "Need more arguments!"
echo $usage
exit 1
fi
echo -n "$3:"`date -d "$2" +%s`"::" >> $file
exit
elif [ "$1" = "--reset" ] ; then
echo "" > $file
exit
fi

records=`cat $file`
numrecords=`cat $file | grep "::" | wc -l`
while [ $numrecords -gt 0 ]
do

destfull=`echo $records | nawk -F:: '{print $1}'`
destname=`echo $destfull | nawk -F: '{print $1}'`
dest=`echo $destfull | nawk -F: '{print $2}'`

interval=`expr $dest - $now`
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 "$destname: "$weeks" weeks, "$days" days, "$hours" hours, "$minutes" minutes, "$seconds" seconds"
records="${records#$destfull"::"}"
numrecords=`expr $numrecords - 1`
done
Problem w tym że jak dodam więcej niż jeden wpis to skrypt wyświetla tylko jeden pierwszy dodany wpis:(
Czy ktoś byłby w stanie go przerobić??