Zenity betiği ile otomatik bilgisayar kapatma: Revizyonlar arasındaki fark

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Değişiklik özeti yok
4. satır: 4. satır:
==Kaynak kodu==
==Kaynak kodu==
{{Kod||
{{Kod||
<nowiki>#!/bin/bash</nowiki><br />
<nowiki>#!/bin/bash


<br />


<nowiki>export kapat="sudo halt"</nowiki><br />
export kapat="sudo halt"
<br />


<nowiki>sen=`zenity --entry --title="Biligisayarı kapat" --text="Dakika olarak bir zaman giriniz:      " `</nowiki><br />
sen=`zenity --entry --title="Biligisayarı kapat" --text="Dakika olarak bir zaman giriniz:      " `


<nowiki>if [ $? -eq 1 ] ; then</nowiki><br />
if [ $? -eq 1 ] ; then


<nowiki>exit 1</nowiki><br />
exit 1


<nowiki>fi</nowiki><br />
fi




<nowiki>if [ $sen -gt 5 ]</nowiki><br />
if [ $sen -gt 5 ]


<nowiki>&nbsp; &nbsp;&nbsp; &nbsp;    then</nowiki><br />
      then


<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;  &nbsp; &nbsp;&nbsp; &nbsp;  let "zaman=$sen*60-1"</nowiki><br />
            let "zaman=$sen*60-1"


<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kes=$zaman/5"</nowiki><br />
            let "kes=$zaman/5"


<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "xx=$kes/60"</nowiki><br />
            let "xx=$kes/60"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    echo $zaman</nowiki><br />
            echo $zaman
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    echo $kes</nowiki><br />
            echo $kes
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kalan=$sen-$xx"</nowiki><br />
            let "kalan=$sen-$xx"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      let "kalan1=$sen-$xx*2"</nowiki><br />
            let "kalan1=$sen-$xx*2"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      let "kalan2=$sen-$xx*3"</nowiki><br />
            let "kalan2=$sen-$xx*3"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kalan3=$sen-$xx*4"</nowiki><br />
            let "kalan3=$sen-$xx*4"
<nowiki> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      echo $kalan</nowiki><br />
            echo $kalan
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;  else</nowiki><br />
      else
<nowiki>    &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "zaman=$sen*60-1"</nowiki><br />
            let "zaman=$sen*60-1"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kes=$zaman/5"</nowiki><br />
            let "kes=$zaman/5"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      echo $zaman</nowiki><br />
            echo $zaman
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      echo $kes</nowiki><br />
            echo $kes
<nowiki>    &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kalan=$zaman-$kes"</nowiki><br />
            let "kalan=$zaman-$kes"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kalan1=$zaman-$kes*2"</nowiki><br />
            let "kalan1=$zaman-$kes*2"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;    let "kalan2=$zaman-$kes*3"</nowiki><br />
            let "kalan2=$zaman-$kes*3"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      let "kalan3=$zaman-$kes*4"</nowiki><br />
            let "kalan3=$zaman-$kes*4"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;      echo $kalan</nowiki><br />
            echo $kalan
<nowiki>fi</nowiki><br /><br />
fi


<nowiki>if [ $zaman -gt 300 ]</nowiki><br />
if [ $zaman -gt 300 ]
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;  then</nowiki><br />
      then
<nowiki> &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;        echo sure="dakika"</nowiki><br />
              echo sure="dakika"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;      export sure="dakika"</nowiki><br />
              export sure="dakika"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp;  else</nowiki><br />
      else
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;    echo sure="saniye"</nowiki><br />
            echo sure="saniye"
<nowiki>  &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;    export sure="saniye"</nowiki><br />
            export sure="saniye"
<nowiki>fi</nowiki><br />
fi
<br />
 
<br />
 
<nowiki>(</nowiki><br />
(
<nowiki>echo "10" ; sleep 1</nowiki><br />
echo "10" ; sleep 1
<nowiki>echo "#Sistem $sen dakika sonra kapatılıcak.." ; sleep $kes</nowiki><br />
echo "#Sistem $sen dakika sonra kapatılıcak.." ; sleep $kes
<nowiki>echo "20" ; sleep 0</nowiki><br />
echo "20" ; sleep 0
<nowiki>echo "#Bilgisayar  $kalan $sure sonra kapatılıcak"  ; sleep $kes</nowiki><br />
echo "#Bilgisayar  $kalan $sure sonra kapatılıcak"  ; sleep $kes
<nowiki>echo "50" ; sleep 0</nowiki><br /><br />
echo "50" ; sleep 0
<nowiki>echo "#Bilgisayar  $kalan1 $sure sonra kapatılıcak"  ; sleep $kes</nowiki><br />
echo "#Bilgisayar  $kalan1 $sure sonra kapatılıcak"  ; sleep $kes
<nowiki>echo "75" ; sleep 0</nowiki><br />
echo "75" ; sleep 0
<nowiki>echo "#Bilgisayar  $kalan2 $sure sonra kapatılıcak"  ; sleep $kes</nowiki><br />
echo "#Bilgisayar  $kalan2 $sure sonra kapatılıcak"  ; sleep $kes
<nowiki>echo "# Sistem  $kalan3 $sure sonra kapatılıyor..." ; sleep $kes</nowiki><br />
echo "# Sistem  $kalan3 $sure sonra kapatılıyor..." ; sleep $kes
<nowiki>echo "99" ; sleep 0</nowiki><br />
echo "99" ; sleep 0
<nowiki>$kapat</nowiki><br />
$kapat
<nowiki>echo "100" ; sleep 0</nowiki><br />
echo "100" ; sleep 0
<nowiki>) |</nowiki><br />
) |
<nowiki>zenity --progress  --title="Kapat"  --text="Sistem $sen dakika sonra kapatılıcak.."  --percentage=0</nowiki><br />
zenity --progress  --title="Kapat"  --text="Sistem $sen dakika sonra kapatılıcak.."  --percentage=0
<nowiki>if [ $? -eq 1 ] ; then</nowiki><br />
if [ $? -eq 1 ] ; then
<nowiki>zenity --error  --text="Bilgisayarın Kapatılması İptal Edildi." ;</nowiki><br />
zenity --error  --text="Bilgisayarın Kapatılması İptal Edildi." ;
<nowiki>exit 1</nowiki><br />
exit 1
<nowiki>fi</nowiki><br />
fi</nowiki>
}}
}}
==Çalışma Mantığı==
==Çalışma Mantığı==
Betiğin çalışma mantığı; öcelikle kullanıcıdan bilgisayarı kapatmak için şifre istiyor,
Betiğin çalışma mantığı; öcelikle kullanıcıdan bilgisayarı kapatmak için şifre istiyor,

