Kabuk Komutunu Belirlenen Saat veya Süre Sonunda Çalıştırma Betiği

Başlatan mimiksiz, 23 Mayıs 2018 - 01:34:35

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

mimiksiz

shutdown komutuna -h parametresi ile kronometre gibi süre belirleyebiliyoruz, keşke her komut için olsa ama sadece kronometre gibi değil çalar saat gibide olsa diyerek zsh için karalandı.
not1)Döngüler yanlış seçim olmasın ve istenildiği gibi girilsin diye ayarlı. Örneğin saat girişi 1:5 değil 01:05 girilmeli
not2)1 günden fazla süre girilmemesi için ayarlı

#!/bin/zsh
clear
echo "İşleminizi giriniz:"
read b
while true; do
clear
echo "\nİşleminizi ne zaman yapacaksınız?\n(1)-Saat\n(2)-Geri Sayım"
read a
case $a; in 1);
while true; do
clear
echo "ŞU AN SAAT"; date +%H:%M
echo "\nSaat ve dakikayı ':' ile ayırarak giriniz:"
read a1
if [ "$(echo $a1|tr -cd :|wc -L)" = 1 ]; then
gelen_saat=$(echo $a1|awk -F : '{print $1}')
gelen_dakika=$(echo $a1|awk -F : '{print $2}')
saat=$(date +%H)
dakika=$(date +%M)
saniye=$(date +%S)
if [ "$(echo $gelen_saat|tr -d '[0-9]')" = "" ] && [ "$(echo $gelen_saat|wc -L)" = 2 ] && [ "$gelen_saat" -lt 24 ] && [ ! "$gelen_saat" -lt 0 ]; then
if [ "$(echo $gelen_dakika|tr -d '[0-9]')" = "" ] && [ "$(echo $gelen_dakika|wc -L)" = 2 ] && [ "$gelen_dakika" -lt 60 ] && [ ! "$gelen_dakika" -lt 0 ]; then
if [ "$saniye" -lt 60 ]; then
bekle3=$(( 60-$saniye ))
elif [ "$saniye" = 0 ]; then
bekle3=0
fi
if [ "$gelen_dakika" -lt "$dakika" ]; then
bekle2=$(( $(( 60-$dakika))+$gelen_dakika ))
bekle_=1
elif [ "$gelen_dakika" = "$dakika" ]; then
bekle2=0
else
bekle2=$(( $gelen_dakika-$dakika ))
fi
if [ "$gelen_saat" -lt "$saat" ]; then
bekle1=$(( $(( 24-$saat ))+$gelen_saat ))
elif [ "$gelen_saat" = "$saat" ]; then
bekle1=0
else
bekle1=$(( $gelen_saat-$saat ))
fi
if [ "$bekle_" = 1 ]; then
if [ "$bekle1" = 0 ]; then
bekle1=23
else
bekle1=$(( $bekle1-1 ))
fi
fi
if [ ! "$(( $bekle2+$bekle1 ))" -lt 1 ]; then
bekle2=$(( $bekle2-1 ))
bekle=$(( $(( $bekle1*3600 ))+$(( bekle2*60 )) ))
bekle=$(( $bekle+$bekle3 ))
if [ "$bekle1" -lt 1 ]; then
clear
echo "'$b' işlemi için $bekle2 dakika $bekle3 saniye kaldı."
else
clear
echo "'$b' işlemi için $bekle1 saat $bekle2 dakika kaldı."
fi
sleep $bekle
echo $b|zsh
break
fi
fi
fi
fi
done
break
;;
2);
while true; do
clear
echo "(1)-Saat\n(2)-Dakika\n(3)-Saniye"
read a2
case $a2; in 1);
while true; do
clear
echo "Kaç saat sonra işlem yapılacak:"
read a2_1
if [ "$(echo $a2_1|tr -d '[0-9]')" = "" ] && [ ! "$a2_1" -lt 1 ] && [ "$a2_1" -lt 24 ]; then
echo "'$b' işlemi için $a2_1 saat ayarlandı."
sleep "$a2_1"h
echo $b|zsh
break
fi
done
break
;;
2);
while true; do
clear
echo "Kaç dakika sonra işlem yapılacak:"
read a2_2
if [ "$(echo $a2_2|tr -d '[0-9]')" = "" ] && [ ! "$a2_2" -lt 1 ] && [ "$a2_2" -lt 3600 ]; then
echo "'$b' işlemi için $a2_2 dakika ayarlandı."
sleep "$a2_2"m
echo $b|zsh
break
fi
done
break
;;
3);
while true; do
clear
echo "Kaç saniye sonra işlem yapılacak:"
read a2_3
if [ "$(echo $a2_3|tr -d '[0-9]')" = "" ] && [ ! "$a2_3" -lt 1 ] && [ "$a2_3" -lt 218000 ]; then
echo "'$b' işlemi için $a2_3 saniye ayarlandı."
sleep $a2_3
echo $b|zsh
break
fi
done
break
;;
esac
done
break
;;
esac
done