Provided by: manpages-tr_2.0.6-2_all bug

İSİM

       dash - komut yorumlayıcı (kabuk)

KULLANIM

       dash [-aCefnuvxIimqVEb]    [+aCefnuvxIimqVEb]    [-o   SEÇENEK_ADI]   [+o   SEÇENEK_ADI]   [KOMUT_DOSYASI
            [KOMUT_GİRDİSİ...]]
       dash -c [-aCefnuvxIimqVEb] [+aCefnuvxIimqVEb] [-o SEÇENEK_ADI] [+o SEÇENEK_ADI] KOMUT_DİZGESİ  [KOMUT_ADI
            [KOMUT_GİRDİSİ...]]
       dash -s [-aCefnuvxIimqVEb] [+aCefnuvxIimqVEb] [-o SEÇENEK_ADI] [+o SEÇENEK_ADI] [GİRDİ...]

AÇIKLAMA

       dash  sistem  için  standart  komut  yorumlayıcısıdır.  dash’in mevcut sürümü, kabuk için POSIX 1003.2 ve
       1003.2a belirtimlerine uyacak şekilde değiştirilme sürecindedir. Bu sürüm, bazı açılardan Korn  kabuğunun
       benzeri  gibi  görünmesini  sağlayan  birçok  özelliğe sahiptir, ancak bu bir Korn kabuğu türevi değildir
       (bkz.  ksh(1)).  Bu  kabuğa  yalnızca  POSIX  tarafından  tasarlanmış  özellikler  artı  birkaç  Berkeley
       genişletmesi  dahil  edilmiştir.  Bu  kılavuz sayfası, bir öğretici veya kabuğun tam bir belirtimi olarak
       tasarlanmamıştır.

   Giriş
       Kabuk, bir dosyadan veya uçbirimden satırları okuyan, yorumlayan ve genellikle  diğer  komutları  yürüten
       bir  komuttur.  Bir  kullanıcı sisteme oturum açtığında çalışan uygulamadır (kullanıcı chsh(1) komutu ile
       farklı bir kabuk seçebilmesine rağmen). Kabuk, akış denetim oluşumlarına sahip bir dilin, yerleşik geçmiş
       ve satır düzenleme yeteneklerinin yanı  sıra  veri  depolamaya  ek  olarak  çeşitli  özellikler  sağlayan
       makroların  gerçeklenimidir. Etkileşimli kullanıma yardımcı olacak pek çok özelliği bünyesinde barındırır
       ve yorumlayıcı dilin hem  etkileşimli  hem  de  etkileşimsiz  kullanımının  (kabuk  betikleri)  sağladığı
       getirilere  sahiptir.  Yani, komutlar doğrudan çalışan kabuğa yazılabilir veya bir dosyaya konulabilir ve
       dosya doğrudan kabuk tarafından yürütülebilir.

   Kullanım
       Hiçbir komut girdisi  yoksa  ve  kabuğun  standart  girdisi  bir  uçbirime  bağlıysa  (veya  -i  seçeneği
       belirtilmişse)  ve  -c  seçeneği  belirtilmemişse, kabuğun etkileşimli olduğu varsayılır. Etkileşimli bir
       kabuk genellikle her komuttan önce bir komut istemi açarak yazılım ve komut hatalarını farklı şekilde ele
       alır (aşağıda açıklandığı gibi). İlk başlatıldığında, kabuk 0’ıncı girdiyi inceler, girdi  tire  ’-’  ile
       başlıyorsa,  kabuk  bir  oturum  açma  kabuğu  olarak  kabul edilir. Bu normalde kullanıcı ilk kez oturum
       açtığında sistem tarafından otomatik olarak yapılır. Bir oturum açma kabuğu önce  /etc/profile  ve  varsa
       .profile  dosyalarında bulunan komutları okur. Bir etkileşimli kabuk girdisi ENV ortam değişkenine atanır
       ve ENV oturum açma kabuğunun .profile dosyasına kaydedilirse, kabuk daha  sonra  komutları  ENV  içindeki
       dosyadan okur. Bu nedenle, bir kullanıcının .profile dosyasına yalnızca oturum açma sırasında yürütülecek
       komutları  ve  ENV  içindeki  dosyaya  da  her etkileşimli kabuk için yürütülecek komutları yerleştirmesi
       gerekir. ENV değişkenine bir dosya atamak için, aşağıdaki  satır  kullanıcının  ev  dizinindeki  .profile
       dosyasına yerleştirilebilir:

           ENV=$HOME/.shinit; export ENV

       Burada, “.shinit” yerine uygun herhangi bir dosya adı kullanılabilir.

       Seçeneklerin  yanı  sıra  başka  komut  satırı  girdileri  de belirtilmişse, kabuk ilk girdiyi komutların
       okunacağı dosyanın adı (bir kabuk betiği) olarak kabul eder  ve  geri  kalan  girdiler  kabuğun  konumsal
       değişkenleri ($1, $2, vb.) olarak ayarlanır. Aksi takdirde kabuk, komutları standart girdisinden okur.

   Girdi Listesinin İşlenmesi
       Aşağıdaki  tek  harfli seçeneklerin yanlarında belirtilen uzun seçenek adlarını -o seçeneği ile belirtmek
       zorunluyken, kısa seçenekler tek başlarına belirtilebilir.

       Seçeneğin önüne eklenen kısa çizgi "-" seçeneği etkin kılar, artı "+" ise seçeneği devre dışı bırakır. Bu
       mantıksız gibi görünse de seçenek kullanım uzlaşımları bakımından en uygunu budur.  Aşağıdaki  seçenekler
       komut satırından veya set yerleşiğiyle (daha sonra açıklanacaktır) kullanılabilir.

       -a, allexport
           Belirtilen tüm değişkenler dışa aktarılır.

       -c  Komutlar,  standart  girdi  yerine  KOMUT_DİZGESİ  teriminden  okunur.  Konumsal  değişkenlerin  ilki
           KOMUT_ADI teriminden diğerleri ($1, $2, vb.) kalan girdilerden (KOMUT_GİRDİSİ) elde edilir.

       -C, noclobber
           “>” ile dosyaların üzerine yazmaktan korur. Öntanımlı  olarak  “>”  ile  dosyaların  üzerine  yazılır
           (clobber).

       -e, errexit
           Kabuk,  etkileşimli  değilse  "denenmemiş"  bir  komutun  çıkış durumu başarısız ise hemen çıkar. Bir
           komutun "denenmiş" kabul edilebilmesi için if, elif, while, until  deyimlerinde  veya  “&&”  ve  “||”
           işleçlerinde sol taraf terimi olarak kullanılmış olması gerekir.

       -f, noglob
           Dosya Yolu Genişletmesi (Dosya Adı Üretimi) iptal edilir.

       -n, noexec
           Kabuk,  etkileşimli  değilse  komutları okur ama yürütmez. Kabuk betiklerinde sözdizimi denetimi için
           yararlıdır.

       -u, nounset
           Değer atanmamış bir değişkeni genişletmeye  çalışırken  hatayı  standart  hataya  çıktılar  ve  kabuk
           etkileşimli değilse hemen çıkar.

       -v, verbose
           Kabuk, girdisini okundukça standart hataya yazar. Hata ayıklama için kullanışlıdır.

       -x, xtrace
           Yürütmeden  önce  her  komutu  standart  hataya  (’+’  ile  önceleyerek)  yazar.  Hata  ayıklama için
           kullanışlıdır.

       -I, ignoreeof
           Kabuk, etkileşimli olduğunda girdisinden gelen dosya sonu karakterlerini (EOF) yok sayar.

       -i, interactive
           Kabuk etkileşimli olur.

       -l  dash oturum açma kabuğu olarak davranır.

       -m, monitor
           İş denetimini açar (kabuk etkileşimli olduğunda öntanımlı olarak açılır).

       -s, stdin
           Komutları standart girdiden okur (girdi olarak hiç dosya belirtilmemişse öntanımlı olarak  etkindir).
           Bu  seçeneğin,  kabuk  çalışmaya  başladıktan  sonra (örneğin, set ile) belirtilmesinin hiçbir etkisi
           yoktur.

       -V, vi
           Yerleşik vi(1) komut satırı düzenleyicisi etkinleştirilir (-E, emacs etkinse devre dışı bırakılır).

       -E, emacs
           Yerleşik emacs(1) komut satırı düzenleyicisi etkinleştirilir (-V, vi etkinse devre dışı bırakılır).

       -b, notify
           Artalanda iş tamamlanma uyarısı eşzamansız olur (4.4alfa sürümünde gerçeklenmemişti).

   Sözdizimsel Yapı
       Kabuk, girdiyi dosyadan satır satır okuyup boşluklara (boşluklar ve sekmelere) göre sözcüklere ve "işleç"
       adı verilen özel karakter dizilimlerine böler. İki tür işleç vardır:  denetim  işleçleri  ve  yönlendirme
       işleçleri (anlamları daha sonra açıklanacaktır).

       Denetim işleçleri:
               & && ( ) ; ;; | || <satırsonu>

       Yönlendirme işleçleri
               < > >| << >> <& >& <<- <>

   Tırnaklama
       Tırnaklama,  işleçler,  boşluk  veya anahtar sözcükler gibi belirli karakterlerin veya sözcüklerin kabuğa
       özgü anlamlarını kaldırmak için kullanılır. Üç tırnaklama yöntemi vardır: eşleşen tek tırnaklar,  eşleşen
       çift tırnaklar ve ters eğik çizgi.

       Ters Eğik Çizgi
           Ters  eğik çizgi, satır sonu karakteri dışında önündeki karakterin gerçek anlamını korumasını sağlar.
           Ters eğik çizgi öncelemeli satır sonu karakteri, satırın alt satırda süreceği anlamına gelir.

       Tek Tırnak
           Karakterlerin tek tırnak içine alınması, tüm karakterlerin gerçek anlamlarını korumasını sağlar  (tek
           tırnaklar hariç; tek tırnaklı bir dizgeye, tek tırnaklı sarmalama uygulanamaz).

       Çift Tırnak
           Karakterlerin  çift  tırnak  içine  alınması,  dolar  imi ($), ters tırnak (’) ve ters eğik çizgi (\)
           dışındaki tüm karakterlerin gerçek anlamlarını korumasını sağlar.  Çift  tırnak  içindeki  ters  eğik
           çizgi, tarihsel olarak tuhaftır ve yalnızca aşağıdaki karakterleri öncelemeye yarar:

               $ ’ " \ <satırsonu>.

           Bunların dışında kalan herşey aslını korur.

   Anahtar Sözcükler
       Anahtar  sözcükler,  kabuk  için  özel  anlamı  olan, bir satırın başında ve bir denetim işlecinden sonra
       kullanıldığında tanınan sözcüklerdir. Anahtar sözcükler şunlardır:

           !       elif    fi      while   case
           else    for     then    {       }
           do      done    until   if      esac

       Bunların anlamları daha sonra açıklanacaktır.

   Takma Adlar
       Takma ad, alias yerleşik komutu kullanılarak atanan bir ad ile ona karşılık gelen  değerden  oluşur.  Bir
       anahtar  sözcüğe  her  rastlanışta  (yukarıya  bakın), bu sözcükler denetimden geçtikten sonra, kabuk bir
       takma adla eşleşip eşleşmediğini görmek için sözcüğü bir denetimden daha geçirir. Girdi  akımında  varsa,
       değeriyle değiştirir. Örneğin, "ls -F" değerine sahip "lf" adlı bir takma ad varsa,

           lf foobar ⟨return⟩

       komut satırı girdisi şu hale gelir:

           ls -F foobar ⟨return⟩

       Takma   adlar,  yeni  kullanıcıların  komutların  kullanılışını  hatırlamak  zorunda  kalmadan  komutları
       kullanabilmeleri için kısayollar oluşturmalarını sağlar. Sözdizimsel olarak  hatırlanması/söylenmesi  zor
       bir kodlama oluşturmak için de kullanılabilir. Ancak bu kullanım önerilmez.

   Komutlar
       Kabuk,  okuduğu  sözcükleri, belirtimi bu kılavuz sayfasının kapsamı dışında kalan bir dile göre yorumlar
       (POSIX 1003.2 belgesindeki BNF’ye bakın). Temel olarak, bir satır okunur ve satırın başındaki  (veya  bir
       denetim  işlecinden sonraki) ilk sözcük bir anahtar sözcük değilse, kabuk bunu basit bir komut olarak ele
       alır. Aksi takdirde, karmaşık bir komut veya başka bir özel oluşum olarak ele alınır.

       Basit Komutlar
           Ele alınan basit bir komutsa kabuk şunları yapar:

            1. Baştaki "ad=değer" biçimindeki sözcükler ayıklanır ve bunlar  basit  komutun  ortam  değişkenleri
               olarak  ele  alınır.  Yönlendirme  işleçleri  ve  bunların  terimleri  (aşağıda açıklandığı gibi)
               ayıklanır ve işlenmek üzere kaydedilir.

            2. Kalan sözcükler Genişletmeler bölümünde anlatıldığı gibi genişletilir ve ilk kalan  sözcük  komut
               adı  olarak  ele alınır ve komut elde edilir. Kalan sözcükler, komut girdileri olarak ele alınır.
               Sonuçta hiçbir komut adı yoksa, kabuk dahili  olarak  1.  maddedeki  "ad=değer"  ortam  değişkeni
               atamalarından etkilenir.

            3. Yönlendirmeler sonraki bölümde açıklanan sıraya göre uygulanır.

   Yönlendirmeler
       Yönlendirmeler, bir komutun girdisini okuduğu veya çıktısını gönderdiği yeri değiştirmek için kullanılır.
       Genel  olarak,  yönlendirmeler  bir  dosyaya  yönelik  varolan  bir başvuruyu açar, kapatır veya yineler.
       Yönlendirme için kullanılan genel biçim şöyledir:

           [n] yönlendirme-işleci dosya

       Burada  yönlendirme-işleci  evvelce  bahsedilen  işleçlerden  biridir.   Olası   yönlendirmeler   aşağıda
       listelenmiştir. n bir dosya tanıtıcısı olup 0 ila 9 arasında olabilir ve belirtilmesi isteğe bağlıdır.

           [n]> dosya  Standart çıktıyı (veya n’yi) dosya’ya yönlendirir.
           [n]>| dosya Aynı, fakat -C seçeneğini geçersiz kılar.
           [n]>> dosya Standart çıktıyı (veya n’yi) dosya’ya ekler.
           [n]< dosya  dosya’yı standart girdiye (veya n’ye) yönlendirir.
           [n1]<&n2    n2 dosya tanıtıcısının bir kopyasını standart girdiye (veya n1’e) yönlendirir.
           [n]<&-      Standart girdiyi (veya n’yi) kapatır.
           [n1]>&n2    Standart çıktıyı (veya n1’i) n2’nin bir kopyası olacak şekilde yönlendirir.
           [n]>&-      Standart çıktıyı (veya n’yi) kapatır.
           [n]<> dosya dosya’yı standart girdi (veya n) üzerinde oku-yaz olarak açar.

       "Belge-burada" yönlendirmesi:

           [n]<< sınırlayıcı
                belge-burada-metni ...
           sınırlayıcı

       sınırlayıcı’ya  kadar  ardışık  satırlardaki  tüm  metinler  kaydedilir  ve standart girdideki komut veya
       belirtilmişse dosya tanıtıcısı n için kullanılabilir hale getirilir. sınırlayıcı ilk satırda belirtildiği
       gibi kodlanırsa, belge-burada-metni genişletmeler uygulanmadan birebir ele alınır,  aksi  takdirde  metne
       ifade  genişletmesi,  komut  ikamesi  ve  aritmetik ifade genişletmesi uygulanır (Genişletmeler bölümünde
       açıklandığı gibi). İşleç "<<" yerine "<<-" ise, belge-burada-metninin başındaki sekmeler kaldırılır.

   Arama ve Yürütme
       Üç tür komut vardır: kabuk işlevleri, yerleşik komutlar ve normal uygulamalar -- ve komut (ada  göre)  bu
       sırayla aranır. Her biri farklı bir şekilde yürütülür.

       Bir  kabuk  işlevi  yürütüldüğünde,  tüm konumsal değişkenler (değişmeden kalan $0 hariç) kabuk işlevinin
       girdileri haline gelir. Açıkça komutun ortamına yerleştirilen değişkenler  (işlev  adından  önce  bunlara
       atamalar  yapılarak)  değerleri  ile  birlikte  işlevin yerel değişkenleri haline gelir. Daha sonra işlev
       tanımında verilen komut yürütülür.  Konumsal  değişkenlere,  komut  tamamlandığında  ilk  değerleri  geri
       atanır. Bunların hepsi aynı kabuk içinde gerçekleşir.

       Kabuk yerleşikleri, yeni bir süreç oluşturmadan dahili olarak kabukta yürütülür.

       Komut  adı  bir  işlev  veya  yerleşikle  eşleşmiyorsa, komut dosya sisteminde normal bir uygulama olarak
       aranır (sonraki bölümde açıklandığı gibi). Normal bir uygulama yürütüldüğünde, kabuk girdileri  ve  ortam
       değişkenleri  uygulamaya  aktarılarak uygulama yürütülür. Uygulama normal bir yürütülebilir dosya değilse
       (yani, ASCII gösterimi "#!" olan "sihirli numara" ile başlamıyorsa, dolayısıyla execve(2) çağrısı ENOEXEC
       döndürüyorsa) kabuk uygulamayı bir alt kabukta yorumlayacaktır. Alt kabuk bu  durumda  kendisini  yeniden
       ilklendirecek  ve  böylece  etki,  bu  özel  kabuk  betiğini  yürütmek için yeni bir kabuk çağrılmış gibi
       olacaktır, ancak ana kabukta bulunan komutların konumu alt kabuk tarafından hatırlanacaktır.

   Dosya Yolu Araması
       Bir komutun yeri tespit edilirken, kabuk önce bu isimde bir kabuk işlevi  olup  olmadığına  bakar.  Sonra
       aynı isimde yerleşik bir komut arar. Yerleşik bir komut da bulunamazsa iki durumdan biri gerçekleşir:

        1. Eğik çizgi içeren komut adları, herhangi bir arama yapılmadan yürütülür.

        2. Kabuk,  sırayla  PATH  içindeki her dizinde komutu arar. PATH değişkeninin değeri, iki nokta üst üste
           ile ayrılmış bir dizi girdiden oluşmalıdır. Her girdi bir dizin  adı  içerir.  Geçerli  dizin,  örtük
           olarak boş bir dizin adıyla veya doğrudan tek bir noktayla belirtilebilir.

   Komut Çıkış Durumu
       Her  komutun, diğer kabuk komutlarının davranışını etkileyebilecek bir çıkış durumu vardır. Genel olarak,
       bir komutun normal veya başarı göstergesi olarak sıfırla, başarısızlık, hata veya  olumsuzluk  göstergesi
       olarak sıfırdan farklı bir değerle çıkması gerekir. Her komutun kılavuz sayfasında, çeşitli çıkış kodları
       ve  bunların  ne  anlama  geldiği  belirtilmelidir.  Ek  olarak  yerleşik  komutlar  da,  yürütülen kabuk
       işlevlerinde olduğu gibi çıkış kodları döndürür.

       Bir komut tamamen değişken atamalarından oluşuyorsa, komutun çıkış durumu,  varsa  son  komut  ikamesinin
       çıkış durumudur, aksi takdirde 0’dır.

   Karmaşık Komutlar
       Karmaşık  komutlar,  birlikte  daha  büyük  bir  karmaşık  komut oluşturan denetim işleçleri veya anahtar
       sözcüklerle basit komutların birleşimleridir. Daha genel olarak, bir komut aşağıdakilerden biridir:

        •  basit komut
        •  ardışık komutlar
        •  liste veya bileşik liste
        •  bileşik komut
        •  işlev tanımı

       Aksi belirtilmedikçe, bir komutun çıkış durumu,  komut  tarafından  yürütülen  son  basit  komutun  çıkış
       durumudur.

   Ardışık Komutlar
       Ardışık komut, | denetim işleciyle ayrılmış bir veya daha fazla komuttan oluşan bir dizilimdir. Son komut
       hariç  tümünün  standart  çıktısı,  bir sonraki komutun standart girdisine bağlanır. Son komutun standart
       çıktısı, normal olarak kabuktan alınır.

       Ardışık komut sözdizimi:

           [!] komut1 [| komut2 ...]

       komut1’in standart çıktısı,  komut2’nin  standart  girdisine  bağlanır.  Bir  komutun  standart  girdisi,
       standart  çıktısı  veya  her ikisinin, komutun parçası olan yönlendirme işleçleri ile belirtilen herhangi
       bir yönlendirmeden önce ardışık düzen tarafından atandığı varsayılır.

       Ardışık komutlar artalanda yürütülmüyorsa (daha sonra açıklanacak), kabuk tüm  komutların  tamamlanmasını
       bekleyecektir.

       Eğer ardışık komut ! anahtar sözcüğü ile başlamıyorsa, ardışık komutun çıkış durumu yürütülen son komutun
       çıkış durumudur. Aksi takdirde, çıkış durumu, son komutun çıkış durumunun mantıksal DEĞİL’idir. Yani, son
       komut 0 döndürürse, çıkış durumu 1’dir; son komut sıfırdan büyük bir değerle dönerse, çıkış durumu 0’dır.

       Standart  girdinin  veya  standart  çıktının  veya her ikisinin ardışık komut ataması yönlendirmeden önce
       gerçekleştiğinden, yalnızca yönlendirme ile değiştirilebilir. Örneğin,

           $ komut1 2<&1 | komut2

       ardışık komutu, komut1’in hem standart çıktısını hem de standart hatasını komut2’nin  standart  girdisine
       gönderir.

       Ardışık  komut, VE-VEYA listesinin (aşağıda açıklanmıştır) basit halidir. Satır sonu karakteri, başka bir
       işleç olmadığında ; ile eşdeğerdir. Sonlandırıcı  olarak  ;  veya  satırsonu  karakteri,  önceki  ardışık
       komutun  veya  daha genel olarak, önceki VE-VEYA listesinin sırayla yürütülmesine sebep olur; yani, kabuk
       komutları yürütür ama sonraki komutlara geçmeden önce bunların tamamlanmasını bekler. Sonlandırıcı olarak
       &, önceki VE-VEYA listesinin  eşzamansız  (artanda)  yürütülmesine  neden  olur  (aşağıdaki  bir  sonraki
       paragrafa  bakın).  Eşzamansız  bir  VE-VEYA  listesinin  çıkış  durumu  sıfırdır.  Tamamlandıktan  sonra
       komutların gerçek çıkış durumu, yerleşik wait komutu kullanılarak elde edilebilir.

       Diğer bazı kabuklardan farklı olarak, ardışık komuttaki her  sürecin  çağrıldığı  kabuğun  alt  kabuğunda
       yürütüldüğüne  dikkat  edilmelidir  (bir  kabuk  yerleşiği olmadığı sürece; bu durumda alt kabuk açılmaz,
       geçerli kabukta yürütülür -- ancak ortam değişkenleri üzerindeki tüm etkiler silinir).

   Artalan Komutları -- &
       Bir komut "ve (&) denetim işleci" tarafından sonlandırılırsa, kabuk komutu eşzamansız olarak  (artalanda)
       yürütür -- yani, kabuk bir sonraki komutu yürütmeden önce, komutun tamamlanmasını beklemez.

       Bir komutun artalanda yürütülmesini sağlayan sözdizimi:

           komut1 & [komut2 & ...]

       Kabuk etkileşimli değilse, eşzamansız komutun (artalan komutunun) standart girdisi /dev/null olur.

   Listeler (genel olarak)
       Liste,  satırsonu  karakteri,  noktalı virgül veya & ile ayrılan ve isteğe bağlı olarak bu üç karakterden
       biri ile sonlandırılan bir veya daha fazla komuttan oluşan bir dizilimdir. Etkileşimli bir kabuğa verilen
       komutları  içeren  her  kabuk  uygulaması  bir  listedir.  Böyle  bir  listedeki   her   komut,   tamamen
       ayrıştırıldıktan sonra yürütülür.

       Listedeki  komutlar  yazıldıkları  sıraya  göre yürütülür. Komutun ardından bir & işleci geliyorsa, kabuk
       komutu başlatır ve hemen bir sonraki komuta  geçer;  aksi  halde  bir  sonrakine  geçmeden  önce  komutun
       sonlanmasını bekler.

   VE-VEYA Listeleri (Kısa Liste İşleçleri)&&”  ve  “||”  VE-VEYA  listesi  işleçleridir.  “&&”  ve “||” işleçlerinin öncelikleri aynıdır ve soldan
       ilişkilendirmelidir, yani bu işleçler soldan sağa değerlendirilir.

       &&” yalnızca ilk komutun çıkış durumu sıfırsa ikinci komutun yürütülmesini sağlar. “||”  işleci  de  buna
       benzer,  farklı  olarak ikinci komutun yürütülebilmesi için birincinin çıkış durumu sıfırdan farklı olmak
       zorundadır.

   Akış Denetim Deyimleri -- if, while, for, case
       Bu deyimler aslında bileşik komutlardır. if deyiminin sözdizimi:

           if liste
           then liste
           [ elif liste
           then   liste ] ...
           [ else liste ]
           fi

       İlk listenin çıkış durumu sıfır ise, ardından gelen liste yürütülür. Aksi takdirde,  elif  varsa  sonraki
       liste  yürütülür ve işlem tekrarlanır. elif ve beraberindeki liste belirtilmemişse ama else belirtilmişse
       sonraki liste yürütülür.

       while deyiminin sözdizimi:

           while  liste
           do     liste
           done

       İlk listenin çıkış durumu sıfırdan farklı oluncaya dek iki liste yinelenir. while deyimini  yerini  until
       deyimi aldığında ise ilk listenin çıkış durumu sıfır oluncaya dek iki liste yinelenir.

       for deyiminin sözdizimi:

           for değişken [ in [ sözcük ... ] ]
           do  liste
           done

       in  deyimindeki  sözcükler genişletilir ve liste, değer olarak her defasında bir sözcük atanan değişkenle
       yürütülür. in  sözcük  ...  ile  "$@"  eşdeğerdir.  Değişkenden  sonra  in  olduğu  halde  hiçbir  sözcük
       belirtilmemişse liste yürütülmez ve çıkış durumu sıfır olur.

       break and continue deyiminin sözdizimi:

           break [ sayı ]
           continue [ sayı ]

       break  içteki  sayıncı for veya while döngüsünde döngüden çıkılmasını sağlar. continue ise içteki sayıncı
       döngüden devam edilmesini sağlar. Bunlar yerleşik komut olarak gerçeklenmiştir.

       case deyiminin sözdizimi:

           case sözcük in
           [(]kalıp [| kalıp]) [liste] ;;
           ...
           esac

       kalıp, “|” karakteri ayraç olarak kullanıldığında bir veya daha fazla sayıda kalıp içerebilir (Bkz: Kabuk
       Kalıpları). kalıptan önceki “(” karakterinin kullanımı isteğe bağlıdır.

       sözcük genişletilir ve ilkinden sonuncusuna kadar  sırayla  her  kalıp  ile  eşleştirilir  ve  her  kalıp
       eşleştirme denenmeden hemen önce genişletilir. Bir eşleşme bulunduğunda, kalıp karşılaştırmaları durur ve
       varsa  ilişkili  liste  değerlendirilir.  ;;  ile  sonlanan  bir  liste yürütüldüğünde veya esac değerine
       ulaşıldığında, case ifadesinin yürütülmesi tamamlanır. Çıkış durumu, varsa değerlendirilen  son  listenin
       yürütülen son komutunun durumudur, yoksa sıfırdır.

   Komutların Gruplanması
       Komutlar,

           (liste)

       sözdizimi ile veya

           { liste; }

       sözdizimi  ile  gruplanabilir.  Yaylı  ayraçlar  işleç  olup ayrıntılı bir sözdizimi gerektirmezken kaşlı
       ayraçlar anahtar sözcüktür, bu nedenle listeden birer boşluk ile ayrılmaları gerekir. İlki, komutları bir
       alt kabukta yürütür. (liste) halinde gruplanan yerleşik  komutlar,  geçerli  kabuğu  etkilemez.  İkincisi
       başka bir kabuğu çatallamaz, bu nedenle daha verimlidir. Komutları bu şekilde gruplamak, çıktılarının tek
       bir uygulama gibi yönlendirilmesine olanak tanır:

           { printf " hello " ; printf " world\n" ; } > greeting

       Kaşlı  ayracın  bir  komut  girdisi  olarak değil, anahtar sözcük olarak tanınması için denetim işlecinin
       (burada ";") kaşlı ayraçtan önce gelmesi gerektiğine dikkat edilmelidir.

   İşlevler
       İşlev tanımının sözdizimi:

           isim () komut

       İşlev tanımı yürütülebilir bir ifadedir; yürütüldüğünde, isim adlı işlevi yükler ve  sıfır  çıkış  durumu
       döndürür. komut normalde "{" ve "}" arasına alınmış bir listedir.

       Değişkenler, local deyimi kullanılarak işleve yerel olarak bildirilebilir. Bu, işlevin ilk ifadesi olarak
       görünmelidir ve sözdizimi şu şekildedir:

           local [değişken | -] ...

       local yerleşik komut olarak gerçeklenmiştir.

       Bir  değişken  yerel  yapılırsa,  başlangıç  değerini  devralır  ve  varsa  aynı  etki alanında aynı adlı
       değişkenden  dışa  aktarılabilir  ve  salt  okunur  olarak  işaretlenebilir.  Aksi  takdirde,   değişkene
       başlangıçta  değer atanmamış olur. Kabuk etki alanını dinamik olarak belirler, böylece g işlevini çağıran
       x değişkenini f işlevi için  yerel  yaparsanız,  g  içinde  x  değişkenine  yapılan  atıflar,  x  küresel
       değişkenine değil, f içinde bildirilen x değişkenine atıfta bulunur.

       Yerel  yapılabilecek tek özel değişken “-” dir. “-” yerel yapılırsa, işlev dönüş yaptığında, işlev içinde
       set yerleşiği üzerinden değiştirilen kabuk değişkenlerine özgün değerleri geri atanır.

       return deyiminin sözdizimi:

           return [çıkışdurumu]

       return deyimi işlevin yürütmesini durdurur. return yerleşik komut olarak gerçeklenmiştir.

   Değişkenler
       Kabuk bir takım değişkenler içerir. Başlangıçta, kabuk  tüm  ortam  değişkenlerini  kabuk  değişkenlerine
       dönüştürür. Yeni bir değişken şöyle atanabilir:

           isim=değer

       Kullanıcı tarafından tanımlanan değişkenler, yalnızca harfler, rakamlar ve alt çizgilerden oluşan bir ada
       sahip  olmalı,  bir rakam ile başlamamalıdır. Kabuk değişkenlerinin adları ise aşağıda açıklanacağı üzere
       yalnızca rakamlardan (konumsal değişkenler) veya yalnızca tek bir  özel  karakterden  (özel  değişkenler)
       oluşabilir:

       Konumsal Değişkenler
           Konumsal  değişkenlerin  isimleri, yalnızca sıfırdan büyük tamsayılardan oluşur. Kabuk bunlara, kabuk
           betiğinin adından sonra gelen  komut  satırı  girdilerinin  değerlerini  atar.  Bunları  atamak  veya
           sıfırlamak için set yerleşiği de kullanılabilir.

       Özel Değişkenler
           Özel  değişkenler,  değerleri  kabuk tarafından atanan ancak isimleri tek bir özel karakterden oluşan
           değişkenlerdir. Bu değişkenlerin  değerlerine  diğer  kabuk  değişkenleri  gibi  başlarına  $  işleci
           getirilerek ulaşılır. Özel değişkenler ve aldıkları değerler:

           0 (Sıfır)
               Kabuğun veya kabuk betiğinin adına genişletilir.

           *   1’den  itibaren  konumsal  değişkenlere  genişletilir.  Genişletme çift tırnaklı bir dizge içinde
               gerçekleştiğinde her değişkenin değeri, IFS değişkeninin ilk karakteriyle  veya  IFS  atanmamışsa
               bir boşluk ile ayrılmış tek bir alana genişletilir.

           @   1’den  itibaren  konumsal  değişkenlere  genişletilen  bir dizidir. Genişletme çift tırnak içinde
               gerçekleştiğinde, her bir konumsal değişken ayrı bir elemana genişler. Konumsal değişken yoksa, @
               çift tırnaklı olsa bile @ genişletmesi sıfır eleman üretir. Bunun anlamı, temel olarak,  örneğin,
               $1 "abc" ve $2 "def ghi" ise, "$@" iki elemana genişleyecektir:

                   "abc" "def ghi"

           #   Konumsal değişken sayısına genişletilir.

           ?   Ardışık komutlardan son yürütülen komutun çıkış durumuna genişletilir.

           - (tire)
               Çağrı  sırasında  set  yerleşiği  veya dolaylı olarak kabuk tarafından belirlenen geçerli seçenek
               adlarına (tek harfli seçenek adları tek bir dizge halinde birleştirilir) genişler.

           $   Çağıran kabuğun süreç kimliğine genişler. Bir alt kabuk, ebeveyninin $ değerini korur.

           !   Geçerli kabuk tarafından artalanda en son yürütülen komutun  süreç  kimliğine  genişler.  Ardışık
               komutlarda ise, ardışık komutlardan yürütülen sonuncu komutun süreç kimliğidir.

   Genişletmeler
       Genişletmeler, sözcükler üzerinde gerçekleştirilen çeşitli genişletmeleri içerir. Daha sonra açıklanacağı
       gibi, her sözcüğe tüm genişletmeler uygulanmaz.

       Tek  bir sözcük içinde uygulanan Ev Dizini olarak Yaklaşık Genişletmesi, İfade Genişletme, Komut İkamesi,
       Aritmetik İfade Genişletmesi ve Tırnak  kaldırma  işlemleri  tek  bir  alana  genişler.  Yalnızca  Boşluk
       Ayıklama  (Alanlara Ayırma), tek bir sözcükten birden fazla alan oluşturabilir. Bu kuralın tek istisnası,
       yukarıda açıklandığı gibi çift tırnak içinde @ özel değişkeninin genişletilmesidir.

       Genişletmeler şu sırayla uygulanır:

        1. Ev Dizini olarak Yaklaşık Genişletmesi, İfade Genişletme, Komut İkamesi, Aritmetik İfade Genişletmesi
           (Tamamı bir kerede uygulanır).

        2. Boşluk Ayıklama (Alanlara Ayırma), IFS değişkeni boş değilse  step(1)  tarafından  üretilen  alanlara
           uygulanır.

        3. Dosya Yolu Genişletmesi (Dosya Adı Üretimi) (set -f etkin değilse).

        4. Tırnak kaldırma.

       $  karakteri  ile  başlayan  herşeye  İfade  Genişletme,  Komut İkamesi veya Aritmetik İfade Genişletmesi
       uygulanır.

       Ev Dizini olarak Yaklaşık Genişletmesi
           Tırnaksız yaklaşık imi (~) ile başlayan sözcüklere, yaklaşık genişletmesi uygulanır. Eğik çizgiye (/)
           veya sözcüğün sonuna kadar olan tüm karakterler kullanıcı adı olarak ele alınır  ve  kullanıcının  ev
           dizini  ile  değiştirilir.  Kullanıcı  adı yoksa (~/foobar’daki gibi), yaklaşık imi HOME değişkeninin
           değeri (mevcut kullanıcının ev dizini) ile değiştirilir.

       İfade Genişletme
           İfade genişletme biçemi:

               ${ifade}

           Burada, "}" ile eşleşene kadar tüm karakterler ifadeyi oluşturur. "}" eşleşmesi  belirlenirken,  ters
           eğik  çizgi  ile  öncelenmiş  ve  tırnak  içine alınmış dizgelerin içinde olanlar ile Aritmetik İfade
           Genişletmesi, Komut İkamesi ve değişken genişletmesine konu olanlar dikkate alınmaz.

           Değişkeni genişletmesinin en basit biçemi:

               ${değişken}

           değişkenin değeri varsa, değer genişletilir.

           Birden fazla rakam içeren Konumsal Değişkenler ile ardından adın parçası olarak yorumlanabilecek  bir
           karakter   gelen  Özel  Değişkenler  hariç,  değişken  adı,  isteğe  bağlı  olarak  kaşlı  ayraçlarla
           sarmalanabilir. Çift tırnakla sarmalanma durumunda:

            1. Genişletmenin sonuçlarına Dosya Yolu Genişletmesi (Dosya Adı Üretimi) uygulanmaz.

            2. @ haricinde, genişletme sonuçlarında Boşluk Ayıklama (Alanlara Ayırma) yapılmaz.

           Ek olarak, aşağıdaki biçemlerden biri kullanılarak değişken genişletmesinde değişiklik yapılabilir:

           ${değişken:-sözcük}
               Öntanımlı değerler kullanılır. değişken  atanmamışsa  veya  null  atanmışsa  sözcük  genişletmesi
               kullanılır, aksi takdirde değişken değeri kullanılır.

           ${değişken:=sözcük}
               Öntanımlı  değerler  atanır.  değişken  atanmamışsa  veya null atanmışsa, değişken’e değer olarak
               sözcük genişletmesi atanır. Her durumda, değişken’in son değeri kullanılır. Konumsal  değişkenler
               ve özel değişkenler bu yolla atanamaz yalnızca diğer değişkenler bu yolla atanabilir.

           ${değişken:?[sözcük]}
               değişken  atanmamışsa  veya  null atanmışsa bir hata var demektir. değişken atanmamışsa veya null
               atanmışsa sözcük genişletmesi (veya  sözcük  belirtilmemişse,  atanmamış  olduğunu  belirten  bir
               ileti)  standart  hataya  yazılır  ve  kabuk  sıfırdan farklı bir çıkış durumu ile çıkar. Bununla
               birlikte, kabuk etkileşimli ise çıkması gerekmez. Aksi takdirde, değişken değeri kullanılır.

           ${değişken:+sözcük}
               Diğer değer kullanılır. değişken atanmamışsa veya null atanmışsa, null kullanılır. Aksi takdirde,
               sözcük genişletmesi kullanılır.

           Yukarıdaki değişken genişletme biçemlerinde iki nokta üst üste  iminin  yokluğunda,  sınama  yalnızca
           atanmamış değişkene uygulanır, null atanmış değişkene uygulanmaz.

           ${#değişken}
               Dizge uzunluğu. değişken değerinin karakter sayısı.

           Aşağıdaki dört değişken genişlemesi alt dizge işlemleri içindir. Kalıpların değerlendirilmesinde, her
           durumda,  düzenli  ifade  sözdizimi  yerine kalıp eşleme sözdizimi kullanılır (Bkz: Kabuk Kalıpları).
           değişken adı *  veya  @  ise  genişletme  sonucu  belirlenmemiştir.  Değişken  genişletme  dizgesinin
           tamamının  çift  tırnaklarla  sarmalanması  aşağıdaki  dört kalıp karakteri çeşidinin tırnaklanmasına
           sebep olmaz, oysa kaşlı ayraçlar içinde tırnaklama bu etkiye sebep olur.

           ${değişken%sözcük}
               En küçük sonek kalıbını kaldırır. sözcük bir  kalıp  üretecek  şekide  genişletilir.  Daha  sonra
               değişken genişletmesi, sonekin kalıpla eşleşen en küçük kısmının silinmesiyle sonuçlanır.

           ${değişken%%sözcük}
               En  geniş  sonek  kalıbını  kaldırır.  sözcük  bir kalıp üretecek şekide genişletilir. Daha sonra
               değişken genişletmesi, sonekin kalıpla eşleşen en geniş kısmının silinmesiyle sonuçlanır.

           ${değişken#sözcük}
               En küçük önek kalıbını kaldırır. sözcük  bir  kalıp  üretecek  şekide  genişletilir.  Daha  sonra
               değişken genişletmesi, önekin kalıpla eşleşen en küçük kısmının silinmesiyle sonuçlanır.

           ${değişken##sözcük}
               En  geniş  önek  kalıbını  kaldırır.  sözcük  bir  kalıp üretecek şekide genişletilir. Daha sonra
               değişken genişletmesi, önekin kalıpla eşleşen en geniş kısmının silinmesiyle sonuçlanır.

       Komut İkamesi
           Komut ikamesi, bir komutun çıktısının, komut adı olarak kullanılmasını sağlar. Komut  ikamesi,  komut
           aşağıdaki gibi

               $(komut)

           sarmalandığında veya

               komut

           biçeminde ters tek tırnaklarla sarmalandığında gerçekleşir.

           Kabuk,  bir  alt  kabuk  ortamında  komutu  yürüterek  ve komut ikamesini komutun standart çıktısıyla
           değiştirerek, ikamenin sonundan bir veya daha fazla satır sonu karakterini kaldırarak komut ikamesini
           genişletir. (Çıktının bitiminden önceki gömülü satırsonu karakterleri kaldırılmaz; ancak, alan ayırma
           sırasında  bunlar,  IFS’nin  değerine  ve   etkin   olan   tırnaklamaya   bağlı   olarak   boşluklara
           dönüştürülebilir.)

       Aritmetik İfade Genişletmesi
           Aritmetik ifade genişletmesi, bir aritmetik ifadeyi değerlendirmek ve yerine değerini koymak için bir
           mekanizma sağlar. Aritmetik ifade genişletmesinin biçemi:

               $((ifade))

           İfade,  çift  tırnak  içindeymiş  gibi  ele  alınır, ancak ifade içindeki çift tırnak özel olarak ele
           alınmaz. Kabuk, değişken genişletmesi, Komut İkamesi ve Tırnak kaldırma için  ifadedeki  tüm  öğeleri
           genişletir.

           Daha sonra, kabuk bunu aritmetik bir ifade olarak ele alır ve yerine ifadenin değerini koyar.

       Boşluk Ayıklama (Alanlara Ayırma)
           Kabuk, değişken genişletmesi, Komut İkamesi ve Aritmetik İfade Genişletmesi sonra, alanlarına ayırmak
           için çift tırnak içinde olmayan genişletme ve ikame sonuçlarını tarar.

           Kabuk  IFS  değişkenindeki  her karakteri bir ayraç olarak ele alır. Bunları değişken genişletmesi ve
           komut ikamesinin sonuçlarını alanlara ayırmak için kullanır.

       Dosya Yolu Genişletmesi (Dosya Adı Üretimi)
           Alanlara ayırmanın tamamlanmasından sonra -f seçeneği verilmemişse dosya adı üretimine  geçilir.  Her
           sözcük,  eğik  çizgilerle  ayrılmış  bir  dizi  kalıp  olarak  görünür.  Genişletme işleminde, mevcut
           dosyaların adları, her kalıp kendisiyle eşleşen bir dizge ile  değiştirilerek  elde  edilir.  Bununla
           ilgili iki sınırlama vardır:

            •  Bir kalıp eğik çizgi içeren bir dizge ile eşleşemez.
            •  Bir kalıp, kalıbın ilk karakteri bir nokta olmadıkça nokta ile başlayan bir dizge ile eşleşemez.

           Sonraki   bölümde,  hem  dosya  yolu  genişletmesinde  hem  de  case  komutunda  kullanılan  kalıplar
           açıklanmaktadır.

       Kabuk Kalıpları
           Bir kalıp, özel kalıp karakterleri ve kendileri ile eşleşen normal karakterlerden oluşur. Özel  kalıp
           karakterleri:  “!”,  “*”,  “?” ve “[”. Bunların normal karakterler olarak davranması istenirse tırnak
           içine alınmalıdırlar. Komut ikamesi veya değişken genişletmesi yapıldıktan sonra çift tırnak içindeki
           dolar imi veya ters tırnak imleri hariç, değişkenin değeri veya komut çıktısı  dolar  imi  veya  ters
           tırnak imleri için taranır ve bunlar özel kalıp karakterlerine dönüştürülür.

           Yıldız  imi  (“*”)  herhangi  bir  karakter  dizisiyle  eşleşir. Soru imi herhangi bir tek karakterle
           eşleşir. Sol köşeli ayraç (“[”) bir karakter sınıfını tanıtır. Karakter sınıfının sonu bir  (“]”  ile
           gösterilir);  "]"  eksikse  "[",  bir karakter sınıfı sunmak yerine kendisi ile eşleşir. Bir karakter
           sınıfı, köşeli parantezler arasındaki herhangi bir karakterle  eşleşir.  Tire  imi  kullanılarak  bir
           karakter  aralığı belirtilebilir. Karakter sınıfının ilk karakterinden önceki ünlem işareti, karakter
           sınıfının dışında kalan karakterlerle eşleşme sağlar.

           Bir karakter sınıfının “]” içermesi için listelenen ilk karakter olmalıdır (varsa “!” iminden sonra).
           Tire imini içermesi için listelenen ilk veya son karakter olmalıdır.

       Tırnak kaldırma
           Yorumlamalar uygulandıktan sonra, yukarıdaki yorumlamaların sonucu olmayan ve tırnak içine  alınmamış
           tüm ters eğik çizgi (\), tek tırnak (’) ve çift tırnak (") karakterleri kaldırılır.

   Yerleşikler
       Bu  bölümde,  ayrı  bir süreç tarafından gerçekleştirilemeyen bazı işlemleri gerçekleştirmeleri gerektiği
       için yerleşik olan yerleşik komutlar açıklanmıştır.  Ayrıca,  yerleşik  olarak  daha  verimli  olabilecek
       birkaç başka komut da bunlara eklenmiştir (printf, echo, test, vb gibi).

       :
       true
           Çıkış durumu olarak 0 (true) döndürmekten başka hiçbir şey yapmaz.

       . dosya
           Belirtilen dosyadaki komutlar okunur ve kabuk tarafından yürütülür.

       alias [isim[=dizge ...]]
           isim=dizge  belirtilmişse  kabuk,  takma  adı  değer  dizgesiyle  birlikte  tanımlar.  Yalnızca  isim
           belirtilmişse takma adın değeri basılır. Girdisiz kullanım, tanımlanmış tüm  takma  adların  isim  ve
           değerlerinin listelenmesini sağlar. Ayrıca bkz: unalias.

       bg [görev] ...
           Belirtilen görev (belirtilmemişse geçerli görev) çalışmasını artalanda sürdürür.

       command [-p] [-v] [-V] komut [komut-girdisi ...]
           Belirtilen  komut  aynı  addaki  kabuk işlevi yok sayılarak yürütülür. Yerleşik komutla aynı adda bir
           kabuk işlevi de varsa bu yerleşik yararlı olur.

           -p  komut tüm standart ugulamaları bulmayı garanti eden PATH ortam değişkeni kullanılarak aranır.

           -V  komutu yürütmek yerine type yerleşiğinin yaptığı gibi, komut aramasının sonuçlarını gösterir.

           -v  komutu yürütmek yerine komut için arama yapar ve uygulamaları, yerleşik komut adlarını  ve  takma
               ad genişletmelerini mutlak dosya yolları ile gösterir.

       cd -
       cd [-LP] [dizin]
           Belirtilen  dizine  (belirtilmemişse  HOME  dizinine)  geçer. CDPATH değişkeni cd komutunun ortamında
           görünür durumdaysa veya CDPATH kabuk  değişkeni,  eğik  çizgi  ile  başlamayan  bir  dosya  yolu  ile
           tanımlanmışsa, belirtilen dizin CDPATH dizinlerinde aranır. CDPATH değerinin biçemi PATH ile aynıdır.
           dizin  olarak  tek  bir  tire  belirtilmişse  OLDPWD  ortam değişkeninin değeri kullanılır. cd komutu
           belirtilen dizinden farklı bir dizine geçiş yapmışsa  dizin  adını  gösterir.  Bu  genellikle,  dizin
           olarak  tek bir eğik çizgi belirtilmesi veya CDPATH değerinin kullanılması durumunda ortaya çıkar. -P
           seçeneği fiziksel dizin yapısının kullanılmasına sebep olur, yani  tüm  sembolik  bağlar  değerlerine
           çözümlenir. -L seçeneği önüne getirildiği -P seçeneğini etkisiz kılar.

       echo [-n] dizge...
           Belirtilen  dizgeleri  aralarında  boşluk bırakarak standart çıktıya basar. -n seçeneği belirtilmezse
           dizgelerden sonra satır sonu karakteri çıktılanır.

           Aşağıdaki dizgeciklerin varlığında  (çift  tırnakların  içinde  belirtildikleri  takdirde),  dizgecik
           çıktılanmaz, dizgecikle ilgili eylem gerçekleştirilir :

           \b  Ters eğik çizgi karakteri çıktılanır.

           \c  Ardından   gelen  çıktıyı  baskılar.  Genelde,  son  dizgenin  sonunda  belirtilerek  satır  sonu
               karakterinin basılması önlenir.

           \f  Sayfa ileri karakterini çıktılar.

           \n  Satır sonu (yeni satır) karakterini çıktılar (daktilodaki şaryoyu döndürüp satırın başına götürme
               işlemini uçbirimde yapar).

           \r  Satır başı karakterini çıktılar (imleci satırın başına gönderir). Örnek:

                   $ echo "12\r3"
                   32

           \t  Yatay sekme karakterini çıktılar.

           \v  Düşey sekme karakterini çıktılar (imleci bulunduğu sütunda düşeyde ilerletir). Örnek:

                   $ echo "başlık açıklama\n" "\rbaşlık\v" "açıklama"
                   başlık açıklama
                   başlık
                          açıklama

           \0NNN
               NNN sekizlik tabanda en fazla 3 rakam içerebilir. Belirtilmişse sekizlik  ASCII  NNN  karakterini
               belirtilmemişse  0ıncı  karakteri  (Boş  karakter de dediğimiz, meşhur "null" karakterini) basar.
               Hiçbir çıktı vermez.)

           \\  Ters eğik çizgi çıktılar.

           Diğer tüm ters eğik çizgi dizgecikleri, tanımsız davranışı ortaya çıkarır.

       eval dizge ...
           Belirtilen tüm dizgeleri aralarına  boşluk  yerleştirerek  birleştirir.  Genişletmeleri  uyguladıktan
           sonra komutu yürütür.

       exec [komut komut-girdisi ...]
           Bir kabuk komutu veya işlev olmamak koşuluyla gerçek bir komut belirtildiğinde komut, süreci kabuktan
           devralır.  komut-girdisi  içinde  belirtilen  yönlendirmeler  kalıcı olur, yani exec yerleşiğinin işi
           bittiğinde yönlendirmeler geri alınmaz.

       exit [çıkışdurumu]
           Kabuk oturumunu sonlandırır. çıkışdurumu belirtilmişse kabuğun çıkış durumu olarak  kullanılır,  aksi
           takdirde önceki komutun çıkış durumu kullanılır.

       export isim ...
       export -p
           Belirtilen  isimler  dışa  aktarılarak  sonraki  komutların  ortam  değişkenleri olması sağlanır. Bir
           değişkenin dışa aktarılmaması için tek yol, onu unset ile atanmamış yapmaktır. Kabuk  bir  değişkenin
           değerini dışa aktarırken de atayabilir:

               export name=value

           export  komutu hiçbir girdi belirtilmeksizin kullanıldığında dışa aktarılmış tüm ortam değişkenlerini
           listeler. -p  seçeneği  belirtildiğinde  çıktı,  etkileşimli  olmayan  kullanım  için  uygun  şekilde
           biçimlendirilir.

       fc [-e düzenleyici] [ilk [son]]
       fc -l [-nr] [ilk [son]]
       fc -s [eski=yeni] [ilk]
           fc  yerleşiği  etkileşimli  kabuğa evvelce girilmiş (komut geçmişindeki) komutları listeler, düzenler
           veya yeniden çalıştırır.

           -e düzenleyici
               Komutları düzenlemek için belirtilen düzenleyici kullanılır. düzenleyici dizgesi  bir  komut  adı
               olup  PATH  ortam  değişkeninde  belirtilen  yollar  üzerinde  olmalıdır.  Seçenek  belirtilmezse
               öntanımlı olarak FCEDIT ortam değişkeninde  belirtilen  düzenleyici  kullanılır.  FCEDIT  tanımlı
               değilse  veya boş değer içeriyorsa EDITOR ortam değişkeninin değeri kullanılır. EDITOR de tanımlı
               değilse veya boş değer içeriyorsa düzenleyici olarak ed(1) kullanılır.

           -l  Komutları düzenlemek için bir düzenleyici çağırmak yerine komutları listeler. Komutlar  öntanımlı
               olarak  ilk ve son ile belirtilen sırayla gösterilir. -r belirtilmişse sıralama tersine olur. Her
               komuttan önce komut geçmişindeki sıra numarası basılır.

           -n  -l seçeneği ile komutlar listelenirken sıra numaraları gösterilmez.

           -r  Komutlar listelenirken (-l ile) veya düzenlenirken ( -l veya -s olmaksızın) sıralama sondan  ilke
               doğru olur.

           -s  Bir düzenleyici çağırmaksızın komut yeniden çalıştırılır.

           ilk
           son Listelenecek  ve  düzenlenecek  komutları seçmek için kullanılır. Komut geçmişinde saklanabilecek
               komut sayısı HISTSIZE ortam değişkeninde tutulur. ilk ve son değerleri şunlardan biri olmalıdır:

               [+]sayı
                   sayı komut geçmişinde  komutun  sıra  numarasını  belirten  pozitif  bir  tamsayı  olmalıdır.
                   Komutların numaralarına -l seçeneği ile erişilebilir.

               -sayı
                   -sayı  komut  geçmişinde  komutun  sıra  numarasını  belirten  negatif bir tamsayı olmalıdır.
                   Komutların numaralarına -l seçeneği ile erişilebilir. -1 çalıştırılan son komuttur.

           dizge
               Aranan komutun komut geçmişindeki son kullanımına  komutun  ilk  birkaç  karakteri  dizge  olarak
               belirtilerek  erişilebilir.  -s  seçeneği eski=yeni terimiyle birlikte kullanılmışsa eski dizgesi
               eşit imini içermemelidir.

           fc komutunun önemsediği ortam değişkenleri:

           FCEDIT
               Kullanılacak düzenleyicinin adı.

           HISTSIZE
               Komut geçmişinde tutulabilecek en fazla komut sayısı.

       fg [görev]
           Belirtilen görev veya geçerli olan önalana alınır.

       getopts seçenekler değişken
           POSIX getopts yerleşik komutu Bell Labs getopt(1) türevi ile karıştırılmamalıdır.

           seçenekler, seçeneğin bir girdi  gerektirdiğini  belirtmek  için  isteğe  bağlı  olarak  her  birinin
           ardından  iki  nokta  üst  üste  gelebilen  bir  dizi harf olmalıdır. Ayıklanan her seçenek değişkene
           atanır.

           getopts yerleşik komutu, boşluk  içeren  girdileri  işlemesi  nedeniyle  kullanımı  önerilmeyen  eski
           getopt(1) yardımcı komutunun yerini alır.

           getopts  yerleşiği,  bir  komutun girdi listesinden seçenekleri ve seçenek girdilerini ayıklamak için
           kullanılabilir. getopts çağrıldığında, seçenekler dizgesinde belirtilen seçeneklerden komut satırında
           belirtileni değişkene ve seçenek sayısı OPTINDe,  girdisini  OPTARG  kabuk  değişkenine  yerleştirir.
           Kabuk  çağrıldığında, OPTIND 1 ile ilklendirilir. Bir girdi gerektiren her seçenek için, girdi OPTARG
           kabuk değişkenine yerleştirilir. Girdisiz seçenekler için OPTARG tanımsızdır.

           seçenekler seçenek harflerinden (bkz. getopt(3) oluşan bir dizgedir. Bir harfin  ardından  iki  nokta
           üst  üste  geliyorsa, seçeneğin kendisinden boşlukla ayrılabilen veya kendine bitişik bir girdisi var
           demektir. Komut satırında belirtilmiş bir seçenek seçenekler arasında yoksa,  değişkene  “?”  atanır,
           OPTARG  tanımsız olur ve çıktı standart hataya yazılır. seçenekler dizgesinin ilk karakteri iki nokta
           üst üste ise, tüm hatalar yok sayılır.

           Son seçeneğin ardından değişkene “?” atanır ve getopts sıfırdan farklı bir değerle çıkar.

           Aşağıdaki örnekte seçenek olarak [a] ve [b] karakterleri ile girdisi olabilen [c]  karakterini  kabul
           eden bir betiğin komut satırını nasıl değerlendirileceği gösterilmiştir.

               while getopts abc: f
               do
                       case $f in
                       a | b)  secenek=$f;;
                       c)      terim=$OPTARG;;
                       \?)     echo $USAGE; exit 1;;
                       esac
               done
               shift ’expr $OPTIND - 1’
               echo "Seçenek olmayan girdiler: " "$@"

           Bu kodun kabul ettiği komut şunlardan biri olabilir:

               betikadı -acterim dosya dosya
               betikadı -a -c terim dosya dosya
               betikadı -cterim -a dosya dosya
               betikadı -a -cterim -- dosya dosya

       hash -rv komut ...
           Hatırlanan  komutların  yerlerini  bir  tablo  olarak  gösterir. Girdisiz kullanıldığında bu tablonun
           içeriği gösterilir. Son cd komutundan beri bakılmamış girdiler yıldız imi ile imlenir, bu  girdilerin
           geçersiz olması mümkündür.

           Girdi  belirterek  kullanıldığında,  belirtilen  komutlar  (işlev  değilse) ve tablodan kaldırılır ve
           konumları saptanır. -v seçeneği ile hash komutların konumlarını bulduğu gibi gösterir.  -r  seçeneği,
           işlevler dışındaki tüm öğelerin tablodan silinmesine neden olur.

       pwd [-LP]
           Her  seferinde yeniden hesaplamak yerine geçerli dizinin ne olduğunu hatırlar. Bu işleri hızlandırır.
           Ancak, geçerli dizinin adı değişirse, pwd dizinin eski adını göstermeye devam edecektir. -P  seçeneği
           ile  tüm  sembolik  bağlar  hedeflerine  çözümlenir. -L seçeneği, önceki tüm -P seçeneklerini etkisiz
           kılar.

       read [-p istem] [-r] değişken [...]
           -p seçeneği belirtilirse ve standart girdi bir uçbirim ise  istem  gösterilir.  Daha  sonra  standart
           girdiden  bir  satır  okunur.  Satır  sonu  karakteri,  satırdan  silinir ve satır, yukarıdaki Boşluk
           Ayıklama (Alanlara Ayırma) bölümünde  açıklandığı  gibi  bölünür  ve  parçalar  sırayla  değişkenlere
           atanır.  En  az  bir değişken belirtilmelidir. Parça sayısı belirtilen değişkenlerden fazlaysa, kalan
           parçalar (aralarındaki IFS karakterleri ile birlikte) son değişkene atanır.  Parçalardan  daha  fazla
           değişken varsa, kalan değişkenlere boş dizge atanır. read yerleşiği, girdide dosya sonu karakteri ile
           karşılaşılmadığı sürece başarılı olur, aksi takdirde başarısız olur.

           Öntanımlı  olarak,  -r  seçeneği  belirtilmedikçe,  ters  eğik  çizgi "\" bir önceleme karakteri gibi
           davranarak sonraki karakterin kendisi olarak ele alınmasını sağlar. Satır sonu karakterinden önce bir
           ters eğik çizgi varsa bu ikisi silinir.

       readonly isim ...
       readonly -p
           Belirtilen isimler, sonradan değiştirilememeleri veya atanamamaları için salt okunur olarak imlenir.

               readonly isim=değer

           sözdizimi,  salt  okunur  olarak  imlerken  aynı  zamanda  isim  ile   belirtilen   değişkene   değer
           atanabilmesini de sağlar.

           Komut  girdisiz  kullanıldığında,  tüm  salt  okunur değişkenlerin adlarını listeler. -p seçeneği ile
           çıktı, etkileşimli olmayan kullanım için uygun şekilde biçemlendirilir.

       printf biçem [girdi ...]
           printf, biçem ile belirtilen biçeme göre girdileri biçemleyip gösterir. biçem üç tür nesne içeren bir
           dizgedir:

            •  Basitçe standart çıktıya kopyalanan karakterler
            •  Dönüştürülüp standart çıktıya kopyalanan ters eğik çizgi öncelemeli karakterler
            •  girdileri biçemleyen biçem belirteçleri

           Belirteçler  b,  c  veya  s  ise,  girdiler  dizge  olarak  ele  alınır;  aksi  takdirde,   aşağıdaki
           genişletmelerle bir C sabiti olarak değerlendirilir:

            •  Baştaki artı veya eksi imine izin verilir.
            •  Öndeki karakter tek veya çift tırnak ise, değer sonraki karakterin ASCII kodudur.

           biçem  dizgesi,  girdiler  üzerinde  gerektiğinde tekrar tekrar kullanılabilir. Herhangi bir ek biçem
           belirtimi, sıfır veya boş dizge ile değerlendirilir.

           Ters eğik çizgi öncelemeli karakterler, ANSI X3.159-1989’da (“ANSI C89”) tanımlanan  gösterime  uygun
           olmalıdır. Karakterler ve anlamları:

           \a  <zil> çalar.

           \b  <geri-silme> karakteri basar.

           \f  <sayfa-ileri> karakteri basar.

           \n  <satır-sonu> karakteri basar.

           \r  <satır-başı> karakteri basar.

           \t  <sekme> karakteri basar.

           \v  <düşey-sekme> karakteri basar.

           \\  Ters eğik çizgi basar.

           \NNN
               ASCII değeri, sekizlik tabanda 1, 2 veya 3 rakamdan oluşan karakteri basar.

           Her  biçem  belirtimi,  yüzde  imiyle  ("%") başlar. Biçem belirtiminin geri kalanı aşağıdaki sırayla
           şunları içerir:

           Aşağıdakilerden sıfır veya daha fazlası:
               #   Belirtilen alanda çıktının sola yanaştırılacağını belirten eksi imi ’-’; Değerin  "başka  bir
                   biçimde"  yazdırılması gerektiğini belirten bir "#" karakteri. b, c, d ve s biçemleri için bu
                   seçeneğin hiçbir etkisi yoktur. o  biçemi  için,  çıktı  dizgesinin  ilk  karakterini  sıfıra
                   zorlamak  için  sayının  hassasiyeti  artırılır. x (X) biçemi için, sıfır olmayan bir sonucun
                   başına 0x (0X) dizgesi eklenir. e, E, f, g ve G biçemleri için, noktayı  takip  eden  basamak
                   olmasa  bile  sonuç  her zaman bir ondalık nokta içerir (normalde, bu biçemlerin sonuçlarında
                   ondalık nokta yalnızca  noktayı  bir  basamak  takip  ediyorsa  görünür).  Normalde  sonuçtan
                   kaldırılan sağdaki sıfırlar g ve G biçemleri için kaldırılmaz.

               -   Belirtilen alanda çıktının sola yanaştırılacağını belirten eksi imi.

               +   İmli  biçimler  kullanılırken  her  zaman sayının önüne bir im konulması gerektiğini belirten
                   artı imi.

                 İmli biçim için pozitif bir sayıdan önce bir boşluk bırakılması gerektiğini  belirten  boşluk
                   karakteri. "+" imi de belirtilmişse boşluk geçersiz olur.

               0   Dolgu  karakteri  olarak boşluk yerine "0" kullanılması gerektiğini belirten sıfır karakteri.
                   "-" imi de belirtilmişse "0" geçersiz olur.

           Alan Genişliği:
               Alan genişliğini belirten isteğe bağlı rakam dizgesi; çıktı dizgesi alan  genişliğinden  daha  az
               karakter  içeriyorsa,  alan  genişliğini  oluşturmak  için  solda (veya sola yanaştırma imi varsa
               sağda) boşluk bırakılır (baştaki sıfırın belirteç, aradaki sıfırların, alan genişliğinin  parçası
               olduğu unutulmamalıdır).

           Hassasiyet:
               İsteğe  bağlı nokta, ’.’, ardından e ve f biçemleri için ondalık noktadan sonra görünecek basamak
               sayısını veya bir dizgeden yazdırılacak azami bayt sayısını belirten  isteğe  bağlı  sayısal  bir
               dizge  (b  ve  s  biçemleri)  hassasiyeti belirler. Sayısal dizge yoksa hassasiyetin sıfır olduğu
               varsayılır.

           Biçem:
               Kullanılacak biçemin türünü gösteren bir karakter (diouxXfwEgGbcs harflerinden biri).

               Alan genişliği veya hassasiyet için sayısal dizge yerine ‘*’  belirtilebilir.  Bu  durumda,  alan
               genişliğini veya hassasiyeti bir girdi belirler. Biçem karakterleri ve anlamları:

               diouXx
                   girdi, sırasıyla, işaretli onluk (d veya i), işaretsiz sekizlik (o), işaretsiz onluk (u) veya
                   işaretsiz onaltılık (X veya x) tabanda basılır.

               f   girdi,  [-]ddd.ddd  biçeminde  basılır;  burada  ondalık  noktadan  sonraki  d’lerin  sayısı,
                   hassasiyet  belirtimindeki  basamak   sayısıdır.   Hassasiyet   belirtilmemişse   6   basamak
                   öntanımlıdır; hassasiyet açıkça 0 ise, ondalık nokta ve sağındaki basamaklar basılmaz.

               eE  girdi,  [-]d.ddde±dd  biçeminde  basılır;  burada ondalık noktadan önce bir basamak vardır ve
                   sonraki   basamak   sayısı   hassasiyet   belirtimindeki   basamak   sayısıdır.    Hassasiyet
                   belirtilmemişse 6 basamak öntanımlıdır. ’E’ biçemi için büyük E harfi kullanılır.

               gG  girdi,  f  ve e (E) biçemlerinden tam hassasiyeti en küçük alanda sağlayan biçem kullanılarak
                   basılır.

               b   girdideki karakterler, ters eğik çizgili karakterler genişletilerek basılır.  Diğerlerine  ek
                   olarak aşağıdaki ters eğik çizgili karakterler desteklenir:

                   \c  Kendisini  içeren  girdideki  kalan  karakterlerin,  kalan girdilerin ve biçemdeki tüm ek
                       karakterlerin yok sayılmasına neden olur.

                   \0NNN
                       ASCII değeri, sekizlik tabanda 1, 2 veya 3 rakamdan oluşan 8 bitlik karakteri basar.

               c   girdinin ilk karakteri basılır.

               s   girdideki karakterler, sona ulaşılana veya hassasiyet belirtimiyle belirtilen  bayt  sayısına
                   ulaşılana kadar basılır; hassasiyet belirtilmemişse, girdideki tüm karakterler basılır.

               %   Yalnızca ’%’ basar.

               Hiçbir  durumda,  alan  genişliğinin  olmayışı veya küçük alan genişliği, bir alanın kırpılmasına
               neden olmaz; dolgu, yalnızca belirtilen alan genişliği asıl genişliği aşarsa gerçekleşir.

       set [{ -seçenekler | +seçenekler | -- }] girdi ...
           set komutunun üç farklı işlevi vardır.

           Girdisiz kullanımda tüm kabuk değişkenlerinin değerleriyle listeler.

           seçenekler verilirse, belirtilen seçenek imlerini ayarlar veya Girdi Listesinin  İşlenmesi  bölümünde
           açıklandığı  gibi  bunları  temizler.  Özel  bir durum olarak, seçenek -o veya +o ise ve herhangi bir
           girdi sağlanmazsa, kabuk tüm seçeneklerinin ayarlarını gösterir. Seçenek -o ise, ayarlar tablo olarak
           gösterilir; seçenek +o ise, ayarlar, aynı seçenek ayarlarını etkilemek için kabuğa yeniden  girilmeye
           uygun biçimde listelenir.

           Üçüncü  kullanımında,  kabuğun  konumsal  değişkenlerinin  değerlerine  belirtilen  girdiler  atanır.
           Herhangi bir seçeneği değiştirmeden konumsal değişkenleri değiştirmek için, ilk girdi “--” olmalıdır.
           Hiçbir girdi  belirtilmezse,  set  komutu  tüm  konumsal  değişkenleri  siler  ("shift  $#"  komutuna
           eşdeğerdir).

       shift [N]
           Konumsal  değişkenleri N kez kaydırır. Kaydırma, $1’in değerini $2’nin değerine, $2’nin değerini $3’e
           vb. atamak, $# değerini bir azaltmak şeklinde uygulanır. N,  konumsal  değişken  sayısından  büyükse,
           shift hatayı belirten bir ileti gösterir ve 2 durumu ile çıkar.

       test ifade
       [ ifade ]
           test  yerleşiği  ifadeyi  değerlendirir  ve doğru olarak değerlendirirse çıkış durumu 0 (doğru), aksi
           takdirde 1 (yanlış) olur. ifade belirtilmediği takdirde de, 1 (yanlış) ile çıkar.

           Tüm işleçler ve seçenekler, test yerleşiği için ayrı bir girdidir.

           ifade öncelikle aşağıdakilerden oluşur:

           -b dosya
               dosya mevcut ve blok özel dosyası ise sonuç doğrudur.

           -c dosya
               dosya mevcut ve karakter özel dosyası ise sonuç doğrudur.

           -d dosya
               dosya mevcut ve bir dizin ise sonuç doğrudur.

           -e dosya
               dosya mevcut ise sonuç doğrudur (türüne bakılmaksızın).

           -f dosya
               dosya mevcut ve normal bir dosya ise sonuç doğrudur.

           -g dosya
               dosya mevcut ve grup kimliği belirleme biti etkinse sonuç doğrudur.

           -h dosya
               dosya mevcut ve sembolik bağ ise sonuç doğrudur.

           -k dosya
               dosya mevcut ve yapışkan biti etkinse sonuç doğrudur.

           -n dizge
               dizge uzunluğu sıfır değilse sonuç doğrudur.

           -p dosya
               dosya isimli bir ardışık komut (FIFO) ise sonuç doğrudur.

           -r dosya
               dosya mevcut ve okunabilirse sonuç doğrudur.

           -s dosya
               dosya mevcut ve boyutu sıfırdan büyükse sonuç doğrudur.

           -t dosya-tanıtıcı
               dosya-tanıtıcısı belirtilen dosya açık ve bir uçbirim ile ilişkili ise sonuç doğrudur.

           -u dosya
               dosya mevcut ve kullanıcı kimliği belirleme biti etkinse sonuç doğrudur.

           -w dosya
               dosya mevcut ve yazılabilir ise sonuç doğrudur. Sonuç yanlızca yazmanın etkin olup  olmadığı  ile
               ilgilidir. Dosya salt-okunur bağlı bir dosya sisteminde olsa bile sonuç doğru olacaktır.

           -x dosya
               dosya mevcut ve çalıştırılabilir ise sonuç doğrudur. Sonuç yanlızca kipin etkin olup olmadığı ile
               ilgilidir. Dosya, bir dizin ise doğru sonucu dizinde arama yapılabileceğini belirtir.

           -z dizge
               dizge uzunluğu sıfır ise sonuç doğrudur.

           -L dosya
               dosya  mevcut  ve  sembolik  bağ  ise sonuç doğrudur. Önceki sürümlerle uyumluluk için vardır. Bu
               seçeneğe güvenilmemeli, yerine -h kullanılmalıdır.

           -O dosya
               dosya mevcut ve dosyanın sahibi sürecin etkin kullanıcısı ile aynıysa sonuç doğrudur.

           -G dosya
               dosya mevcut ve dosyanın grubu sürecin etkin grubu ile aynıysa sonuç doğrudur.

           -S dosya
               dosya mevcut ve bir soketse sonuç doğrudur.

           dosya1 -nt dosya2
               dosya1 ve dosya2 mevcut ve dosya1 dosya2’den yeniyse sonuç doğrudur.

           dosya1 -ot dosya2
               dosya1 ve dosya2 mevcut ve dosya1 dosya2’den eskiyse sonuç doğrudur.

           dosya1 -ef dosya2
               dosya1 ve dosya2 mevcut ve ikisi de aynı dosyaya bağlı ise sonuç doğrudur.

           dizge
               dizge null değilse sonuç doğrudur.

           dizge1 = dizge2
               dizge1 ve dizge2 aynıysa sonuç doğrudur.

           dizge1 != dizge2
               dizge1 ve dizge2 aynı değilse sonuç doğrudur.

           dizge1 < dizge2
               Karakterlerinin ASCII değerlerine göre dizge1, dizge2den önce geliyorsa sonuç doğrudur.

           dizge1 > dizge2
               Karakterlerinin ASCII değerlerine göre dizge1, dizge2den sonra geliyorsa sonuç doğrudur.

           tamsayı1 -eq tamsayı2
               tamsayı1 ve tamsayı2 matematiksel olarak eşitse sonuç doğrudur.

           tamsayı1 -ne tamsayı2
               tamsayı1 ve tamsayı2 matematiksel olarak eşit değilse sonuç doğrudur.

           tamsayı1 -gt tamsayı2
               tamsayı1, tamsayı2’den matematiksel olarak büyükse sonuç doğrudur.

           tamsayı1 -ge tamsayı2
               tamsayı1, tamsayı2’den matematiksel olarak büyük veya eşitse sonuç doğrudur.

           tamsayı1 -lt tamsayı2
               tamsayı1, tamsayı2’den matematiksel olarak küçükse sonuç doğrudur.

           tamsayı1 -le tamsayı2
               tamsayı1, tamsayı2’den matematiksel olarak küçük veya eşitse sonuç doğrudur.

           Yukarıdaki öncüller aşağıdaki işleçlerle birlikte belirtilebilir:

           ! ifade
               ifade yanlışsa sonuç doğrudur.

           ifade1 -a ifade2
               ifade1 VE ifade2 doğru ise sonuç doğrudur.

           ifade -o ifade2
               ifade1 VEYA ifade2 doğru ise sonuç doğrudur.

           (ifade)
               ifade doğru ise sonuç doğrudur.

           -a (VE) işleci -o (VEYA) işlecinden önceliklidir.

       times
           Kabuğun ve kabukta çalışan sürecin harcadığı kullanıcı ve sistem sürelerini basar. Çıkış durumu daima
           sıfırdır.

       trap [eylem sinyal ...]
           Belirtilen sinyal’lerden biri alındığında kabuk eylem’i  genişletir  ve  yürütür.  sinyaller,  sinyal
           numarasıyla  veya  sinyalin  adıyla  belirtilebilir.  sinyal  0 veya EXIT ise, eylem kabuk çıktığında
           yürütülür. eylem boş olabilir (’’), bu da belirtilen sinyallerin yok sayılmasına  neden  olur.  eylem
           belirtilmez  veya ’-’ olursa, belirtilen sinyaller için bunların öntanımlı eylemleri uygulanır. Kabuk
           bir alt kabuğu çatalladığında, yakalanan (ancak yok sayılmayan) sinyaller  için  öntanımlı  eylemleri
           uygulanır.  Trap  komutunun, kabuk başlatılırken yok sayılan sinyaller üzerinde hiçbir etkisi yoktur.
           trap girdisiz kullanımda, sinyalleri ve ilişkili eylemleri standart çıktıya (trap  yerleşiğinin  aynı
           sonuçlara ulaşacağı kabuk girdileri olarak) listeler.

           Örnekler:

               trap

           Sinyalleri ve ilişkili eylemleri listeler.

               trap ’’ INT QUIT tstp 30

           INT QUIT TSTP USR1 sinyallerini yoksayar.

               trap date INT

           INT sinyali alınınca tarihi basar.

       type [isim ...]
           Belirtilen her isim bir komut olarak yorumlanır ve komut aramasının çözümü gösterilir. Olası çözümler
           şunlardır:  kabuk  anahtar sözcüğü, takma ad, kabuk yerleşiği, komut, izlenen takma ad ve bulunamadı.
           Takma adlar için takma adın değeri gösterilir; komutlar ve izlenen takma adlar için komutun tam  yolu
           gösterilir.

       ulimit [-H | -S] [-a | -tfdscmlpnv [değer]]
           Süreçler  üzerinde,  katı ve esnek sınırları belirler veya bilgi verir ya da yeni sınırları belirler.
           Katı sınır (hiçbir sürecin ihlal etmesine izin verilmeyen, değeri artırılamayan  veya  eksiltilemeyen
           sınırlar)  ve esnek sınır (ihlal eden sürecin sinyallenmesine ancak öldürülmemesine sebep olan değeri
           arttırılabilir/eksiltilebilir sınırlar) arasında seçim yapılabilmesini sağlayan seçenekler:

           -H  Katı sınırları etkinleştirir veya bilgi verir.

           -S  Esnek sınırları belirler veya bilgi verir. Ne  -H  ne  de  -S  belirtilmişse  ya  esnek  sınırlar
               gösterilir ya da sınırların ikisi de etkin olur. İki seçenek de belirtilmişse sonuncusu kazanır.

           Sorgulanacak veya atanacak sınır aşağıdaki seçeneklere göre seçilir:

           -a  Geçerli tüm sınırlar gösterilir.

           -t  İşlemci zamanı ile ilgili sınır (saniye cinsinden) gösterilir veya atanır.

           -f  Oluşturulabilecek  en  büyük  dosya  boyutu  (512  baytlık  blok  sayısı  olarak) gösterilir veya
               belirlenir.

           -d  Süreç veri segmanının boyutu (kilobayt olarak) gösterilir veya belirlenir.

           -s  Süreç yığıt boyutu (kilobayt olarak) gösterilir veya belirlenir.

           -c  Üretilebilecek en büyük çekirdek dökümünün boyutu (512 baytlık  blok  sayısı  olarak)  gösterilir
               veya belirlenir.

           -m  Bir sürece ayrılan toplam fiziksel belleğin sınırı (kilobayt olarak) gösterilir veya belirlenir.

           -l  Bir  sürecin  lock  veya  mlock  kullanarak  kilitleyebileceği  bellek  boyutu  (kilobayt olarak)
               gösterilir veya belirlenir.

           -p  Kullanıcının aynı anda sahibi olabileceği süreç sayısı gösterilir veya belirlenir.

           -n  Bir sürecin aynı anda açabileceği dosya sayısı gösterilir veya belirlenir.

           -v  Bir sürecin kullanılabileceği toplam sanal bellek (kilobayt olarak) gösterilir veya belirlenir.

           -r  Bir sürecin gerçek zamanlı zamanlama önceliği gösterilir veya belirlenir.

           Bunlardan hiçbiri belirtilmezse, sınır, gösterilen veya ayarlanan dosya  boyutunun  sınırıdır.  değer
           belirtilirse, sınır o sayıya ayarlanır; aksi takdirde geçerli sınır görüntülenir.

           Bir sürecin sınırları sysctl(8) ile belirlenebilir veya gösterilebilir.

       umask [maske]
           umask  değerini (bkz. umask(2)) belirtilen sekizlik değere ayarlar. maske belirtilmezse, umask değeri
           gösterilir.

       unalias [-a][isim]
           isim belirtilirse kabuk bu takma adı siler. -a belirtilirse tüm takma adlar silinir.

       unset [-fv ]isim ...
           Belirtilen değişken ve işlev isimleri tanımsız ve  dışa  aktarılmamış  duruma  getirilir.  -f  ve  -v
           belirtilirse,  işlem karşılık gelen işlev veya değişkene uygulanır. Belirtilen isim hem bir değişkene
           hem de bir işleve karşılık geliyorsa ve herhangi bir seçenek verilmezse, yalnızca  değişken  tanımsız
           olur.

       wait [görev]
           Belirtilen  görevin  tamamlanmasını  bekler  ve  görevdeki  son  sürecin çıkış durumuyla çıkar. görev
           belirtilmezse, tüm görevlerin tamamlanmasını bekler ve sıfır durumu ile çıkar.

   Komut Satırı Düzenleme
       dash bir uçbirimden etkileşimli olarak kullanıldığında, geçerli komut  ve  komut  geçmişi  (Yerleşiklerde
       fc’ye  bakın)  vi  kipinde  komut  satırı  düzenlemesi  kullanılarak  düzenlenebilir.  Bu kip, vi kılavuz
       sayfasında açıklandığı gibi kullanılır. ’set -o vi’  komutu,  vi  kipinde  düzenlemeyi  etkinleştirir  ve
       kabuğu  vi ekleme kipine yerleştirir. vi kipi etkinleştirildiğinde kabuk, ekleme kipine veya komut kipine
       alınabilir. vi’ye benzer olarak, ESC tuşuna basılırsa komut kipine girer. Komut kipindeyken Enter  tuşuna
       basılırsa, satır kabuğa aktarılır.

ÇIKIŞ DURUMU

       Kabuk  tarafından  saptanan  sözdizimi  hatası  gibi hatalar, kabuğun sıfırdan farklı bir çıkış durumuyla
       çıkmasına neden olur. Kabuk etkileşimli değilse, kabuk dosyasının yürütmesi  durdurulur.  Aksi  takdirde,
       kabuk  yürütülen  son  komutun  çıkış  durumunu  döndürür  veya  exit  yerleşiği  sayısal  bir  girdi ile
       kullanılırsa, bu sayıyı döndürür.

ORTAM DEĞİŞKENLERİ

       HOME
           Parola dosyasındaki (passwd(4)) kullanıcının oturum açma dizini olup  değişkene  login(1)  tarafından
           otomatik olarak atanır. Bu ortam değişkeni ayrıca cd yerleşiğinin de öntanımlı girdisidir.

       PATH
           Yürütülebilirler için öntanımlı dosya arama yolu. Bkz: Dosya Yolu Araması

       CDPATH
           cd yerleşik komutuyla kullanılan dosya arama yolu.

       MAIL
           Yeni posta için denetlenecek posta dosyasının adı. MAILPATH tarafından geçersiz kılınır.

       MAILCHECK
           MAILPATH  veya  MAIL  değişkeni  ile belirtilen dosyalara posta gelişini kabuğun denetleme sıklığının
           saniye cinsinden değeri. 0 atanırsa, her istemde posta denetimi yapılır.

       MAILPATH
           Kabuğun gelen postayı denetlemesi için iki nokta üst üste ":" ile ayrılmış dosya adları listesi. MAIL
           ortam değişkenini geçersiz kılar. Aynı anda en fazla 10 posta kutusu izlenebilir.

       PS1 Birincil istem dizgesi, süper kullanıcı için “# ”, diğer kullanıcılar için “$ ” öntanımlıdır.

       PS2 İkincil istem dizgesi, “> ” öntanımlıdır.

       PS4 Yürütme izi (set -x) etkinleştirildiğinde her satırdan önceki çıktı, “+ ” öntanımlıdır.

       IFS Girdi Alanı Ayraçları. Normalde boşluk,  sekme  ve  satırsonu  karakterlerinden  oluşur.  Daha  fazla
           ayrıntı için bkz: Boşluk Ayıklama (Alanlara Ayırma)

       TERM
           Kabuğun  öntanımlı uçbirimi. Kabuğun çocukları tarafından miras alınır ve geçmiş düzenleme kiplerinde
           kullanılır.

       HISTSIZE
           Kabuğun geçmiş tamponundaki satır sayısı.

       PWD Geçerli çalışma dizininin mantıksal değeri. cd komutuyla ayarlanır.

       OLDPWD
           Geçerli çalışma dizininin önceki mantıksal değeri. cd komutuyla ayarlanır.

       PPID
           Kabuğun üst (ebeveyn) sürecinin süreç kimliği.

İLGİLİ DOSYALAR

       $HOME/.profile
       /etc/profile

İLGİLİ BELGELER

       csh(1), echo(1), getopt(1), ksh(1),  login(1),  printf(1),  test(1),  getopt(3),  passwd(5),  environ(7),
       sysctl(8).

GEÇMİŞ

       dash,  /bin/sh’nin  mümkün olduğu kadar küçük olmayı amaçlayan POSIX uyumlu gerçeklenimidir. Gerçeklenim,
       ash’in (Almquist SHell) NetBSD sürümünden çatallanarak 1997 başlarında Linux’a aktarılmış,  2002’de  dash
       olarak yeniden adlandırılmıştır.

HATA AYIKLAMA

       Önemli  bir  güvenlik  riski  oluşturduklarından  setuid  kabuk  betiklerinden  ne  pahasına olursa olsun
       kaçınılmalıdır.

       PS1, PS2 ve PS4, gösterilmeden önce içeriği ayrıştırılmalıdır.

ÇEVİREN

       © 2023 Nilgün Belma Bugüner
       Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
       Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak  için  https://github.com/TLBP/manpages-
       tr/issues adresinde "New Issue" düğmesine tıklayıp yeni bir konu açınız ve isteğinizi belirtiniz.

dash 0.5.10                                       18 Ocak 2003                                           DASH(1)