Kod: Tümünü seç
#!/bin/bash
# Başlangıç zamanı
start_time=$(date +%s)
paused=0
pause_time=0
pause() {
echo -e "\nDuraklatıldı. Devam etmek için 'enter' tuşuna basın."
read
resume_time=$(date +%s)
start_time=$((start_time + resume_time - pause_time))
}
echo "Kronometre başlatıldı. Duraklatmak için 'p', durdurmak için Ctrl+C tuşlarına basın."
while true; do
if [ $paused -eq 0 ]; then
# Şu anki zaman
current_time=$(date +%s)
# Geçen süreyi hesapla
elapsed=$((current_time - start_time))
# Dakika ve saniye olarak formatla
minutes=$((elapsed / 60))
seconds=$((elapsed % 60))
# Ekranı temizle ve süreyi göster
printf "\rGeçen süre: %02d:%02d" "$minutes" "$seconds"
fi
# Kullanıcıdan giriş bekle (1 saniyelik döngü)
read -t 1 -n 1 input
if [[ $input == "p" ]]; then
paused=1
pause_time=$(date +%s)
pause
paused=0
fi
done
Bu Bash shell betiği, bir kronometre işlevi gören basit bir komut dosyasıdır. İşte betiğin ana bileşenlerinin açıklaması:
1.Başlangıç Zamanı:
start_time değişkeni, kronometrenin başlatıldığı anı (Unix zaman damgası olarak) saklar.
2.Duraklatma Değişkenleri:
paused ve pause_time değişkenleri, kronometrenin duraklatılıp duraklatılmadığını ve duraklatma zamanını takip eder.
3.pause Fonksiyonu:
Bu fonksiyon, kronometreyi duraklatır. Kullanıcıdan 'enter' tuşuna basmasını bekler ve ardından duraklatma süresini güncelleyerek kronometreyi devam ettirmek için gerekli zamanı ayarlar.
4.Ana Döngü:
Sonsuz bir döngü içinde, kronometre çalışır. Eğer paused değişkeni sıfırsa (yani duraklatılmamışsa), geçen süre hesaplanır ve ekrana yazdırılır.
5.Kullanıcı Girişi:
Kullanıcıdan giriş almak için read komutu kullanılır. Eğer kullanıcı 'p' tuşuna basarsa, kronometre duraklatılır ve pause fonksiyonu çağrılır.
6.Ekranda Süre Gösterimi:
Geçen süre, dakika ve saniye formatında ekrana yazdırılır.
Bu betik, kullanıcıya basit bir kronometre deneyimi sunar ve duraklatma özelliği ile kullanıcı etkileşimi sağlar.
ÖRNEK KOMUT ÇIKTISI (Sistem : GNU/Linux Mint 21.1 LXDE x64)
Kod: Tümünü seç
linuxmaster@notebookpc:~/Masaüstü$ ls -g
toplam 36
-rw-rw-r-- 1 linuxmaster 24892 Oca 18 23:06 'Akçakoca İçin Namaz Vakti.xlsx'
lrwxrwxrwx 1 linuxmaster 64 Oca 6 18:37 'Karalama Notları 2025' -> '/home/linuxmaster/Belgeler/Çöp Tenekesi/Karalama Notları 2025'
-rwxrwxrwx 1 linuxmaster 1009 Ara 21 06:29 kronometre.sh
linuxmaster@notebookpc:~/Masaüstü$ ./kronometre.sh
Kronometre başlatıldı. Duraklatmak için 'p', durdurmak için Ctrl+C tuşlarına basın.
Geçen süre: 01:01p
Duraklatıldı. Devam etmek için 'enter' tuşuna basın.
Geçen süre: 02:00^C
linuxmaster@notebookpc:~/Masaüstü$