- 24 Mar 2019
- 172
- 0
Shell Scripts-4
Merhaba 4.dersimiz ile karşınızdayım. Haydi başlayalım;
Select Döngüsü
Metin tabanlı menüler oluşturmak için, select döngüsü kullanacağınız komuttur.
Kod:
#! /bin/bash
select name in ali ayse fatma salih
do
echo "$name secildi"
done
#----------------ikici örnek-----------
#! /bin/bash
select name in ali ayse fatma salih
do
case $name in
ali)
echo "ali secildi." ;;
*)
echo "Hata: lütfen 1..4 arasında bir sayı girin"
esac
done
Fonksiyonlar
Kod:
#! /bin/bash
function hello() {
echo "Hello"
}
quit() {
exit 0
}
function print() {
echo $1 # birinci argumanı yazar
}
# quit
print Hello
hello
Konu burada sonlanmaktadır. Merak eden ve daha derinlemesine öğrenmek isteyenler için konunun en sonuna link ekleyeceğim. Son olarak bu dilin avantajları ve dezavantajları hakkında size biraz bahsetmek istiyorum.
Avantajlar ve dezavantajlar
Bir shell script yazmanın belki de en büyük avantajı, komutların ve sözdiziminin doğrudan komut satırına girilenlerle tamamen aynı olmasıdır. Programcı, komut dosyası farklı bir dilde yazılmışsa veya derlenmiş bir dil kullanılmışsa, tamamen farklı bir sözdizimine geçmek zorunda değildir.
Genellikle, bir shell script yazmak, diğer programlama dillerindeki eşdeğer kodu yazmaktan çok daha hızlıdır. Birçok avantaj, kolay program veya dosya seçimi, hızlı başlatma ve etkileşimli hata ayıklamayı içerir. Mevcut programlar etrafında bir sıralama ve karar verme bağlantısı sağlamak için bir shell script kullanılabilir ve orta büyüklükteki komut dosyaları için bir derleme adımının olmaması bir avantajdır. Yorumlayıcı çalıştırma, hata ayıklama kodunu bir komut dosyasına yazmayı ve hataları algılamak ve düzeltmek için yeniden çalıştırmayı kolaylaştırır. Uzman olmayan kullanıcılar, programların davranışını uyarlamak için komut dosyası kullanabilir ve shell komut dosyası, çoklu işlem için bazı sınırlı kapsam sağlar.
Diğer bir önemli dezavantaj, yavaş yürütme hızı ve yürütülen hemen hemen her shell komutu için yeni bir işlem başlatma ihtiyacıdır. Bir komut dosyasının işi, verimli filtre komutlarının işin çoğunu gerçekleştirdiği bir ardışık düzen kurarak gerçekleştirilebildiğinde, yavaşlama hafifletilir, ancak karmaşık bir komut dosyası genellikle eşdeğer bir görevi gerçekleştiren geleneksel bir derlenmiş programdan birkaç kat daha yavaştır.
Farklı platformlar arasında uyumluluk sorunları da var.
Benzer şekilde, daha karmaşık komut dosyaları shell script dilinin kendisinin sınırlamalarıyla karşılaşabilir; sınırlar kaliteli kod yazmayı zorlaştırır ve orijinal shell diliyle sorunları iyileştirmek için çeşitli shell ile yapılan uzantılar sorunları daha da kötüleştirebilir.
Bazı komut dosyası dillerini kullanmanın birçok dezavantajı, dil sözdizimi veya uygulaması içindeki tasarım kusurlarından kaynaklanır ve metin tabanlı bir komut satırının kullanılması zorunlu değildir; diğer shell programlama dillerini ve hatta Scsh gibi (Scheme kullanan) tam teşekküllü dilleri kullanan birkaç shell vardır.
Genellikle, bir shell script yazmak, diğer programlama dillerindeki eşdeğer kodu yazmaktan çok daha hızlıdır. Birçok avantaj, kolay program veya dosya seçimi, hızlı başlatma ve etkileşimli hata ayıklamayı içerir. Mevcut programlar etrafında bir sıralama ve karar verme bağlantısı sağlamak için bir shell script kullanılabilir ve orta büyüklükteki komut dosyaları için bir derleme adımının olmaması bir avantajdır. Yorumlayıcı çalıştırma, hata ayıklama kodunu bir komut dosyasına yazmayı ve hataları algılamak ve düzeltmek için yeniden çalıştırmayı kolaylaştırır. Uzman olmayan kullanıcılar, programların davranışını uyarlamak için komut dosyası kullanabilir ve shell komut dosyası, çoklu işlem için bazı sınırlı kapsam sağlar.
Diğer bir önemli dezavantaj, yavaş yürütme hızı ve yürütülen hemen hemen her shell komutu için yeni bir işlem başlatma ihtiyacıdır. Bir komut dosyasının işi, verimli filtre komutlarının işin çoğunu gerçekleştirdiği bir ardışık düzen kurarak gerçekleştirilebildiğinde, yavaşlama hafifletilir, ancak karmaşık bir komut dosyası genellikle eşdeğer bir görevi gerçekleştiren geleneksel bir derlenmiş programdan birkaç kat daha yavaştır.
Farklı platformlar arasında uyumluluk sorunları da var.
Benzer şekilde, daha karmaşık komut dosyaları shell script dilinin kendisinin sınırlamalarıyla karşılaşabilir; sınırlar kaliteli kod yazmayı zorlaştırır ve orijinal shell diliyle sorunları iyileştirmek için çeşitli shell ile yapılan uzantılar sorunları daha da kötüleştirebilir.
Bazı komut dosyası dillerini kullanmanın birçok dezavantajı, dil sözdizimi veya uygulaması içindeki tasarım kusurlarından kaynaklanır ve metin tabanlı bir komut satırının kullanılması zorunlu değildir; diğer shell programlama dillerini ve hatta Scsh gibi (Scheme kullanan) tam teşekküllü dilleri kullanan birkaç shell vardır.
Link: