OnWorks Linux ve Windows Çevrimiçi İş İstasyonları

Logo

İş İstasyonları için Çevrimiçi Ücretsiz Barındırma

<Önceki | İçerik | Sonraki>

Kabuk Fonksiyonları

Komut dosyamız şu anda HTML belgesini oluşturmak için aşağıdaki adımları gerçekleştirir:

1. Sayfayı açın.

2. Sayfa başlığını açın.

3. Sayfa başlığını ayarlayın.

4. Sayfa başlığını kapatın.

5. Sayfa gövdesini açın.

6. Çıktı sayfası başlığı.

7. Çıkış zaman damgası.

8. Sayfa gövdesini kapatın.

9. Sayfayı kapatın.

Geliştirmemizin bir sonraki aşaması için 7. ve 8. adımlar arasına bazı görevler ekleyeceğiz. Bunlar şunları içerecektir:

● Sistem çalışma süresi ve yükleme. Bu, son kapatma veya yeniden başlatmadan bu yana geçen süre ve işlemcide birkaç zaman aralığında çalışmakta olan ortalama görev sayısıdır.

● Disk alanı. Sistemin depolama aygıtlarındaki genel alan kullanımı.

● Ev alanı. Her kullanıcı tarafından kullanılan depolama alanı miktarı.


Bu görevlerin her biri için bir komutumuz olsaydı, komut değiştirme yoluyla bunları komut dosyamıza ekleyebilirdik:



#! / Bin / bash


# Sistem bilgi sayfasının çıktısını almak için program


TITLE="$HOSTNAME" İçin Sistem Bilgisi Raporu CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


kedi << _EOF_

#! / Bin / bash


# Sistem bilgi sayfasının çıktısını almak için program


TITLE="$HOSTNAME" İçin Sistem Bilgisi Raporu CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


kedi << _EOF_


$TITLE

$TITLE

$TIMESTAMP

$(rapor_çalışma süresi)

$(report_disk_space)

$(report_home_space)

_EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapor_çalışma süresi)

$(report_disk_space)

$(report_home_space)

_EOF_


Bu ek komutları iki şekilde oluşturabiliriz. Üç ayrı komut dosyası yazabilir ve bunları PATH'imizde listelenen bir dizine yerleştirebilir veya komut dosyalarını programımıza şu şekilde yerleştirebiliriz: kabuk fonksiyonları. Daha önce de belirttiğimiz gibi, kabuk işlevleri, diğer betiklerin içinde yer alan ve özerk programlar olarak hareket edebilen “mini betiklerdir”. Kabuk işlevlerinin iki sözdizimsel biçimi vardır. İlk olarak, daha resmi biçim:

işlev isim {

komutlar

dönüş

}

ve daha basit (ve genellikle tercih edilen) form:

isim () {

komutlar

dönüş

}

görüntü

#! / Bin / bash

#! / Bin / bash

# Kabuk işlevi demosu


function step2 { echo "Adım 2" dönüşü

}

# Ana program burada başlar echo "Adım 1"

# Kabuk işlevi demosu


function step2 { echo "Adım 2" dönüşü

}

# Ana program burada başlar echo "Adım 1"

nerede isim fonksiyonun adıdır ve komutlar fonksiyon içinde yer alan bir dizi komuttur. Her iki form da eşdeğerdir ve birbirinin yerine kullanılabilir. Aşağıda bir kabuk işlevinin kullanımını gösteren bir komut dosyası görüyoruz:


1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

Kabuk Fonksiyonları


13 adım2

14 yankı "Adım 3"

13 adım2

14 yankı "Adım 3"


Kabuk komut dosyasını okurken, bu satırlar yorumlardan ve işlev tanımından oluştuğu için 1'den 11'e kadar olan satırlardan geçer. Yürütme 12. satırda başlar ve bir kaçırmak emretmek. 13. satır aramalar kabuk işlevi step2 ve kabuk, işlevi başka herhangi bir komutta olduğu gibi yürütür. Program kontrolü daha sonra 6. satıra geçer ve ikinci kaçırmak komut yürütülür. Sonraki satır 7 yürütülür. Onun dönüş komutu, işlevi sonlandırır ve işlev çağrısından sonraki satırda (satır 14) kontrolü programa geri verir ve son kaçırmak komut yürütülür. İşlev çağrılarının kabuk işlevleri olarak tanınması ve harici programların adları olarak yorumlanmaması için, çağrılmadan önce kabuk işlevi tanımlarının komut dosyasında görünmesi gerektiğini unutmayın.

Komut dosyamıza minimal kabuk işlevi tanımları ekleyeceğiz:



#! / Bin / bash


# Sistem bilgi sayfasının çıktısını almak için program


TITLE="$HOSTNAME" İçin Sistem Bilgisi Raporu CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


Report_uptime () { dönüş

}


Report_disk_space () { dönüş

}


Report_home_space () { dönüş

}


kedi << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapor_çalışma süresi)

$(report_disk_space)

$(report_home_space)

#! / Bin / bash


# Sistem bilgi sayfasının çıktısını almak için program


TITLE="$HOSTNAME" İçin Sistem Bilgisi Raporu CURRENT_TIME=$(tarih +"%x %r %Z")

TIMESTAMP="$CURRENT_TIME, $USER tarafından oluşturuldu"


Report_uptime () { dönüş

}


Report_disk_space () { dönüş

}


Report_home_space () { dönüş

}


kedi << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(rapor_çalışma süresi)

$(report_disk_space)

$(report_home_space)


_EOF_

_EOF_


Kabuk işlev adları, değişkenlerle aynı kuralları izler. Bir fonksiyon en az bir komut içermelidir. NS dönüş komut (isteğe bağlı) gereksinimi karşılar.


OnWorks'te En İyi OS Bulut Bilişimi: