1. sayfa (Toplam 1 sayfa)

GNU/Linux Tarzı Kronometre

Gönderilme zamanı: 22 Oca 2025 17:31
gönderen TRWE_2012
kronometre.sh

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

Betiğin Açıklaması :

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ü$ 
Güle güle kullanın....