Standart akışlar ve argümanlar

Bash Script Yazmaya Giriş

Alex Scriven

Data Scientist

STDIN-STDOUT-STDERR

Bash betiklerinde, programınız için üç “akış” vardır:

  • STDIN (standart giriş). Verinin programa aktığı akış
  • STDOUT (standart çıkış). Verinin programdan çıktığı akış
  • STDERR (standart hata). Programınızdaki hatalar

Varsayılan olarak bu akışlar terminalden gelir ve terminale yazılır.

Komutlarda 2> /dev/null görebilirsiniz; STDERR’i silinmek üzere yönlendirir. (1> /dev/null ise STDOUT olur)

Bash Script Yazmaya Giriş

STDIN-STDOUT görseli

Önceden oluşturulan ardışık düzeni kullanarak standart akışların görsel bir gösterimi:

Standart Akışlar diyagramı

Bash Script Yazmaya Giriş

STDIN örneği

3 satırlık verisi olan bir metin dosyasını (sports.txt) düşünün.

football
basketball
swimming

cat sports.txt 1> new_sports.txt komutu, dosyadan veriyi alıp STDOUT’u yeni bir dosyaya yazmaya örnektir. cat new_sports.txt çalıştırdığınızda ne olacağını görün

football
basketball
swimming
Bash Script Yazmaya Giriş

STDIN ve ARGV

Bash betiklerinde temel bir kavram argümanlardır

Bash betikleri, betik çağrısından sonra boşlukla eklenen argümanları içeride kullanabilir.

  • ARGV, programa verilen tüm argümanların dizisidir.
  • Her argümana $ gösterimiyle erişilir. İlki $1, ikincisi $2 vb.
  • $@ ve $*, ARGV’deki tüm argümanları verir
  • $#, argüman sayısını verir
Bash Script Yazmaya Giriş

ARGV örneği

Bir örnek betiği düşünün (args.sh):

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Bash Script Yazmaya Giriş

ARGV örneğini çalıştırma

Şimdi bash args.sh one two three four five çalıştırılıyor

one
two
one two three four five
There are 5 arguments

 

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Bash Script Yazmaya Giriş

Hadi pratik yapalım!

Bash Script Yazmaya Giriş

Preparing Video For Download...