11.05, 22 Temmuz 2012 tarihindeki hâli

Ne İşe Yarar?

Zenity betiği bilgisayarınızı, belirlediğiniz dakika içersinde otomatik olarak kapatır. Örneğin bilgisayarınızın 10dakike içersinde kendiliğinden kapanmasını istiyorsanız, Zenity uygulamasını açıp, "10" yazmanız yeterli olacaktır.


Kaynak kodu


#!/bin/bash


export kapat="sudo halt"

sen=`zenity --entry --title="Biligisayarı kapat" --text="Dakika olarak bir zaman giriniz:      " `

if [ $? -eq 1 ] ; then

exit 1

fi


if [ $sen -gt 5 ]

      then

            let "zaman=$sen*60-1"

            let "kes=$zaman/5"

            let "xx=$kes/60"
            echo $zaman
            echo $kes
            let "kalan=$sen-$xx"
            let "kalan1=$sen-$xx*2"
            let "kalan2=$sen-$xx*3"
            let "kalan3=$sen-$xx*4"
            echo $kalan
       else
            let "zaman=$sen*60-1"
            let "kes=$zaman/5"
            echo $zaman
            echo $kes
            let "kalan=$zaman-$kes"
            let "kalan1=$zaman-$kes*2"
            let "kalan2=$zaman-$kes*3"
            let "kalan3=$zaman-$kes*4"
            echo $kalan
fi

if [ $zaman -gt 300 ]
      then
              echo sure="dakika"
              export sure="dakika"
       else
             echo sure="saniye"
             export sure="saniye"
fi


(
echo "10" ; sleep 1
echo "#Sistem $sen dakika sonra kapatılıcak.." ; sleep $kes
echo "20" ; sleep 0
echo "#Bilgisayar  $kalan $sure sonra kapatılıcak"  ; sleep $kes
echo "50" ; sleep 0
echo "#Bilgisayar  $kalan1 $sure sonra kapatılıcak"  ; sleep $kes
echo "75" ; sleep 0
echo "#Bilgisayar  $kalan2 $sure sonra kapatılıcak"  ; sleep $kes
echo "# Sistem  $kalan3 $sure sonra kapatılıyor..." ; sleep $kes
echo "99" ; sleep 0
$kapat
echo "100" ; sleep 0
) |
zenity --progress  --title="Kapat"  --text="Sistem $sen dakika sonra kapatılıcak.."  --percentage=0
if [ $? -eq 1 ] ; then
zenity --error  --text="Bilgisayarın Kapatılması İptal Edildi." ;
exit 1
fi

Çalışma Mantığı

Betiğin çalışma mantığı; öcelikle kullanıcıdan bilgisayarı kapatmak için şifre istiyor, Dakika olarak zaman girdisi istiyor. Daha sonra zaman sona erdiğinde sistemi iptal ediyor Her zamanki gibi denemek için kodları bir metin belgesine yapıştırıp. çalıştırma hakkı vermek yeterli...


Ayrıca bakınız

Kaynak

Ubuntu-tr Forumdaki Zenity, Bilgisayarı Kapat! konusu