bash - başvuru kılavuzu, seçenekler, komut örnekleri


İSİM

bash - GNU Bourne-Tekrar KABUK

ÖZET

bash [options] [command_string | file]

TELİF HAKKI

Bash'in Telif Hakkı (C) 1989-2020, Free Software Foundation, Inc.'e aittir.

TANIM

Bash, standart girdiden veya bir dosyadan okunan komutları yürüten, sh uyumlu bir komut dili yorumlayıcısıdır. Bash ayrıca Korn ve C kabuklarından (ksh ve csh) kullanışlı özellikler içerir. ).

Bash, IEEE POSIX belirtiminin (IEEE Standardı 1003.1) Kabuk ve Yardımcı Programlar bölümünün uyumlu bir uygulaması olarak tasarlanmıştır. Bash varsayılan olarak POSIX uyumlu olacak şekilde yapılandırılabilir.

SEÇENEKLER

-o dahil olmak üzere set yerleşik komutunun açıklamasında belgelenen tüm tek karakterli kabuk seçenekleri, kabuk çağrıldığında seçenek olarak kullanılabilir. Ayrıca, bash çağrıldığında aşağıdaki seçenekleri yorumlar:

-c

-c seçeneği mevcutsa, komutlar seçenek olmayan ilk bağımsız değişken olan command_string'den okunur. command_string'den sonra bağımsız değişkenler varsa, ilk bağımsız değişken $0'a atanır ve kalan tüm bağımsız değişkenler konumsal parametrelere atanır. $0 ataması, uyarı ve hata mesajlarında kullanılan kabuğun adını belirler.

-i

-i seçeneği varsa, kabuk etkileşimlidir.

-l

bash'ın bir oturum açma kabuğu olarak çağrılmış gibi davranmasını sağlayın (aşağıdaki INVOCATION'a bakın).

-r

-r seçeneği mevcutsa, kabuk kısıtlı hale gelir (aşağıdaki KISITLI KABUK'a bakın).

-s

-s seçeneği mevcutsa veya seçenek işlendikten sonra hiçbir argüman kalmadıysa, komutlar standart girdiden okunur. Bu seçenek, etkileşimli bir kabuk çağrılırken veya bir kanaldan girdi okunurken konum parametrelerinin ayarlanmasına izin verir.

-D

Standart çıktıda, önünde $ bulunan tüm çift tırnaklı dizelerin bir listesi yazdırılır. Bunlar, geçerli yerel ayar C veya POSIX olmadığında dil çevirisine tabi olan dizelerdir. Bu, -n seçeneği anlamına gelir; hiçbir komut yürütülmeyecek.

[-+]O [shopt_option]

shopt_option, shopt yerleşiği tarafından kabul edilen kabuk seçeneklerinden biridir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). shopt_option mevcutsa, -O bu seçeneğin değerini ayarlar; +O onu kaldırır. shopt_option sağlanmazsa, shopt tarafından kabul edilen kabuk seçeneklerinin adları ve değerleri standart çıktıya yazdırılır. Çağırma seçeneği +O ise çıktı, girdi olarak yeniden kullanılabilecek bir biçimde görüntülenir.

--

Bir --, seçeneklerin sonunu bildirir ve daha fazla seçenek işlemeyi devre dışı bırakır. --'den sonraki bağımsız değişkenler, dosya adları ve bağımsız değişkenler olarak ele alınır. - bağımsız değişkeni, -- ile eşdeğerdir.

Bash ayrıca bir dizi çok karakterli seçeneği de yorumlar. Bu seçenekler, tek karakterli seçeneklerin tanınması için komut satırında görünmelidir.

--debugger

Hata ayıklayıcı profilinin kabuk başlamadan önce yürütülmesini sağlayın. Genişletilmiş hata ayıklama modunu açar (aşağıdaki shopt yerleşik yapısı için extdebug seçeneğinin açıklamasına bakın).

--dump-po-strings

-D'ye eşdeğerdir, ancak çıktı GNU gettext po (taşınabilir nesne) dosya biçimindedir.

--dump-strings

-D'ye eşdeğerdir.

--help

Standart çıktıda bir kullanım mesajı görüntüleyin ve başarıyla çıkın.

--init-file file
--rcfile file

Kabuk etkileşimliyse, komutları standart kişisel başlatma dosyası ~/.bashrc yerine file'den yürütün (aşağıdaki INVOCATION'a bakın).

--login

-l ile eşdeğerdir.

--noediting

Kabuk etkileşimliyken komut satırlarını okumak için GNU readline kitaplığını kullanmayın.

--noprofile

Sistem genelindeki başlangıç dosyasını  /etc/profile  veya kişisel başlatma dosyalarından herhangi birini ~/.bash_profile, ~/.bash_login veya ~/.profile okumayın. Varsayılan olarak, bash bir oturum açma kabuğu olarak çağrıldığında bu dosyaları okur (aşağıdaki INVOCATION'a bakın).

--norc

Kabuk etkileşimli ise kişisel başlatma dosyasını ~/.bashrc okuyup çalıştırmayın. Kabuk sh olarak çağrılırsa, bu seçenek varsayılan olarak açıktır.

--posix

Varsayılan işlemin standartla (posix modu) eşleşmesi için POSIX standardından farklı olduğu durumlarda bash'ın davranışını değiştirin. Posix modunun bash davranışını nasıl etkilediğini ayrıntılarıyla anlatan bir belgeye referans için aşağıdaki AYRICA BAKINIZ'a bakın.

--restricted

Kabuk kısıtlanır (aşağıdaki KISITLI KABUK'a bakın).

--verbose

-v'ye eşdeğerdir.

--version

Bu bash örneği için sürüm bilgisini standart çıktıda gösterin ve başarıyla çıkın.

ARGÜMANLAR

Seçenek işlendikten sonra argümanlar kalırsa ve ne -c ne de -s seçeneği sağlanmadıysa, ilk argümanın kabuk komutlarını içeren bir dosyanın adı olduğu varsayılır. . bash bu şekilde çağrılırsa, $0 dosyanın adına, konumsal parametreler ise kalan bağımsız değişkenlere ayarlanır. Bash bu dosyadaki komutları okur ve yürütür, sonra çıkar. Bash'in çıkış durumu, komut dosyasında yürütülen son komutun çıkış durumudur. Hiçbir komut yürütülmezse, çıkış durumu 0'dır. Önce dosyayı geçerli dizinde açmak için bir girişimde bulunulur ve hiçbir dosya bulunmazsa, kabuk PATH içindeki dizinleri arar. senaryo.

DUA

Bir giriş kabuğu, sıfır bağımsız değişkeninin ilk karakteri - olan veya --login seçeneğiyle başlayan bir kabuktur.

Bir etkileşimli kabuk, seçenek dışı bağımsız değişkenler olmadan (-s belirtilmedikçe) ve standart girdisi ve hatası olan -c seçeneği olmadan başlatılan kabuktur. her ikisi de terminallere bağlıdır (isatty(3) tarafından belirlendiği gibi) veya biri -i seçeneğiyle başlatılır.

PS1 ayarlanır ve bash etkileşimliyse, $- i öğesini içerir; bu, bir kabuk betiğinin veya bir başlangıç dosyasının bu durumu test edin.

Aşağıdaki paragraflar, bash'ın başlangıç dosyalarını nasıl yürüttüğünü açıklamaktadır. Dosyalardan herhangi biri varsa ancak okunamıyorsa, bash bir hata bildirir. Yaklaşık işaretleri, aşağıda GENİŞLETME bölümündeki Tilde Genişletme altında açıklandığı gibi dosya adlarında genişletilir.

bash, etkileşimli bir oturum açma kabuğu olarak veya --login seçeneğiyle etkileşimli olmayan bir kabuk olarak çağrıldığında, önce /etc/profile dosyası varsa, komutları okur ve bu dosyadan yürütür. Bu dosyayı okuduktan sonra, sırasıyla ~/.bash_profile, ~/.bash_login ve ~/.profile öğelerini arar ve var olan ve okunabilir olan ilk komuttan itibaren okur ve komutları yürütür. Kabuk başlatıldığında bu davranışı engellemek için --noprofile seçeneği kullanılabilir.

Etkileşimli bir oturum açma kabuğundan çıkıldığında veya etkileşimli olmayan bir oturum açma kabuğu yerleşik exit komutunu yürüttüğünde, bash ~/.bash_logout dosyasındaki komutları okur ve yürütür. , varsa.

Oturum açma kabuğu olmayan etkileşimli bir kabuk başlatıldığında, bash, eğer bu dosya varsa, ~/.bashrc'deki komutları okur ve yürütür. Bu, --norc seçeneği kullanılarak engellenebilir. --rcfile file seçeneği, bash'ı komutları ~/.bashrc yerine file dosyasından okumaya ve yürütmeye zorlar.

bash etkileşimli olmayan bir şekilde başlatıldığında, örneğin bir kabuk betiğini çalıştırmak için, ortamdaki BASH_ENV değişkenini arar, orada görünürse değerini genişletir ve okumak ve yürütmek için bir dosyanın adı olarak genişletilmiş değeri kullanır. Bash, aşağıdaki komut yürütülmüş gibi davranır:

if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi

ancak dosya adını aramak için PATH değişkeninin değeri kullanılmaz.

bash, sh adıyla çağrılırsa, sh'nin geçmiş sürümlerinin başlatma davranışını olabildiğince yakından taklit etmeye çalışır ve aynı zamanda şuna uyar: POSIX standardı da. Etkileşimli bir oturum açma kabuğu veya --login seçeneğiyle etkileşimli olmayan bir kabuk olarak çağrıldığında, önce /etc/profile ve < kaynaklarından gelen komutları okumaya ve yürütmeye çalışır.~/.profile, bu sırayla. Bu davranışı engellemek için --noprofile seçeneği kullanılabilir. bash, sh adıyla etkileşimli bir kabuk olarak çağrıldığında, ENV değişkenini arar, tanımlanmışsa değerini genişletir ve okunacak ve yürütülecek bir dosyanın adı olarak genişletilmiş değer. sh olarak çağrılan bir kabuk, diğer başlangıç dosyalarından komutları okumaya ve yürütmeye çalışmadığından, --rcfile seçeneğinin hiçbir etkisi yoktur. sh adıyla çağrılan etkileşimli olmayan bir kabuk, diğer başlangıç dosyalarını okumaya çalışmaz. sh olarak çağrıldığında, bash başlangıç dosyaları okunduktan sonra posix kipine girer.

bash, posix kipinde başlatıldığında, --posix komut satırı seçeneğinde olduğu gibi, başlangıç dosyaları için POSIX standardını izler. Bu modda, etkileşimli kabuklar ENV değişkenini genişletir ve komutlar, adı genişletilmiş değer olan dosyadan okunur ve yürütülür. Başka hiçbir başlangıç dosyası okunmaz.

Bash, genellikle rshd olan uzak kabuk arka plan programı veya güvenli kabuk arka plan programı tarafından yürütüldüğünde olduğu gibi, bir ağ bağlantısına bağlı standart girişiyle ne zaman çalıştırıldığını belirlemeye çalışır. sshd. bash bu şekilde çalıştırıldığını belirlerse, bu dosya varsa ve okunabilir durumdaysa, ~/.bashrc dosyasındaki komutları okur ve yürütür. sh olarak çağrılırsa bunu yapmaz. --norc seçeneği bu davranışı engellemek için kullanılabilir ve --rcfile seçeneği başka bir dosyayı okumaya zorlamak için kullanılabilir, ancak rshd hiçbiri ve sshd genellikle kabuğu bu seçeneklerle çağırmaz veya bunların belirtilmesine izin vermez.

Kabuk, gerçek kullanıcı (grup) kimliğine eşit olmayan etkili kullanıcı (grup) kimliğiyle başlatılırsa ve -p seçeneği sağlanmazsa, hiçbir başlangıç dosyası okunmaz, kabuk işlevleri ortamdan miras alınmaz, SHELLOPTS, BASHOPTS, CDPATH ve GLOBIGNORE değişkenleri, eğer ortamda görünürlerse, yoksayılır ve etkin kullanıcı kimliği, gerçek kullanıcı kimliğine ayarlayın. Çağırma sırasında -p seçeneği sağlanırsa, başlatma davranışı aynıdır ancak etkin kullanıcı kimliği sıfırlanmaz.

TANIMLAR

Aşağıdaki tanımlar bu belgenin geri kalanında kullanılmıştır.

blank

Bir boşluk veya sekme.

word

Kabuk tarafından tek bir birim olarak kabul edilen bir karakter dizisi. Belirteç olarak da bilinir.

name

Yalnızca alfasayısal karakterler ve alt çizgilerden oluşan ve bir alfabetik karakter veya alt çizgi ile başlayan bir sözcük. tanımlayıcı olarak da adlandırılır.

metacharacter

Tırnak içine alınmadığında kelimeleri ayıran bir karakter. Aşağıdakilerden biri:

| & ; ( ) < > space tab newline
control operator

Bir kontrol işlevi gerçekleştiren bir belirteç. Aşağıdaki sembollerden biridir:

|| & && ; ;; ;& ;;& ( ) | |& <newline>

AYRILMIŞ KELİMELER

Ayrılmış sözcükler, kabuk için özel anlamı olan sözcüklerdir. Aşağıdaki sözcükler, tırnak içine alınmadığında ve bir komutun ilk sözcüğü (aşağıdaki SHELL GRAMMAR'a bakın), bir case veya select komutunun üçüncü sözcüğü (yalnızca in geçerlidir) veya bir for komutunun üçüncü sözcüğü (yalnızca in ve do geçerlidir) olduğunda ayrılmış olarak tanınırlar:

! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]

KABUK GRAMERİ

Basit Komutlar

Basit bir komut, boş ile ayrılmış sözcükler ve yeniden yönlendirmelerin izlediği ve bir kontrol işleci tarafından sonlandırılan isteğe bağlı değişken atamaları dizisidir. İlk sözcük yürütülecek komutu belirtir ve sıfır bağımsız değişkeni olarak iletilir. Kalan sözcükler, çağrılan komuta argüman olarak iletilir.

Bir basit komutun dönüş değeri çıkış durumudur veya komut n sinyaliyle sonlandırılırsa 128+n  olur.

boru hatları

Ardışık düzen, | veya |& kontrol işleçlerinden biriyle ayrılan bir veya daha fazla komut dizisidir. Bir ardışık düzen için biçim şöyledir:

[time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]

command'in standart çıktısı, bir boru aracılığıyla command2'nin standart girişine bağlanır. Bu bağlantı, komut tarafından belirtilen herhangi bir yeniden yönlendirmeden önce gerçekleştirilir (aşağıdaki YÖNLENDİRME'ye bakın). |& kullanılırsa, command'ın standart hatası, standart çıktısına ek olarak, command2'in standart girişine şu şekilde bağlanır: boru; 2>&1 | için kısaltmadır. Standart hatanın standart çıktıya bu dolaylı yeniden yönlendirmesi, komut tarafından belirtilen herhangi bir yeniden yönlendirmeden sonra gerçekleştirilir.

Bir ardışık düzenin dönüş durumu, pipefail seçeneği etkinleştirilmedikçe son komutun çıkış durumudur. pipefail etkinleştirilirse, ardışık düzenin dönüş durumu, sıfırdan farklı bir durumla çıkmak için son (en sağdaki) komutun değeri veya tüm komutlar başarılı bir şekilde çıkarsa sıfırdır. Ayrılmış kelime ! bir ardışık düzenden önce geliyorsa, bu ardışık düzenin çıkış durumu, yukarıda açıklandığı gibi çıkış durumunun mantıksal olumsuzlamasıdır. Kabuk, bir değer döndürmeden önce ardışık düzendeki tüm komutların sonlanmasını bekler.

time ayrılmış sözcük bir ardışık düzenden önce geliyorsa, ardışık düzen sona erdiğinde geçen süre ile yürütmesi tarafından tüketilen kullanıcı ve sistem süresi raporlanır. -p seçeneği, çıktı biçimini POSIX tarafından belirtilene değiştirir. Kabuk posix modunda olduğunda, sonraki belirteç `-' ile başlıyorsa, zamanı ayrılmış bir kelime olarak tanımaz. TIMEFORMAT değişkeni, zamanlama bilgilerinin nasıl görüntülenmesi gerektiğini belirten bir biçim dizesine ayarlanabilir; aşağıdaki Kabuk Değişkenleri altındaki TIMEFORMAT açıklamasına bakın.

Kabuk posix modunda olduğunda, zaman'dan sonra yeni bir satır gelebilir. Bu durumda kabuk, kabuk ve alt öğeleri tarafından tüketilen toplam kullanıcı ve sistem süresini görüntüler. TIMEFORMAT değişkeni, saat bilgisinin biçimini belirtmek için kullanılabilir.

Bir ardışık düzendeki her komut ayrı bir işlem olarak yürütülür (yani bir alt kabukta). Bir alt kabuk ortamının açıklaması için KOMURU YÜRÜTME ORTAMI'na bakın. lastpipe seçeneği shopt yerleşik kullanılarak etkinleştirildiyse (aşağıdaki shopt açıklamasına bakın), bir boru hattının son öğesi kabuk işlemi tarafından çalıştırılabilir.

Listeler

Bir liste, ;, &, && veya || işleçlerinden biri tarafından ayrılan ve isteğe bağlı olarak ;, & veya <newline> işleçlerinden biri tarafından sonlandırılan bir veya daha fazla ardışık düzen dizisidir.

Bu liste işleçlerinden && ve || eşit önceliğe sahiptir, ardından eşit önceliğe sahip ; ve & gelir.

Komutları sınırlandırmak için noktalı virgül yerine listede bir veya daha fazla yeni satır dizisi görünebilir.

Bir komut & kontrol operatörü tarafından sonlandırılırsa, kabuk komutu bir alt kabukta arka planda yürütür. Kabuk, komutun bitmesini beklemez ve dönüş durumu 0'dır. Bunlara eşzamansız komutlar denir. ; ile ayrılan komutlar sırayla yürütülür; kabuk sırayla her komutun sonlanmasını bekler. Dönüş durumu, yürütülen son komutun çıkış durumudur.

AND ve OR listeleri, sırasıyla && ve || kontrol işleçleriyle ayrılan bir veya daha fazla ardışık düzen dizisidir. AND ve OR listeleri sol ilişkilendirme ile yürütülür. Bir AND listesi şu şekildedir:

command1 && command2

command2, ancak ve ancak command1 sıfır (başarılı) bir çıkış durumu döndürürse yürütülür.

OR listesi şu şekildedir:

command1 || command2

command2, ancak ve ancak command1 sıfır olmayan bir çıkış durumu döndürürse yürütülür. AND ve OR listelerinin dönüş durumu, listede çalıştırılan son komutun çıkış durumudur.

Bileşik Komutlar

Bir bileşik komut aşağıdakilerden biridir. Çoğu durumda, bir komutun açıklamasındaki bir liste, komutun geri kalanından bir veya daha fazla yeni satırla ayrılabilir ve ardından noktalı virgül yerine yeni bir satır gelebilir.

(list)

liste, bir alt kabuk ortamında yürütülür (aşağıdaki KOMUT YÜRÜTME ORTAMI'na bakın). Kabuk ortamını etkileyen değişken atamaları ve yerleşik komutlar, komut tamamlandıktan sonra yürürlükte kalmaz. Dönüş durumu, listenin çıkış durumudur.

{ list; }

liste basitçe geçerli kabuk ortamında yürütülür. liste yeni satır veya noktalı virgülle sonlandırılmalıdır. Bu bir grup komutu olarak bilinir. Dönüş durumu, list'in çıkış durumudur. ( ve ) meta karakterlerinden farklı olarak, { ve } öğelerinin ayrılmış sözcükler olduğunu unutmayın. ve ayrılmış bir kelimenin tanınmasına izin verildiği yerde gerçekleşmelidir. Sözcük kesilmesine neden olmadıkları için, liste'den boşluk veya başka bir kabuk meta karakteriyle ayrılmaları gerekir.

((expression))

ifade, aşağıda ARITMETİK DEĞERLENDİRME altında açıklanan kurallara göre değerlendirilir. İfadenin değeri sıfır değilse dönüş durumu 0'dır; aksi halde dönüş durumu 1'dir. Bu tam olarak let "ifade" ile eşdeğerdir.

[[ expression ]]

ifade koşullu ifadesinin değerlendirilmesine bağlı olarak 0 veya 1 durumunu döndürün. İfadeler, aşağıda KOŞULLU İFADELER altında açıklanan birincil ifadelerden oluşur. [[ ve ]] arasındaki sözcüklerde sözcük bölme ve yol adı genişletme yapılmaz; tilde genişletme, parametre ve değişken genişletme, aritmetik genişletme, komut değiştirme, işlem değiştirme ve alıntı kaldırma gerçekleştirilir. -f gibi koşullu işleçlerin birincil işleçler olarak tanınması için tırnak içine alınmaması gerekir.

[[ ile kullanıldığında, < ve > işleçleri, geçerli yerel ayarı kullanarak sözlüksel olarak sıralar.

== ve != operatörleri kullanıldığında, operatörün sağındaki dize bir kalıp olarak kabul edilir ve aşağıda Pattern altında açıklanan kurallara göre eşleştirilir. Eşleştirme, sanki extglob kabuk seçeneği etkinleştirilmiş gibi. = operatörü == ile eşdeğerdir. nocasematch kabuk seçeneği etkinleştirilirse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir. Dize kalıpla eşleşiyorsa (==) veya eşleşmiyorsa (!=) dönüş değeri 0, aksi takdirde 1'dir. Alıntılanan kısmı bir dizi olarak eşleşmeye zorlamak için modelin herhangi bir kısmı alıntılanabilir.

== ve != ile aynı önceliğe sahip ek bir ikili operatör olan =~ kullanılabilir. Kullanıldığında, operatörün sağındaki dize bir POSIX genişletilmiş düzenli ifadesi olarak kabul edilir ve buna göre eşleştirilir (genellikle regcomp ve regexec arabirimleri kullanılarak) >normal ifade(3)). Dize kalıpla eşleşirse dönüş değeri 0, aksi takdirde 1'dir. Normal ifade sözdizimsel olarak yanlışsa, koşullu ifadenin dönüş değeri 2'dir. nocasematch kabuk seçeneği etkinleştirilirse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir. Alıntılanan kısmı bir dizi olarak eşleşmeye zorlamak için modelin herhangi bir kısmı alıntılanabilir. Normal ifadelerdeki köşeli ayraçlı ifadeler dikkatli bir şekilde ele alınmalıdır, çünkü normal alıntı karakterleri köşeli parantezler arasında anlamlarını kaybeder. Kalıp bir kabuk değişkeninde saklanıyorsa, değişken genişletmeyi alıntılamak tüm kalıbı bir dizge olarak eşleşmeye zorlar.

Dizinin herhangi bir bölümüyle eşleşirse desen eşleşir. Tüm dizeyle eşleşmeye zorlamak için ^ ve $ normal ifade işleçlerini kullanarak kalıbı tutturun. BASH_REMATCH dizi değişkeni, dizenin hangi bölümlerinin kalıpla eşleştiğini kaydeder. Dizin 0 olan BASH_REMATCH öğesi, dizenin normal ifadenin tamamıyla eşleşen kısmını içerir. Normal ifade içindeki parantez içindeki alt ifadelerle eşleşen alt dizeler, kalan BASH_REMATCH dizinlerine kaydedilir. n dizinli BASH_REMATCH öğesi, dizenin ninci parantezli alt ifadeyle eşleşen kısmıdır.

İfadeler, azalan öncelik sırasına göre listelenen aşağıdaki işleçler kullanılarak birleştirilebilir:

( expression )

ifade değerini döndürür. Bu, operatörlerin normal önceliğini geçersiz kılmak için kullanılabilir.

! expression

ifade yanlışsa doğrudur.

expression1 && expression2

Hem ifade1 hem de ifade2 doğruysa doğrudur.

expression1 || expression2

ifade1 veya ifade2 doğruysa doğrudur.

ifade1 değeri dönüş değerini belirlemek için yeterliyse, && ve || operatörleri ifade2'yi değerlendirmez tüm koşullu ifadenin.

for name [ [ in [ word ... ] ] ; ] do list ; done

in'den sonraki kelimelerin listesi genişletilerek bir öğe listesi oluşturulur. name değişkeni sırayla bu listenin her elemanına atanır ve her seferinde liste çalıştırılır. in word atlanırsa, for komutu, ayarlanan her konum parametresi için list'i bir kez yürütür (bkz. PARAMETERS aşağıda). Dönüş durumu, yürütülen son komutun çıkış durumudur. in'den sonraki öğelerin genişletilmesi boş bir listeyle sonuçlanırsa, hiçbir komut yürütülmez ve dönüş durumu 0'dır.

for (( expr1 ; expr2 ; expr3 )) ; do list ; done

Öncelikle, ifade1 aritmetik ifadesi aşağıda ARITMETİK DEĞERLENDİRME başlığı altında açıklanan kurallara göre değerlendirilir. ifade2 aritmetik ifadesi daha sonra sıfır olarak değerlendirilene kadar tekrar tekrar değerlendirilir. ifade2 sıfır olmayan bir değer olarak her değerlendirildiğinde, liste yürütülür ve ifade3 aritmetik ifadesi değerlendirilir. Herhangi bir ifade atlanırsa, 1 olarak değerlendiriliyormuş gibi davranır. Döndürülen değer, liste içinde yürütülen son komutun çıkış durumudur veya ifadelerden herhangi biri geçersizse yanlıştır.

select name [ in word ] ; do list ; done

in'den sonraki kelimelerin listesi genişletilerek bir öğe listesi oluşturulur. Genişletilmiş sözcük grubu, her birinin önünde bir sayı olan standart hata üzerine yazdırılır. in word atlanırsa, konum parametreleri yazdırılır (aşağıdaki PARAMETRELER'e bakın). Ardından PS3 istemi görüntülenir ve standart girişten bir satır okunur. Satır, görüntülenen kelimelerden birine karşılık gelen bir sayıdan oluşuyorsa, name değeri o kelimeye ayarlanır. Satır boşsa, sözcükler ve bilgi istemi yeniden görüntülenir. EOF okunursa komut tamamlanır. Okunan diğer herhangi bir değer, name öğesinin null olarak ayarlanmasına neden olur. Okunan satır REPLY değişkenine kaydedilir. list, bir break komutu yürütülene kadar her seçimden sonra yürütülür. select'in çıkış durumu, liste'de yürütülen son komutun çıkış durumudur veya hiçbir komut yürütülmemişse sıfırdır.

case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

Bir case komutu önce kelime'yi genişletir ve ardından aşağıda Kalıp Eşleştirme altında açıklanan eşleştirme kurallarını kullanarak her bir kalıp ile eşleştirmeye çalışır. sözcük yaklaşık işareti genişletme, parametre ve değişken genişletme, aritmetik genişletme, komut değiştirme, işlem değiştirme ve alıntı kaldırma kullanılarak genişletilir. İncelenen her kalıp, tilde genişletme, parametre ve değişken genişletme, aritmetik genişletme, komut değiştirme ve işlem değiştirme kullanılarak genişletilir. nocasematch kabuk seçeneği etkinleştirilirse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir. Bir eşleşme bulunduğunda, karşılık gelen liste yürütülür. ;; operatörü kullanılırsa, ilk kalıp eşleşmesinden sonra sonraki eşleştirmeler denenmez. ; yerine ;& kullanılması, yürütmenin bir sonraki kalıp grubuyla ilişkili liste ile devam etmesine neden olur. ;; yerine ;;& kullanılması, kabuğun varsa ifadedeki bir sonraki kalıp listesini test etmesine ve ilişkili herhangi bir listeyi başarılı bir eşleşme üzerinde yürütmesine neden olarak, kalıp listesi eşleşmemiş gibi case ifadesinin yürütülmesine devam eder. Hiçbir kalıp eşleşmezse çıkış durumu sıfırdır. Aksi takdirde, liste içinde yürütülen son komutun çıkış durumudur.

if list; then list; [ elif list; then list; ] ... [ else list; ] fi

if listesi yürütülür. Çıkış durumu sıfır ise then listesi yürütülür. Aksi takdirde, her bir elif liste sırayla yürütülür ve çıkış durumu sıfır ise karşılık gelen sonra liste yürütülür ve komut tamamlanır. Aksi takdirde, varsa else listesi yürütülür. Çıkış durumu, yürütülen son komutun çıkış durumudur veya hiçbir koşul doğru olarak test edilmediyse sıfırdır.

while list-1; do list-2; done
until list-1; do list-2; done

list-1 listesindeki son komut sıfır çıkış durumu döndürdüğü sürece, while komutu list-2 listesini sürekli olarak yürütür. until komutu, while komutuyla aynıdır, tek fark, testin olumsuzlanmasıdır: list-2, listedeki son komut olduğu sürece yürütülür. list-1 sıfır olmayan bir çıkış durumu döndürür. while ve until komutlarının çıkış durumu, list-2'de yürütülen son komutun çıkış durumudur veya hiçbiri yürütülmediyse sıfırdır. .

yardımcı işlemler

Bir coprocess, önünde coproc ayrılmış sözcük bulunan bir kabuk komutudur. Bir yardımcı işlem, sanki komut & kontrol işleciyle sonlandırılmış gibi, yürüten kabuk ile yardımcı işlem arasında kurulan iki yönlü bir boru ile bir alt kabukta eşzamansız olarak yürütülür.

Bir yardımcı işlemin biçimi şöyledir:

coproc [NAME] command [redirections]

Bu, NAME adlı bir yardımcı işlem oluşturur. NAME sağlanmazsa, varsayılan ad COPROC olur. komut bir basit komutsa NAME sağlanmamalıdır (yukarıya bakın); aksi takdirde, basit komutun ilk sözcüğü olarak yorumlanır. Birlikte işlem yürütüldüğünde, kabuk, yürütülen kabuk bağlamında NAME adlı bir dizi değişkeni (aşağıdaki Diziler'e bakın) oluşturur. command öğesinin standart çıktısı, bir kanal aracılığıyla yürütme kabuğundaki bir dosya tanıtıcıya bağlanır ve bu dosya tanımlayıcı NAME[0] öğesine atanır. command'in standart girişi, yürütme kabuğundaki bir dosya tanıtıcıya bir kanal aracılığıyla bağlanır ve bu dosya tanımlayıcı NAME[1]'e atanır. Bu boru, komut tarafından belirtilen herhangi bir yeniden yönlendirmeden önce kurulur (aşağıdaki YÖNLENDİRME'ye bakın). Dosya tanımlayıcıları, standart sözcük genişletmeleri kullanılarak kabuk komutları ve yeniden yönlendirmeler için bağımsız değişkenler olarak kullanılabilir. Komut yürütmek ve ikameleri işlemek için oluşturulanların dışında, dosya tanımlayıcıları alt kabuklarda mevcut değildir. Ortak işlemi yürütmek için oluşturulan kabuğun işlem kimliği, NAME_PID değişkeninin değeri olarak mevcuttur. wait yerleşik komutu, yardımcı işlemin sona ermesini beklemek için kullanılabilir.

Birlikte işlem eşzamansız bir komut olarak oluşturulduğundan, coproc komutu her zaman başarılı sonuçlar verir. Bir yardımcı işlemin dönüş durumu, komut'un çıkış durumudur.

Kabuk İşlev Tanımları

Bir kabuk işlevi, basit bir komut gibi çağrılan ve yeni bir konumsal parametreler kümesiyle bileşik bir komut yürüten bir nesnedir. Kabuk işlevleri aşağıdaki gibi bildirilir:

fname () compound-command [redirection]
function fname [()] compound-command [redirection]

Bu, fname adlı bir işlevi tanımlar. Ayrılmış işlev sözcüğü isteğe bağlıdır. işlev ayrılmış sözcük sağlanmışsa, parantezler isteğe bağlıdır. İşlevin gövdesi, compound-command bileşik komutudur (yukarıdaki Bileşik Komutlar'a bakın). Bu komut genellikle { ve } arasındaki komutların bir listesi olur, ancak bir istisna dışında yukarıdaki Bileşik Komutlar altında listelenen herhangi bir komut olabilir: işlev ayrılmış sözcüğü kullanılır, ancak parantezler sağlanmaz, parantezler gerekir. compound-command, basit bir komutun adı olarak fname belirtildiğinde yürütülür. posix modunda iken, fname geçerli bir kabuk name olmalıdır ve POSIX özel yerleşiklerinden birinin adı olmayabilir. Varsayılan modda, bir işlev adı, $ içermeyen herhangi bir tırnak içine alınmamış kabuk sözcüğü olabilir. Bir işlev tanımlandığında belirtilen yeniden yönlendirmeler (aşağıdaki YÖNLENDİRME'ye bakın), işlev yürütüldüğünde gerçekleştirilir. Bir işlev tanımının çıkış durumu, bir sözdizimi hatası oluşmadıkça veya aynı ada sahip salt okunur bir işlev zaten mevcut olmadıkça sıfırdır. Yürütüldüğünde, bir işlevin çıkış durumu, gövdede yürütülen son komutun çıkış durumudur. (Aşağıdaki FONKSİYONLAR'a bakın.)

YORUMLAR

Etkileşimli olmayan bir kabukta veya shopt yerleşik yapısı için interactive_comments seçeneğinin etkinleştirildiği etkileşimli bir kabukta (aşağıdaki SHELL BUILTIN COMMANDS'a bakın) , # ile başlayan bir kelime, o kelimenin ve o satırda kalan tüm karakterlerin yok sayılmasına neden olur. interactive_comments seçeneği etkin olmayan etkileşimli bir kabuk, yorumlara izin vermez. Etkileşimli kabuklarda interactive_comments seçeneği varsayılan olarak açıktır.

ALINTI YAPMAK

Alıntılama, belirli karakterlerin veya kelimelerin özel anlamlarını kabuğa kaldırmak için kullanılır. Alıntılama, özel karakterler için özel muameleyi devre dışı bırakmak, ayrılmış sözcüklerin bu şekilde tanınmasını önlemek ve parametre genişletmeyi önlemek için kullanılabilir.

Yukarıda TANIMLAR altında listelenen meta karakterlerin her birinin kabuk için özel bir anlamı vardır ve kendisini temsil edecekse alıntılanmalıdır.

Komut geçmişi genişletme olanakları kullanılırken (aşağıdaki TARİH GENİŞLETME'ye bakın), önlemek için geçmiş genişletme karakteri, genellikle ! alıntılanmalıdır. tarih genişlemesi

Üç alıntı mekanizması vardır: kaçış karakteri, tek tırnak ve çift tırnak.

Tırnak içine alınmamış bir ters eğik çizgi (\), kaçış karakteridir. dışında, bir sonraki karakterin hazır bilgi değerini korur. Bir \<newline> çifti görünürse ve ters eğik çizginin kendisi tırnak içinde değilse, \<newline> satırın devamı olarak değerlendirilir (yani, giriş akışından kaldırılır ve etkili bir şekilde yoksayılır).

Karakterleri tek tırnak içine almak, tırnak içindeki her karakterin gerçek değerini korur. Önünde bir ters eğik çizgi olsa bile, tek tırnaklar arasında tek bir alıntı yapılmayabilir.

Karakterleri çift tırnak içine almak, $, `, \ ve geçmiş genişletme etkinleştirildiğinde ! dışında, tırnak içindeki tüm karakterlerin gerçek değerini korur. Kabuk posix modunda olduğunda, geçmiş genişletme etkinleştirildiğinde bile !'nin çift tırnak içinde özel bir anlamı yoktur. $ ve ` karakterleri özel anlamlarını çift tırnak içinde korurlar. Ters eğik çizgi, yalnızca ardından şu karakterlerden biri geldiğinde özel anlamını korur: $, `,  " , \ veya <newline>. Çift tırnak içinde, önüne ters eğik çizgi konularak alıntı yapılabilir. Etkinleştirilirse, çift tırnak içinde görünen ! ters eğik çizgi kullanılarak kaçılmadıkça geçmiş genişletme gerçekleştirilecektir. ! işaretinden önceki kaldırılmaz.

* ve @ özel parametreleri çift tırnak içindeyken özel anlam taşır (aşağıdaki PARAMETRELER'e bakın).

$'dize' biçimindeki sözcükler özel olarak ele alınır. Sözcük, ANSI C standardında belirtildiği gibi ters eğik çizgiden kaçan karakterler değiştirilerek dize olarak genişler. Varsa, ters eğik çizgi kaçış dizilerinin kodu aşağıdaki gibi çözülür:

\a

uyarı (zil)

\b

geri boşluk

\e
\E

bir kaçış karakteri

\f

form besleme

\n

Yeni hat

\r

satırbaşı

\t

yatay sekme

\v

dikey sekme

\\

ters eğik çizgi

\'

tek alıntı

\"

çift alıntı

\?

soru işareti

\nnn

değeri nnn sekizlik değeri olan sekiz bitlik karakter (bir ila üç sekizli basamak)

\xHH

değeri HH onaltılık değeri olan sekiz bitlik karakter (bir veya iki onaltılık basamak)

\uHHHH

değeri HHHH onaltılık değeri olan Unicode (ISO/IEC 10646) karakteri (bir ila dört onaltılık basamak)

\UHHHHHHHH

değeri onaltılık değer HHHHHHHH olan Unicode (ISO/IEC 10646) karakteri (bir ila sekiz onaltılık basamak)

\cx

bir kontrol-x karakteri

Genişletilmiş sonuç, sanki dolar işareti yokmuş gibi tek tırnak içine alınır.

Başında dolar işareti bulunan çift tırnaklı bir dize ($"string"), dizenin geçerli yerel ayara göre çevrilmesine neden olur. gettext altyapısı, LC_MESSAGES ve TEXTDOMAIN kabuk değişkenlerini kullanarak mesaj kataloğu araması ve çevirisini gerçekleştirir. Geçerli yerel ayar C veya POSIX ise veya herhangi bir çeviri yoksa dolar işareti yok sayılır. Dize çevrilir ve değiştirilirse, değiştirme çift tırnak içine alınır.

PARAMETRELER

Bir parametre, değerleri depolayan bir varlıktır. Bir ad, bir sayı veya aşağıda Özel Parametreler altında listelenen özel karakterlerden biri olabilir. Bir değişken, bir ad ile gösterilen bir parametredir. Bir değişkenin bir değeri ve sıfır veya daha fazla özniteliği vardır. Nitelikler, yerleşik declare komutu kullanılarak atanır (aşağıdaki SHELL BUILTIN COMMANDS bölümündeki declare'a bakın).

Bir değer atanmışsa bir parametre ayarlanır. Boş dize geçerli bir değerdir. Bir değişken ayarlandıktan sonra, yalnızca yerleşik unset komutu kullanılarak ayarı kaldırılabilir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

Bir değişken, formdaki bir ifadeyle atanabilir

name=[value]

değer verilmezse, değişkene boş dizge atanır. Tüm değerler tilde genişletme, parametre ve değişken genişletme, komut değiştirme, aritmetik genişletme ve alıntı kaldırma işlemlerine tabi tutulur (aşağıdaki EXPANSION'a bakın). Değişkenin integer özniteliği ayarlanmışsa, $ ((...)) genişletme kullanılmasa bile değer aritmetik bir ifade olarak değerlendirilir (bkz. Aritmetik Genişletme aşağıda). Aşağıda Özel Parametreler altında açıklanan "$@" dışında kelime bölme yapılmaz. Yol adı genişletmesi gerçekleştirilmez. Atama ifadeleri ayrıca alias, declare, typeset, export, readonly< için bağımsız değişkenler olarak görünebilir. ve yerel yerleşik komutlar (bildirim komutları). posix modundayken, bu yerleşikler bir komutta command yerleşiğinin bir veya daha fazla örneğinden sonra görünebilir ve bu atama ifadesi özelliklerini koruyabilir.

Bir atama ifadesinin bir kabuk değişkenine veya dizi dizinine bir değer atadığı bağlamda, değişkenin önceki değerine veya ona ekleme yapmak için += operatörü kullanılabilir. Bu, atama deyimlerini (declaration komutları) kabul eden declare gibi yerleşik komutlara yönelik bağımsız değişkenleri içerir. integer özniteliğinin ayarlandığı bir değişkene += uygulandığında, değer aritmetik bir ifade olarak değerlendirilir ve yine değerlendirilen değişkenin geçerli değerine eklenir. Bileşik atama kullanılarak bir dizi değişkenine += uygulandığında (aşağıdaki Diziler'e bakın), değişkenin değeri ayarlanmaz (= kullanılırken olduğu gibi) ve yeni değerler, dizinin maksimum dizininden (dizine alınmış diziler için) birden büyük bir değerden başlayarak diziye eklenir veya bir ilişkisel dizide ek anahtar-değer çiftleri olarak eklenir. Dize değerli bir değişkene uygulandığında, değer genişletilir ve değişkenin değerine eklenir.

Bir nameref veya başka bir değişkene referans oluşturmak için declare veya local yerleşik komutlarına -n seçeneği kullanılarak bir değişkene nameref özniteliği atanabilir (aşağıdaki declare ve local açıklamalarına bakın). Bu, değişkenlerin dolaylı olarak manipüle edilmesine izin verir. nameref değişkenine başvuru yapıldığında, atandığında, ayarlanmadığında veya öznitelikleri değiştirildiğinde (nameref özniteliğinin kendisini kullanmak veya değiştirmek dışında), işlem aslında nameref değişkeninin değeri tarafından belirtilen değişken üzerinde gerçekleştirilir. Bir nameref, adı işleve argüman olarak iletilen bir değişkene başvurmak için kabuk işlevlerinde yaygın olarak kullanılır. Örneğin, bir kabuk işlevine ilk bağımsız değişkeni olarak bir değişken adı iletilirse, çalışan

declare -n ref=$1

işlevin içinde, değeri ilk bağımsız değişken olarak iletilen değişken adı olan bir nameref değişkeni ref oluşturur. ref'e yapılan başvurular ve atamalar ile özniteliklerinde yapılan değişiklikler, adı $1 olarak iletilen değişkene yapılan başvurular, atamalar ve öznitelik değişiklikleri olarak ele alınır. Bir for döngüsündeki kontrol değişkeni nameref özniteliğine sahipse, sözcük listesi kabuk değişkenlerinin bir listesi olabilir ve döngü yürütüldüğünde sırayla listedeki her sözcük için bir ad referansı oluşturulur. Dizi değişkenlerine nameref özelliği verilemez. Ancak, nameref değişkenleri, dizi değişkenlerine ve alt simgeli dizi değişkenlerine başvurabilir. Ad referansları, unset yerleşikine -n seçeneği kullanılarak kaldırılabilir. Aksi takdirde, argüman olarak bir nameref değişkeninin adıyla unset yürütülürse, nameref değişkeninin referans aldığı değişken unset olur.

Konumsal Parametreler

Bir konum parametresi, tek basamaklı 0 dışında bir veya daha fazla basamakla gösterilen bir parametredir. Konum parametreleri, kabuk çağrıldığında kabuğun bağımsız değişkenlerinden atanır ve yerleşik set komutu kullanılarak yeniden atanabilir. Konumsal parametreler, atama ifadeleriyle atanamaz. Bir kabuk işlevi yürütüldüğünde konumsal parametreler geçici olarak değiştirilir (aşağıdaki FONKSİYONLAR'a bakın).

Birden fazla basamaktan oluşan bir konum parametresi genişletildiğinde, parantez içine alınmalıdır (aşağıdaki EXPANSION'a bakın).

Özel Parametreler

Kabuk, birkaç parametreyi özel olarak ele alır. Bu parametrelere yalnızca başvurulabilir; onlara atama yapılamaz.

*

Birden başlayarak konumsal parametrelere genişler. Genişletme çift tırnak içinde olmadığında, her konum parametresi ayrı bir kelimeye genişler. Gerçekleştirildiği bağlamlarda, bu sözcükler daha fazla sözcük ayırmaya ve yol adı genişletmeye tabidir. Genişletme çift tırnak içinde gerçekleştiğinde, her parametrenin değeri IFS özel değişkeninin ilk karakteriyle ayrılmış olarak tek bir kelimeye genişler. Yani, "$*", "$1c$2c'ye eşittir ...", burada c, IFS değişkeninin değerinin ilk karakteridir. IFS ayarlanmamışsa, parametreler boşluklarla ayrılır. IFS null ise, parametreler araya ayırıcılar girmeden birleştirilir.

@

Birden başlayarak konumsal parametrelere genişler. Sözcük bölmenin gerçekleştirildiği bağlamlarda bu, her bir konumsal parametreyi ayrı bir sözcüğe genişletir; çift tırnak içinde değilse, bu kelimeler kelime bölünmesine tabidir. Sözcük ayırmanın gerçekleştirilmediği bağlamlarda bu, her bir konumsal parametrenin bir boşlukla ayrıldığı tek bir sözcük olacak şekilde genişler. Genişletme çift tırnak içinde gerçekleştiğinde, her parametre ayrı bir kelimeye genişler. Yani, "$@", "$1" "$2" ile eşdeğerdir ... Çift tırnaklı açılım bir kelime içinde gerçekleşirse, ilk parametrenin açılımı orijinal kelimenin başlangıç kısmı ile birleştirilir ve son parametrenin açılımı orijinal kelimenin son kısmı ile birleştirilir. Konumsal parametreler olmadığında, "$@" ve $@ sıfıra genişler (yani, kaldırılırlar).

#

Ondalık olarak konumsal parametrelerin sayısına genişler.

?

En son yürütülen ön plan işlem hattının çıkış durumuna genişler.

-

Çağırma sırasında set yerleşik komutuyla veya kabuğun kendisi tarafından ayarlananlarla (-i seçeneği gibi) belirtilen geçerli seçenek bayraklarına genişler.

$

Kabuğun işlem kimliğine genişler. Bir() alt kabuğunda, alt kabuğa değil, geçerli kabuğun işlem kimliğine genişler.

!

İster eşzamansız bir komut olarak ister bg yerleşik kullanılarak yürütülsün (aşağıdaki İŞ KONTROLÜ'ne bakın), arka plana en son yerleştirilen işin işlem kimliğine genişler.

0

Kabuk veya kabuk betiğinin adına genişler. Bu, kabuk başlatma sırasında ayarlanır. bash bir komut dosyasıyla çağrılırsa, $0 o dosyanın adına ayarlanır. bash, -c seçeneğiyle başlatılırsa, $0, yürütülecek dizeden sonraki ilk bağımsız değişkene (varsa) ayarlanır. . Aksi takdirde, sıfır bağımsız değişkeni tarafından verildiği gibi, bash'ı çağırmak için kullanılan dosya adına ayarlanır.

Kabuk Değişkenleri

Aşağıdaki değişkenler kabuk tarafından ayarlanır:

_

Kabuk başlangıcında, ortam veya bağımsız değişken listesinde geçirildiği gibi yürütülen kabuk veya kabuk betiğini çağırmak için kullanılan yol adına ayarlayın. Ardından, genişletmeden sonra ön planda yürütülen önceki basit komuta son bağımsız değişkene genişler. Ayrıca yürütülen ve o komuta verilen ortama yerleştirilen her komutu çağırmak için kullanılan tam yol adına da ayarlayın. Postayı kontrol ederken, bu parametre o anda kontrol edilmekte olan posta dosyasının adını tutar.

BASH

Bu bash örneğini çağırmak için kullanılan tam dosya adına genişler.

BASHOPTS

Etkin kabuk seçeneklerinin iki nokta üst üste ayrılmış listesi. Listedeki her sözcük, shopt yerleşik komutundaki -s seçeneği için geçerli bir bağımsız değişkendir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). BASHOPTS'ta görünen seçenekler, shopt tarafından açık olarak bildirilen seçeneklerdir. bash başlatıldığında bu değişken ortamdaysa, herhangi bir başlangıç dosyası okunmadan önce listedeki her bir kabuk seçeneği etkinleştirilir. Bu değişken salt okunurdur.

BASHPID

Geçerli bash işleminin işlem kimliğine genişler. Bu, bash'ın yeniden başlatılmasını gerektirmeyen alt kabuklar gibi belirli koşullar altında $$'dan farklıdır. BASHPID'e yapılan atamaların hiçbir etkisi yoktur. BASHPID ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_ALIASES

Üyeleri, alias yerleşiği tarafından sağlanan takma adların dahili listesine karşılık gelen bir ilişkisel dizi değişkeni. Bu diziye eklenen öğeler takma ad listesinde görünür; ancak, dizi öğelerinin ayarının kaldırılması şu anda takma adların takma ad listesinden kaldırılmasına neden olmuyor. BASH_ALIASES ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_ARGC

Değerleri, geçerli bash yürütme çağrı yığınının her çerçevesindeki parametre sayısı olan bir dizi değişkeni. Geçerli alt programa (kabuk işlevi veya . veya kaynak ile yürütülen komut dosyası) ilişkin parametre sayısı, yığının en üstünde yer alır. Bir alt program yürütüldüğünde, iletilen parametrelerin sayısı BASH_ARGC'ye aktarılır. Kabuk BASH_ARGC'yi yalnızca genişletilmiş hata ayıklama modundayken ayarlar (aşağıdaki shopt yerleşik yapısındaki extdebug seçeneğinin açıklamasına bakın). Kabuk bir betiği yürütmeye başladıktan sonra extdebug'u ayarlamak veya extdebug ayarlanmadığında bu değişkene başvurmak tutarsız değerlere neden olabilir.

BASH_ARGV

Geçerli bash yürütme çağrı yığınındaki tüm parametreleri içeren bir dizi değişkeni. Son alt program çağrısının son parametresi yığının en üstündedir; ilk aramanın ilk parametresi en alttadır. Bir alt program yürütüldüğünde, sağlanan parametreler BASH_ARGV'ye aktarılır. Kabuk BASH_ARGV'yi yalnızca genişletilmiş hata ayıklama modundayken ayarlar (aşağıdaki shopt yerleşik yapısındaki extdebug seçeneğinin açıklamasına bakın). Kabuk bir betiği yürütmeye başladıktan sonra extdebug'u ayarlamak veya extdebug ayarlanmadığında bu değişkene başvurmak tutarsız değerlere neden olabilir.

BASH_ARGV0

Referans verildiğinde, bu değişken kabuk veya kabuk betiğinin adına genişler ($0 ile aynıdır; yukarıdaki özel parametre 0'ın açıklamasına bakın). BASH_ARGV0'a atama, atanan değerin $0'a da atanmasına neden olur. BASH_ARGV0 ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_CMDS

Üyeleri, hash yerleşiği tarafından sağlanan dahili karma komut tablosuna karşılık gelen bir ilişkisel dizi değişkeni. Bu diziye eklenen öğeler, hash tablosunda görünür; ancak, dizi öğelerinin ayarının kaldırılması şu anda komut adlarının karma tablosundan kaldırılmasına neden olmuyor. BASH_CMDS ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_COMMAND

Şu anda yürütülmekte olan veya yürütülmek üzere olan komut, kabuk bir tuzağın sonucu olarak bir komutu yürütmüyorsa, bu durumda komut, tuzak anında yürütülen komuttur. BASH_COMMAND ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_EXECUTION_STRING

-c çağırma seçeneğinin komut bağımsız değişkeni.

BASH_LINENO

Üyeleri, karşılık gelen her FUNCNAME üyesinin çağrıldığı kaynak dosyalardaki satır numaraları olan bir dizi değişkeni. $ {BASH_LINENO[$i]}, $ {BASH_SOURCE[$i+1]}) kaynak dosyasındaki $ {FUNCNAME[$i]} öğesinin çağrıldığı (veya $ {BASH_LINENO[$) satır numarasıdır i-1]}, başka bir kabuk işlevi içinde referans verilmişse). Geçerli satır numarasını almak için LINENO'yu kullanın.

BASH_LOADABLES_PATH

Kabuğun enable komutu tarafından belirtilen dinamik olarak yüklenebilir yerleşikleri aradığı, iki nokta üst üste ayrılmış bir dizin listesi.

BASH_REMATCH

Üyeleri =~ ikili işleci tarafından [[ koşullu komutuna atanan bir dizi değişkeni. Dizini 0 olan öğe, dizgenin normal ifadenin tamamıyla eşleşen kısmıdır. n dizinli öğe, dizenin nth parantezli alt ifadeyle eşleşen kısmıdır.

BASH_SOURCE

Üyeleri, FUNCNAME dizi değişkeninde karşılık gelen kabuk işlev adlarının tanımlandığı kaynak dosya adları olan bir dizi değişkeni. $ {FUNCNAME[$i]} kabuk işlevi, $ {BASH_SOURCE[ dosyasında tanımlanmıştır $i]} ve $ {BASH_SOURCE[$i+1 kaynağından arandı ]}.

BASH_SUBSHELL

Kabuk, o ortamda yürütülmeye başladığında, her bir alt kabuk veya alt kabuk ortamında bir artırılır. Başlangıç değeri 0'dır. BASH_SUBSHELL ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

BASH_VERSINFO

Üyeleri bu bash örneği için sürüm bilgilerini tutan salt okunur bir dizi değişkeni. Dizi üyelerine atanan değerler aşağıdaki gibidir:

BASH_VERSINFO[0]

Ana sürüm numarası (sürüm).

BASH_VERSINFO[1]

Alt sürüm numarası (sürüm).

BASH_VERSINFO[2]

Yama seviyesi.

BASH_VERSINFO[3]

Derleme sürümü.

BASH_VERSINFO[4]

Sürüm durumu (ör. beta1).

BASH_VERSINFO[5]

MACHTYPE değeri.

BASH_VERSION

Bu bash örneğinin sürümünü açıklayan bir dizeye genişler.

COMP_CWORD

Geçerli imleç konumunu içeren kelimenin $ {COMP_WORDS} dizinine dizin. Bu değişken, yalnızca programlanabilir tamamlama araçları tarafından çağrılan kabuk işlevlerinde mevcuttur (aşağıdaki Programlanabilir Tamamlama'ya bakın).

COMP_KEY

Geçerli tamamlama işlevini çağırmak için kullanılan tuş (veya bir tuş dizisinin son tuşu).

COMP_LINE

Geçerli komut satırı. Bu değişken, yalnızca programlanabilir tamamlama araçları tarafından çağrılan kabuk işlevlerinde ve harici komutlarda mevcuttur (aşağıdaki Programlanabilir Tamamlama'ya bakın).

COMP_POINT

Geçerli komutun başlangıcına göre geçerli imleç konumunun dizini. Geçerli imleç konumu geçerli komutun sonundaysa, bu değişkenin değeri $ {#COMP_LINE} değerine eşittir. Bu değişken, yalnızca programlanabilir tamamlama araçları tarafından çağrılan kabuk işlevlerinde ve harici komutlarda mevcuttur (aşağıdaki Programlanabilir Tamamlama'ya bakın).

COMP_TYPE

Bir tamamlama işlevinin çağrılmasına neden olan tamamlama türüne karşılık gelen bir tamsayı değerine ayarlayın: normal tamamlama için TAB, birbirini izleyen sekmelerden sonra tamamlamaları listelemek için ?, kısmi sözcük tamamlama alternatiflerini listelemek için !, sözcük değiştirilmemişse tamamlamaları listelemek için @ veya menü tamamlama için %. Bu değişken, yalnızca programlanabilir tamamlama araçları tarafından çağrılan kabuk işlevlerinde ve harici komutlarda mevcuttur (aşağıdaki Programlanabilir Tamamlama'ya bakın).

COMP_WORDBREAKS

readline kitaplığının sözcük tamamlama gerçekleştirirken sözcük ayırıcılar olarak ele aldığı karakter kümesi. COMP_WORDBREAKS ayarlanmazsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

COMP_WORDS

Geçerli komut satırındaki tek tek sözcüklerden oluşan bir dizi değişkeni (aşağıdaki Diziler'e bakın). Satır, yukarıda açıklandığı gibi COMP_WORDBREAKS kullanılarak readline'ın böleceği şekilde kelimelere bölünür. Bu değişken, yalnızca programlanabilir tamamlama araçları tarafından çağrılan kabuk işlevlerinde mevcuttur (aşağıdaki Programlanabilir Tamamlama'ya bakın).

COPROC

Adsız bir ortak süreçten çıkış ve giriş için dosya tanımlayıcılarını tutmak üzere oluşturulmuş bir dizi değişkeni (aşağıdaki Diziler'e bakın) (yukarıdaki Birlikte İşlemler'e bakın).

DIRSTACK

Dizin yığınının geçerli içeriğini içeren bir dizi değişkeni (aşağıdaki Diziler'e bakın). Dizinler, dirs yerleşiği tarafından görüntülendikleri sırayla yığında görünür. Bu dizi değişkeninin üyelerine atama, zaten yığında bulunan dizinleri değiştirmek için kullanılabilir, ancak dizin eklemek ve kaldırmak için pushd ve popd yerleşikleri kullanılmalıdır. Bu değişkene atama mevcut dizini değiştirmeyecektir. DIRSTACK ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

EPOCHREALTIME

Bu parametreye her referans verildiğinde, Unix Epoch'tan bu yana geçen saniye sayısına (bkz. zaman(3)) mikro saniye ayrıntı düzeyine sahip bir kayan nokta değeri olarak genişler. EPOCHREALTIME'a yapılan atamalar dikkate alınmaz. EPOCHREALTIME ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

EPOCHSECONDS

Bu parametreye her referans verildiğinde, Unix Epoch'tan bu yana geçen saniye sayısına genişler (bkz. zaman(3)). EPOCHSECONDS için yapılan atamalar yoksayılır. EPOCHSECONDS ayarlanmaz ise, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

EUID

Kabuk başlangıcında başlatılan geçerli kullanıcının etkin kullanıcı kimliğine genişler. Bu değişken salt okunurdur.

FUNCNAME

Şu anda yürütme çağrı yığınında bulunan tüm kabuk işlevlerinin adlarını içeren bir dizi değişkeni. Dizini 0 olan öğe, şu anda yürütülen herhangi bir kabuk işlevinin adıdır. En alttaki öğe (en yüksek dizine sahip olan) "ana" dır. Bu değişken yalnızca bir kabuk işlevi yürütülürken bulunur. FUNCNAME işlevine yapılan atamaların hiçbir etkisi yoktur. FUNCNAME ayarlanmaz ise, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

Bu değişken, BASH_LINENO ve BASH_SOURCE ile kullanılabilir. FUNCNAME öğesinin her öğesinin, çağrı yığınını açıklamak için BASH_LINENO ve BASH_SOURCE içinde karşılık gelen öğeleri vardır. Örneğin, $ {FUNCNAME[$i]}, $ {BASH_LINENO[$i]} satır numaralı $ {BASH_SOURCE[$i+1]} dosyasından çağrıldı. Caller yerleşiği, bu bilgiyi kullanarak geçerli çağrı yığınını görüntüler.

GROUPS

Geçerli kullanıcının üyesi olduğu grupların listesini içeren bir dizi değişkeni. GROUPS gruplarına yapılan atamaların hiçbir etkisi yoktur. GROUPS ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

HISTCMD

Geçerli komutun geçmiş numarası veya geçmiş listesindeki dizin. HISTCMD'ye yapılan atamalar dikkate alınmaz. HISTCMD ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

HOSTNAME

Geçerli ana bilgisayarın adına otomatik olarak ayarlayın.

HOSTTYPE

bash'ın yürütüldüğü makinenin türünü benzersiz şekilde tanımlayan bir dizeye otomatik olarak ayarlanır. Varsayılan, sisteme bağlıdır.

LINENO

Bu parametreye her başvurulduğunda, kabuk, bir komut dosyası veya işlev içinde geçerli sıralı satır numarasını (1'den başlayarak) temsil eden bir ondalık sayının yerine geçer. Bir komut dosyasında veya işlevde olmadığında, değiştirilen değerin anlamlı olduğu garanti edilmez. LINENO ayarlanmaz ise, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

MACHTYPE

Standart GNU cpu-company-system biçiminde, bash'ın üzerinde çalıştığı sistem türünü tam olarak tanımlayan bir dizeye otomatik olarak ayarlanır. Varsayılan, sisteme bağlıdır.

MAPFILE

Değişken adı sağlanmadığında mapfile yerleşik tarafından okunan metni tutmak için oluşturulmuş bir dizi değişkeni (aşağıdaki Diziler'e bakın).

OLDPWD

cd komutu tarafından ayarlanan önceki çalışma dizini.

OPTARG

getopts yerleşik komutu tarafından işlenen son seçenek bağımsız değişkeninin değeri (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

OPTIND

getopts yerleşik komutu tarafından işlenecek bir sonraki bağımsız değişkenin dizini (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

OSTYPE

bash'ın üzerinde çalıştığı işletim sistemini tanımlayan bir dizeye otomatik olarak ayarlanır. Varsayılan, sisteme bağlıdır.

PIPESTATUS

En son yürütülen ön plan işlem hattındaki (yalnızca tek bir komut içerebilir) işlemlerden çıkış durumu değerlerinin bir listesini içeren bir dizi değişkeni (aşağıdaki Diziler'e bakın).

PPID

Kabuğun ebeveyninin işlem kimliği. Bu değişken salt okunurdur.

PWD

cd komutu tarafından ayarlanan mevcut çalışma dizini.

RANDOM

Bu parametreye her başvurulduğunda, 0 ile 32767 arasında rastgele bir tamsayıya genişler. RANDOM'a bir değer atamak, rastgele sayılar dizisini başlatır (tohumlar). RANDOM ayarlanmazsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

READLINE_LINE

"bind -x" ile kullanım için readline satır arabelleğinin içeriği (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

READLINE_MARK

"bind -x" ile kullanım için readline satır arabelleğindeki işaretin konumu (kaydedilmiş ekleme noktası) (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). Ekleme noktası ile işaret arasındaki karakterler genellikle bölge olarak adlandırılır.

READLINE_POINT

"bind -x" ile kullanım için readline satır arabelleğindeki ekleme noktasının konumu (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

REPLY

Herhangi bir bağımsız değişken sağlanmadığında read yerleşik komutu tarafından okunan giriş satırına ayarlayın.

SECONDS

Bu parametreye her başvurulduğunda, kabuk çağrısının döndürülmesinden bu yana geçen saniye sayısı. SECONDS değerine bir değer atanırsa, sonraki referanslarda döndürülen değer, atamadan bu yana geçen saniye sayısı artı atanan değerdir. Kabuk çağrısındaki saniye sayısı ve geçerli saat her zaman sistem saati sorgulanarak belirlenir. SECONDS ayarlanmazsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

SHELLOPTS

Etkin kabuk seçeneklerinin iki nokta üst üste ayrılmış listesi. Listedeki her sözcük, yerleşik komutun -o seçeneği için geçerli bir bağımsız değişkendir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). SHELLOPTS içinde görünen seçenekler, set -o tarafından on olarak bildirilen seçeneklerdir. bash başlatıldığında bu değişken ortamdaysa, herhangi bir başlangıç dosyası okunmadan önce listedeki her bir kabuk seçeneği etkinleştirilir. Bu değişken salt okunurdur.

SHLVL

Bir bash örneği her başlatıldığında bir artırılır.

SRANDOM

Bu değişken, kendisine her başvurulduğunda 32 bitlik sözde rasgele bir sayıya genişler. Rastgele sayı üreteci, /dev/urandom veya arc4random'u destekleyen sistemlerde doğrusal değildir, dolayısıyla döndürülen her sayının kendisinden önceki sayılarla hiçbir ilişkisi yoktur. Rastgele sayı üreteci tohumlanamaz, dolayısıyla bu değişkene yapılan atamaların hiçbir etkisi yoktur. SRANDOM ayarlanmamışsa, daha sonra sıfırlansa bile özel özelliklerini kaybeder.

UID

Kabuk başlangıcında başlatılan geçerli kullanıcının kullanıcı kimliğine genişler. Bu değişken salt okunurdur.

Aşağıdaki değişkenler kabuk tarafından kullanılır. Bazı durumlarda, bash bir değişkene varsayılan bir değer atar; bu durumlar aşağıda belirtilmiştir.

BASH_COMPAT

Değer, kabuğun uyumluluk seviyesini ayarlamak için kullanılır. Çeşitli uyumluluk düzeylerinin ve etkilerinin açıklaması için aşağıdaki SHELL UYUMLULUK MODU'na bakın. Değer, istenen uyumluluk düzeyine karşılık gelen bir ondalık sayı (ör. 4.2) veya bir tam sayı (ör. 42) olabilir. BASH_COMPAT ayarlanmamışsa veya boş dizeye ayarlanmışsa, geçerli sürüm için uyumluluk düzeyi varsayılan olarak ayarlanır. BASH_COMPAT, geçerli uyumluluk düzeylerinden biri olmayan bir değere ayarlanırsa, kabuk bir hata mesajı yazdırır ve uyumluluk düzeyini mevcut sürüm için varsayılan değere ayarlar. Geçerli değerler, aşağıda açıklanan uyumluluk seviyelerine karşılık gelir.

BSHELLUYUMLULUKMODU. Örneğin, 4.2 ve 42, compat42 shopt seçeneğine karşılık gelen ve uyumluluk düzeyini 42 olarak ayarlayan geçerli değerlerdir. Geçerli sürüm de geçerli bir değerdir.

BASH_ENV

Bu parametre, bash bir kabuk betiğini yürütürken ayarlanırsa, değeri, ~/.bashrc'de olduğu gibi, kabuğu başlatma komutlarını içeren bir dosya adı olarak yorumlanır. BASH_ENV değeri, dosya adı olarak yorumlanmadan önce parametre genişletme, komut değiştirme ve aritmetik genişletme işlemlerine tabi tutulur.

PATH sonuçtaki dosya adını aramak için kullanılmaz.

BASH_XTRACEFD

Geçerli bir dosya tanıtıcıya karşılık gelen bir tamsayıya ayarlanırsa, bash, set -x etkinleştirildiğinde oluşturulan izleme çıktısını o dosya tanıtıcıya yazar. BASH_XTRACEFD ayarlanmadığında veya yeni bir değer atandığında dosya tanımlayıcı kapatılır. BASH_XTRACEFD ayarının kaldırılması veya buna boş dize atanması, izleme çıktısının standart hataya gönderilmesine neden olur. BASH_XTRACEFD'yi 2'ye (standart hata dosya tanıtıcısı) ayarlamanın ve ardından ayarı kaldırmanın standart hatanın kapanmasına neden olacağını unutmayın.

CDPATH

cd komutu için arama yolu. Bu, kabuğun cd komutu tarafından belirtilen hedef dizinleri aradığı iki nokta üst üste ayrılmış bir dizin listesidir. Bir örnek değer ".:~:/usr" şeklindedir.

CHILD_MAX

Kabuğun hatırlaması için çıkılan alt durum değerlerinin sayısını ayarlayın. Bash, bu değerin POSIX tarafından zorunlu kılınan bir minimum değerin altına düşürülmesine izin vermez ve bunun geçemeyeceği bir maksimum değer (şu anda 8192) vardır. Minimum değer sisteme bağlıdır.

COLUMNS

Seçim listelerini yazdırırken terminal genişliğini belirlemek için select bileşik komutu tarafından kullanılır. checkwinsize seçeneği etkinleştirildiyse veya bir SIGWINCH alındığında etkileşimli bir kabukta otomatik olarak ayarlanır.

COMPREPLY

bash'ın programlanabilir tamamlama aracı tarafından çağrılan bir kabuk işlevi tarafından oluşturulan olası tamamlamaları okuduğu bir dizi değişkeni (aşağıdaki Programlanabilir Tamamlama'ya bakın). Her dizi öğesi bir olası tamamlama içerir.

EMACS

bash, kabuk "t" değeriyle başladığında ortamda bu değişkeni bulursa, kabuğun bir Emacs kabuk arabelleğinde çalıştığını varsayar ve satır düzenlemeyi devre dışı bırakır.

ENV

Etkileşimli bir kabuk posix modunda çağrıldığında BASH_ENV'ye benzer şekilde genişletilir ve yürütülür (yukarıdaki INVOCATION'a bakın).

EXECIGNORE

PATH kullanarak komut araması tarafından yok sayılacak dosya adlarının listesini tanımlayan, iki nokta üst üste ayrılmış kabuk kalıpları listesi (bkz. Kalıp Eşleştirme). Tam yol adları bu kalıplardan biriyle eşleşen dosyalar, tamamlama ve PATH arama yoluyla komut yürütme amaçları açısından yürütülebilir dosyalar olarak kabul edilmez. Bu, [, test ve [[ komutlarının davranışını etkilemez. Komut karma tablosundaki tam yol adları EXECIGNORE'a tabi değildir. Yürütülebilir bit kümesine sahip olan ancak yürütülebilir dosyalar olmayan paylaşılan kitaplık dosyalarını yoksaymak için bu değişkeni kullanın. Kalıp eşleştirme, extglob kabuk seçeneği ayarını dikkate alır.

FCEDIT

fc yerleşik komutu için varsayılan düzenleyici.

FIGNORE

Dosya adı tamamlaması yapılırken yok sayılacak soneklerin iki nokta üst üste ayrılmış listesi (aşağıdaki READLINE'a bakın). Son eki FIGNORE içindeki girişlerden biriyle eşleşen bir dosya adı, eşleşen dosya adları listesinden çıkarılır. Bir örnek değer ".o:~" şeklindedir.

FUNCNEST

0'dan büyük bir sayısal değere ayarlanırsa, maksimum işlev yuvalama düzeyini tanımlar. Bu iç içe geçme düzeyini aşan işlev çağrıları, geçerli komutun iptal edilmesine neden olur.

GLOBIGNORE

Yol adı genişletmesi tarafından yok sayılacak dosya adları kümesini tanımlayan, iki nokta üst üste ayrılmış bir model listesi. Bir yol adı genişletme modeliyle eşleşen bir dosya adı GLOBIGNORE'daki kalıplardan biriyle de eşleşirse, eşleşme listesinden kaldırılır.

HISTCONTROL

Komutların geçmiş listesine nasıl kaydedildiğini kontrol eden iki nokta üst üste ayrılmış bir değer listesi. Değer listesi ignorespace içeriyorsa, boşluk karakteriyle başlayan satırlar geçmiş listesine kaydedilmez. ignoredups değeri, önceki geçmiş girişiyle eşleşen satırların kaydedilmemesine neden olur. ignoreboth değeri, ignorespace ve ignoredups için kısa yoldur. erasedups değeri, geçerli satırla eşleşen önceki tüm satırların, o satır kaydedilmeden önce geçmiş listesinden kaldırılmasına neden olur. Yukarıdaki listede olmayan herhangi bir değer dikkate alınmaz. HISTCONTROL ayarlanmamışsa veya geçerli bir değer içermiyorsa, kabuk ayrıştırıcı tarafından okunan tüm satırlar, HISTIGNORE değerine bağlı olarak geçmiş listesine kaydedilir. Çok satırlı bir bileşik komutun ikinci ve sonraki satırları test edilmez ve HISTCONTROL değerinden bağımsız olarak geçmişe eklenir.

HISTFILE

Komut geçmişinin kaydedildiği dosyanın adı (aşağıdaki GEÇMİŞ'e bakın). Varsayılan değer ~/.bash_history şeklindedir. Ayarlanmazsa, bir kabuk çıktığında komut geçmişi kaydedilmez.

HISTFILESIZE

Geçmiş dosyasında bulunan maksimum satır sayısı. Bu değişkene bir değer atandığında, gerekirse en eski girdiler çıkarılarak geçmiş dosyası bu sayıdan daha fazla satır içermeyecek şekilde kısaltılır. Geçmiş dosyası, bir kabuk çıktığında yazıldıktan sonra da bu boyuta kesilir. Değer 0 ise, geçmiş dosyası sıfır boyutunda kesilir. Sayısal olmayan değerler ve sıfırdan küçük sayısal değerler kesmeyi engeller. Kabuk, başlangıç dosyalarını okuduktan sonra varsayılan değeri HISTSIZE değerine ayarlar.

HISTIGNORE

Geçmiş listesine hangi komut satırlarının kaydedilmesi gerektiğine karar vermek için kullanılan, iki nokta üst üste ayrılmış bir kalıp listesi. Her kalıp, satırın başına sabitlenir ve tüm satırla eşleşmelidir ('*' eklenmez). HISTCONTROL tarafından belirtilen kontroller uygulandıktan sonra her desen, çizgiye karşı test edilir. Normal kabuk kalıbı eşleştirme karakterlerine ek olarak, `&' önceki geçmiş satırıyla eşleşir. `&', ters eğik çizgi kullanılarak kaçabilir; bir eşleşme yapılmadan önce ters eğik çizgi kaldırılır. Çok satırlı bir bileşik komutun ikinci ve sonraki satırları test edilmez ve HISTIGNORE değerine bakılmaksızın geçmişe eklenir. Kalıp eşleştirme, extglob kabuk seçeneği ayarını dikkate alır.

HISTSIZE

Komut geçmişinde hatırlanması gereken komutların sayısı (aşağıdaki GEÇMİŞ'e bakın). Değer 0 ise komutlar geçmiş listesine kaydedilmez. Sıfırdan küçük sayısal değerler, her komutun geçmiş listesine kaydedilmesine neden olur (sınır yoktur). Kabuk, herhangi bir başlangıç dosyasını okuduktan sonra varsayılan değeri 500 olarak ayarlar.

HISTTIMEFORMAT

Bu değişken ayarlanmışsa ve boş değilse, değeri, history yerleşiği tarafından görüntülenen her geçmiş girişiyle ilişkili zaman damgasını yazdırmak için strftime(3) için bir biçim dizesi olarak kullanılır. Bu değişken ayarlanırsa, kabuk oturumlarında korunabilmeleri için zaman damgaları geçmiş dosyasına yazılır. Bu, zaman damgalarını diğer geçmiş satırlarından ayırmak için geçmiş yorum karakterini kullanır.

HOME

Geçerli kullanıcının ana dizini; cd yerleşik komutu için varsayılan bağımsız değişken. Bu değişkenin değeri yaklaşık dalga açılımı yapılırken de kullanılır.

HOSTFILE

Dosyanın adını  /etc/hosts  ile aynı biçimde içerir ve kabuğun bir ana bilgisayar adını tamamlaması gerektiğinde okunması gerekir. Kabuk çalışırken olası ana bilgisayar adı tamamlamalarının listesi değiştirilebilir; değer değiştirildikten sonra bir sonraki ana bilgisayar adı tamamlama girişiminde, bash yeni dosyanın içeriğini mevcut listeye ekler. HOSTFILE ayarlanmışsa ancak değeri yoksa veya okunabilir bir dosyaya ad vermiyorsa, bash,  /etc/hosts  dosyasını okumaya çalışır. olası ana bilgisayar adı tamamlamalarının listesi. HOSTFILE ayarlanmadığında, ana bilgisayar adı listesi temizlenir.

IFS

Genişletmeden sonra sözcük bölmek ve yerleşik read komutuyla satırları sözcüklere bölmek için kullanılan Dahili Alan Ayırıcı. Varsayılan değer ``<tab><newline>'' şeklindedir.

IGNOREEOF

Tek giriş olarak bir EOF karakteri alındığında etkileşimli kabuğun eylemini kontrol eder. Ayarlanırsa, değer, bash çıkışından önce bir giriş satırındaki ilk karakterler olarak yazılması gereken ardışık EOF karakterlerinin sayısıdır. Değişken varsa ancak sayısal bir değeri yoksa veya değeri yoksa varsayılan değer 10'dur. Değişken yoksa, EOF kabuğa yapılan girdinin sonunu belirtir.

INPUTRC

 ~/.inputrc  varsayılanını geçersiz kılan readline başlangıç dosyasının dosya adı (aşağıdaki READLINE'a bakın).

INSIDE_EMACS

Bu değişken, kabuk başladığında ortamda görünürse, bash, onun bir Emacs kabuk arabelleği içinde çalıştığını varsayar ve TERM değerine bağlı olarak satır düzenlemeyi devre dışı bırakabilir.

LANG

LC_ ile başlayan bir değişkenle özel olarak seçilmeyen herhangi bir kategori için yerel kategoriyi belirlemek için kullanılır.

LC_ALL

Bu değişken, LANG değerini ve bir yerel ayar kategorisi belirten diğer tüm LC_ değişkenlerini geçersiz kılar.

LC_COLLATE

Bu değişken, yol adı genişletmenin sonuçlarını sıralarken kullanılan harmanlama sırasını belirler ve yol adı genişletme ve kalıp eşleştirme içindeki aralık ifadelerinin, eşdeğerlik sınıflarının ve harmanlama dizilerinin davranışını belirler.

LC_CTYPE

Bu değişken, yol adı genişletme ve kalıp eşleştirme içindeki karakterlerin yorumlanmasını ve karakter sınıflarının davranışını belirler.

LC_MESSAGES

Bu değişken, önünde bir $ bulunan çift tırnaklı dizeleri çevirmek için kullanılan yerel ayarı belirler.

LC_NUMERIC

Bu değişken, sayı biçimlendirmesi için kullanılan yerel ayar kategorisini belirler.

LC_TIME

Bu değişken, veri ve zaman biçimlendirmesi için kullanılan yerel ayar kategorisini belirler.

LINES

Seçim listelerini yazdırmak için sütun uzunluğunu belirlemek üzere select bileşik komutu tarafından kullanılır. checkwinsize seçeneği etkinleştirildiyse veya bir SIGWINCH alındığında etkileşimli bir kabukta otomatik olarak ayarlanır.

MAIL

Bu parametre bir dosya veya dizin adına ayarlanırsa ve MAILPATH değişkeni ayarlanmazsa, bash kullanıcıyı belirtilen dosya veya Maildir biçimindeki postanın geldiği konusunda bilgilendirir dizin.

MAILCHECK

bash'ın postaları ne sıklıkta (saniye olarak) kontrol edeceğini belirtir. Varsayılan 60 saniyedir. Postayı kontrol etme zamanı geldiğinde, kabuk bunu birincil istemi görüntülemeden önce yapar. Bu değişken ayarlanmazsa veya sıfırdan büyük veya sıfıra eşit bir sayı olmayan bir değere ayarlanırsa, kabuk posta kontrolünü devre dışı bırakır.

MAILPATH

Posta için kontrol edilecek dosya adlarının iki nokta üst üste ayrılmış listesi. Belirli bir dosyaya posta geldiğinde yazdırılacak mesaj, dosya adını mesajdan bir '?' ile ayırarak belirtilebilir. İleti metninde kullanıldığında, $_ geçerli posta dosyasının adına genişler. Örnek:

MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"'

Bash, bu değişken için varsayılan bir değer sağlayacak şekilde yapılandırılabilir (varsayılan olarak bir değer yoktur), ancak kullandığı kullanıcı posta dosyalarının konumu sisteme bağlıdır (örn. ).

/var/mail/$USER
OPTERR

1 değerine ayarlanırsa, bash, getopts yerleşik komutu tarafından oluşturulan hata mesajlarını görüntüler (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

OPTERR, kabuk her çağrıldığında veya bir kabuk komut dosyası yürütüldüğünde 1 olarak başlatılır.

PATH

Komutlar için arama yolu. Bu, kabuğun komutları aradığı dizinlerin iki nokta üst üste ile ayrılmış bir listesidir (aşağıdaki KOMUT YÜRÜTME'ye bakın). PATH değerindeki sıfır uzunluklu (boş) bir dizin adı, geçerli dizini belirtir. Boş bir dizin adı, iki bitişik iki nokta üst üste veya ilk veya son iki nokta üst üste olarak görünebilir. Varsayılan yol, sisteme bağlıdır ve bash'ı yükleyen yönetici tarafından belirlenir. Ortak bir değer

/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
POSIXLY_CORRECT

bash başlatıldığında bu değişken ortamdaysa, kabuk, başlangıç dosyalarını okumadan önce --posix çağırma seçeneği sağlanmış gibi posix moduna girer. Kabuk çalışırken ayarlanırsa, bash, set -o posix komutu yürütülmüş gibi posix modunu etkinleştirir. Kabuk posix moduna girdiğinde, önceden ayarlanmamışsa bu değişkeni ayarlar.

PROMPT_COMMAND

Bu değişken ayarlanmışsa ve bir diziyse, her bir set öğesinin değeri, her bir birincil bilgi istemi verilmeden önce bir komut olarak yürütülür. Bu ayarlanmışsa ancak bir dizi değişkeni değilse, değeri bunun yerine yürütülecek bir komut olarak kullanılır.

PROMPT_DIRTRIM

Sıfırdan büyük bir sayıya ayarlanırsa, değer, \w ve \W bilgi istemi dizesi çıkışlarını genişletirken tutulacak sondaki dizin bileşenlerinin sayısı olarak kullanılır (aşağıdaki PROMPTING'e bakın). Kaldırılan karakterler üç nokta ile değiştirilir.

PS0

Bu parametrenin değeri genişletilir (aşağıdaki PROMPTING'e bakın) ve bir komutu okuduktan sonra ve komut yürütülmeden önce etkileşimli kabuklar tarafından görüntülenir.

PS1

Bu parametrenin değeri genişletilir (aşağıdaki PROMPTING'e bakın) ve birincil bilgi istemi dizesi olarak kullanılır. Varsayılan değer ``\s-\v\$'' şeklindedir.

PS2

Bu parametrenin değeri, PS1 ile olduğu gibi genişletilir ve ikincil bilgi istemi dizesi olarak kullanılır. Varsayılan ``> '' şeklindedir.

PS3

Bu parametrenin değeri, select komutu için bilgi istemi olarak kullanılır (yukarıdaki SHELL GRAMMAR'a bakın).

PS4

Bu parametrenin değeri, PS1'de olduğu gibi genişletilir ve değer, yürütme izlemesi sırasında her bash komutu görüntülenmeden önce yazdırılır. PS4'ün genişletilmiş değerinin ilk karakteri, çeşitli dolaylı düzeyleri belirtmek için gerektiğinde birden çok kez tekrarlanır. Varsayılan ``+ '' şeklindedir.

SHELL

Bu değişken, kabuğun tam yol adına genişler. Kabuk başladığında ayarlanmamışsa, bash ona geçerli kullanıcının oturum açma kabuğunun tam yol adını atar.

TIMEFORMAT

Bu parametrenin değeri, önüne time ayrılmış kelime eklenmiş işlem hatları için zamanlama bilgilerinin nasıl görüntülenmesi gerektiğini belirten bir biçim dizesi olarak kullanılır. % karakteri, bir zaman değerine veya diğer bilgilere genişletilen bir kaçış dizisi sunar. Kaçış dizileri ve anlamları şu şekildedir; parantezler isteğe bağlı bölümleri belirtir.

%%

Gerçek bir %.

%[p][l]R

Saniye cinsinden geçen süre.

%[p][l]U

Kullanıcı modunda harcanan CPU saniye sayısı.

%[p][l]S

Sistem modunda harcanan CPU saniye sayısı.

%P

(%U + %S)/%R olarak hesaplanan CPU yüzdesi.

İsteğe bağlı p, bir ondalık noktadan sonraki kesirli basamakların sayısı olan kesinliği belirten bir rakamdır. 0 değeri, ondalık nokta veya kesrin çıktı olarak alınmasına neden olmaz. Virgülden sonra en fazla üç basamak belirtilebilir; 3'ten büyük p değerleri 3 olarak değiştirilir. p belirtilmezse 3 değeri kullanılır.

İsteğe bağlı l, dakikalar da dahil olmak üzere MMmSS.FFs biçiminde daha uzun bir biçim belirtir. p değeri kesrin dahil edilip edilmediğini belirler.

Bu değişken ayarlanmazsa, bash, $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS' değerine sahipmiş gibi davranır. . Değer boşsa, zamanlama bilgisi görüntülenmez. Biçim dizesi görüntülendiğinde, sonuna yeni bir satır eklenir.

TMOUT

Sıfırdan büyük bir değere ayarlanırsa TMOUT, read yerleşiği için varsayılan zaman aşımı olarak kabul edilir. select komutu, şu süreden sonra giriş gelmezse sona erer:

Bir terminalden giriş geldiğinde TMOUT saniye. Etkileşimli bir kabukta, değer, birincil istemi yayınladıktan sonra bir satır girdi için beklenecek saniye sayısı olarak yorumlanır. Bash, tam bir girdi satırı gelmezse, belirtilen sayıda saniye bekledikten sonra sona erer.

TMPDIR

Ayarlanırsa, bash değerini, bash'ın kabuğun kullanımı için geçici dosyalar oluşturduğu bir dizinin adı olarak kullanır.

auto_resume

Bu değişken, kabuğun kullanıcı ve iş kontrolü ile nasıl etkileşime girdiğini kontrol eder. Bu değişken ayarlanırsa, yeniden yönlendirmeler olmadan tek kelimelik basit komutlar, mevcut durdurulmuş bir işin yeniden başlatılması için adaylar olarak değerlendirilir. Belirsizliğe izin verilmez; yazılan dizi ile başlayan birden fazla iş varsa en son erişilen iş seçilir. Bu bağlamda durdurulan bir işin adı, onu başlatmak için kullanılan komut satırıdır. exact değerine ayarlanırsa, sağlanan dize durdurulan bir işin adıyla tam olarak eşleşmelidir; alt dize olarak ayarlanırsa, sağlanan dizenin durdurulan bir işin adının bir alt dizesiyle eşleşmesi gerekir. alt dize değeri, %? iş tanımlayıcısına benzer işlevsellik sağlar (aşağıdaki İŞ KONTROLÜ'ne bakın). Başka bir değere ayarlanırsa, sağlanan dize durdurulan bir işin adının öneki olmalıdır; bu, %string iş tanımlayıcısına benzer işlevsellik sağlar.

histchars

Geçmiş genişletmeyi ve simgeleştirmeyi kontrol eden iki veya üç karakter (aşağıdaki TARİH GENİŞLETME'ye bakın). İlk karakter, normalde `!' olan bir geçmiş genişletmenin başlangıcını işaret eden karakter olan geçmiş genişletme karakteridir. İkinci karakter, girilen önceki komutu yeniden çalıştırmak ve komutta bir diziyi diğeriyle değiştirmek için kısayol olarak kullanılan hızlı ikame karakteridir. Varsayılan `^' şeklindedir. İsteğe bağlı üçüncü karakter, normalde `#' olan bir kelimenin ilk karakteri olarak bulunduğunda satırın geri kalanının bir yorum olduğunu gösteren karakterdir. Geçmiş yorum karakteri, satırda kalan kelimeler için geçmiş ikamesinin atlanmasına neden olur. Kabuk ayrıştırıcısının satırın geri kalanını yorum olarak ele almasına neden olması gerekmez.

diziler

Bash, tek boyutlu dizine alınmış ve ilişkilendirilebilir dizi değişkenleri sağlar. Dizinlenmiş bir dizi olarak herhangi bir değişken kullanılabilir; declare yerleşiği açıkça bir dizi bildirir. Bir dizinin boyutunda maksimum sınır veya üyelerin dizine alınması veya bitişik olarak atanması gibi herhangi bir gereksinim yoktur. Dizinlenmiş dizilere tamsayılar (aritmetik ifadeler dahil) kullanılarak başvurulur ve sıfır tabanlıdır; ilişkisel dizilere rastgele diziler kullanılarak başvurulur. Aksi belirtilmedikçe, dizinlenmiş dizi dizinleri negatif olmayan tamsayılar olmalıdır.

ad[alt simge]=değer sözdizimi kullanılarak herhangi bir değişken atanırsa, dizinlenmiş bir dizi otomatik olarak oluşturulur. alt simge, bir sayı olarak değerlendirilmesi gereken bir aritmetik ifade olarak ele alınır. Dizine alınmış bir diziyi açıkça bildirmek için declare -a name kullanın (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). declare -a name[subscript] de kabul edilir; alt simge dikkate alınmaz.

İlişkisel diziler, declare -A name kullanılarak oluşturulur.

Nitelikler, declare ve readonly yerleşikleri kullanılarak bir dizi değişkeni için belirtilebilir. Her öznitelik, bir dizinin tüm üyeleri için geçerlidir.

Diziler, ad=(değer1 ... değern) biçimindeki bileşik atamalar kullanılarak atanır; burada her değer, [alt simge]=dize biçiminde olabilir. Dizinlenmiş dizi atamaları dize dışında bir şey gerektirmez. Listedeki her değer, aşağıda EXPANSION altında açıklanan tüm kabuk genişletmeleri kullanılarak genişletilir. İndekslenmiş dizilere atama yapılırken, isteğe bağlı parantezler ve alt simgeler sağlanırsa, o indeks şuna atanır; aksi takdirde, atanan öğenin dizini, ifade ile atanan son dizin artı birdir. İndeksleme sıfırdan başlar.

Bir ilişkisel diziye atama yapılırken, bir bileşik atamadaki sözcükler, alt simgenin gerekli olduğu atama ifadeleri veya değişen anahtarlar ve değerler dizisi olarak yorumlanan bir sözcük listesi olabilir: ad =( anahtar1 değer1 anahtar2 değer2 ...). Bunlar, name=( [key1]=value1 [key2) ile aynı şekilde ele alınır. ]=değer2 ...). Listedeki ilk sözcük, kalan sözcüklerin nasıl yorumlanacağını belirler; bir listedeki tüm atamalar aynı türde olmalıdır. Anahtar/değer çiftleri kullanılırken anahtarlar eksik veya boş olmayabilir; son bir eksik değer, boş dize gibi ele alınır.

Bu sözdizimi declare yerleşiği tarafından da kabul edilir. Bireysel dizi öğeleri, yukarıda tanıtılan name[subscript]=value sözdizimini kullanarak atanabilir. İndekslenmiş bir diziye atama yaparken, name negatif bir sayı ile alt simge ise, bu sayı name maksimum indeksinden bir büyük olarak yorumlanır, bu nedenle negatif indeksler dizinin sonundan geriye doğru sayılır ve -1 indeksi son öğeye başvurur.

Bir dizinin herhangi bir öğesine $ {name[subscript]} kullanılarak başvurulabilir. Parantezler, yol adı genişletmesiyle çakışmaları önlemek için gereklidir. alt simge, @ veya * ise, kelime name öğesinin tüm üyelerini kapsayacak şekilde genişler. Bu alt simgeler, yalnızca sözcük çift tırnak içinde göründüğünde farklılık gösterir. Sözcük çift tırnak içine alınırsa, $ {ad[*]}, IFS 'nin ilk karakteriyle ayrılmış her bir dizi üyesinin değeriyle tek bir sözcük olacak şekilde genişler. özel değişken ve $ {name[@]}, name öğesinin her öğesini ayrı bir kelimeye genişletir. Dizi üyesi olmadığında, $ {name[@]} sıfıra genişler. Çift tırnaklı açılım bir kelime içinde gerçekleşirse, ilk parametrenin açılımı orijinal kelimenin başlangıç kısmı ile birleştirilir ve son parametrenin açılımı orijinal kelimenin son kısmı ile birleştirilir. Bu, * ve @ özel parametrelerinin genişletilmesine benzer (bkz. yukarıdaki Özel Parametreler). $ {#name[subscript]}, $ {name[subscript uzunluğuna genişler ]}. alt simge, * veya @ ise, genişletme dizideki öğelerin sayısıdır. Dizine alınmış bir dizinin bir öğesine başvurmak için kullanılan alt simge sıfırdan küçük bir sayı olarak değerlendirilirse, dizinin maksimum dizininden bir büyük olarak yorumlanır, bu nedenle negatif dizinler sıfırdan geriye doğru sayılır. dizinin sonu ve -1 dizini son öğeye başvuruyor.

Bir dizi değişkenine alt simge olmadan başvurmak, diziye 0 alt simgesiyle başvurmakla eşdeğerdir. Geçerli bir alt simge kullanan bir değişkene yapılan tüm başvurular yasaldır ve bash gerekirse bir dizi oluşturur.

Bir alt simgeye bir değer atanmışsa, bir dizi değişkeni ayarlanmış kabul edilir. Boş dize geçerli bir değerdir.

Bir dizinin anahtarlarını (indekslerini) elde etmenin yanı sıra değerleri de elde etmek mümkündür. $ {!name[@]} ve $ {!name[*]}, name dizi değişkeninde atanan dizinlere genişler. Çift tırnak içindeyken yapılan işlem, @ ve * özel parametrelerinin çift tırnak içinde genişletilmesine benzer.

unset yerleşiği dizileri yok etmek için kullanılır. unset name[subscript], hem indekslenmiş hem de ilişkisel diziler için subscript dizinindeki dizi öğesini yok eder. İndekslenmiş dizilerin negatif indisleri yukarıda açıklandığı gibi yorumlanır. Bir dizi değişkeninin son öğesinin ayarının kaldırılması, değişkenin ayarını kaldırmaz. unset name, burada name bir dizidir veya unset name[subscript], burada subscript * veya @, tüm diziyi kaldırır.

unset ile olduğu gibi, bir komutun bağımsız değişkeni olarak alt simgeli bir değişken adını kullanırken, yukarıda açıklanan sözcük genişletme sözdizimini kullanmadan, bağımsız değişken yol adı genişletmesine tabidir. Yol adı genişletmesi istenmiyorsa, bağımsız değişken alıntılanmalıdır.

declare, local ve readonly yerleşiklerinin her biri, dizine alınmış bir dizi belirtmek için -a seçeneğini ve ilişkisel bir dizi belirtmek için -A seçeneğini kabul eder. Her iki seçenek de sağlanmışsa, -A öncelik kazanır. read yerleşiği, standart girdiden okunan sözcüklerin bir listesini bir diziye atamak için -a seçeneğini kabul eder. set ve declare yerleşikleri, dizi değerlerini atama olarak yeniden kullanılmalarına izin verecek şekilde görüntüler.

GENLEŞME

Genişletme, kelimelere ayrıldıktan sonra komut satırında gerçekleştirilir. Gerçekleştirilen yedi tür genişletme vardır: küme genişletme, tilde genişletme, parametre ve değişken genişletme, komut değiştirme, aritmetik genişletme, sözcük bölme ve yol adı genişletme.

Genişletmelerin sırası şu şekildedir: ayraç genişletme; tilde genişletme, parametre ve değişken genişletme, aritmetik genişletme ve komut değiştirme (soldan sağa yapılır); kelime bölme; ve yol adı genişletme.

Bunu destekleyebilen sistemlerde ek bir genişletme mevcuttur: işlem ikamesi. Bu, dalga işareti, parametre, değişken ve aritmetik genişletme ve komut değiştirme ile aynı anda gerçekleştirilir.

Bu genişletmeler gerçekleştirildikten sonra, orijinal kelimede bulunan alıntı karakterleri, kendilerinden alıntı yapılmadıkça kaldırılır (alıntı kaldırma).

Yalnızca parantez genişletme, sözcük bölme ve yol adı genişletme, genişletmenin sözcük sayısını artırabilir; diğer açılımlar, tek bir kelimeyi tek bir kelimeye genişletir. Bunun tek istisnası, "$@" ve "$ {name[@]}" genişletmeleridir ve çoğu durumda, yukarıda açıklandığı gibi $* ve $ {name[*]}'dir (PARAMETRELER'e bakın).

Ayraç Genişletme

Brace genişletme, keyfi dizilerin üretilebileceği bir mekanizmadır. Bu mekanizma, yol adı genişletme'ye benzer, ancak oluşturulan dosya adlarının mevcut olması gerekmez. Ayraç genişletilecek kalıplar, isteğe bağlı bir başlangıç, ardından ya virgülle ayrılmış bir dizi dize ya da bir çift parantez arasında bir sıra ifadesi ve ardından isteğe bağlı bir postscript biçimini alır. Önsöz, parantez içinde yer alan her dizenin önüne eklenir ve daha sonra son betimleme, soldan sağa genişleyerek sonuçtaki her dizeye eklenir.

Ayraç genişletmeleri iç içe olabilir. Her genişletilmiş dizenin sonuçları sıralanmaz; soldan sağa sıra korunur. Örneğin, a{d,c,b}e genişleyerek "ade ace abe"ye dönüşür.

Bir dizi ifadesi {x..y[..<) biçimini alır.incr]}, burada x ve y tam sayı veya tek karakterdir ve incr , isteğe bağlı bir artış, bir tamsayıdır. Tamsayılar sağlandığında ifade, x ile y dahil, arasındaki her sayıya genişler. Sağlanan tam sayıların önüne 0 eklenebilir ve her terim aynı genişliğe sahip olmaya zorlanabilir. x veya y sıfır ile başladığında, kabuk, üretilen tüm terimleri aynı sayıda basamak içerecek şekilde zorlamaya çalışır, gerektiğinde sıfır doldurma. Karakterler sağlandığında, ifade varsayılan C yerel ayarını kullanarak x ve y dahil olmak üzere sözlüksel olarak her karaktere genişler. x ve y öğelerinin aynı türde olması gerektiğini unutmayın. Artış verildiğinde, her terim arasındaki fark olarak kullanılır. Varsayılan artış, duruma göre 1 veya -1'dir.

Ayraç genişletme, diğer genişletmelerden önce gerçekleştirilir ve diğer genişletmelere özel karakterler sonuçta korunur. Kesinlikle metinseldir. Bash, genişletme bağlamına veya ayraçlar arasındaki metne herhangi bir sözdizimsel yorum uygulamaz.

Doğru biçimlendirilmiş bir ayraç genişletmesi, tırnaksız açılış ve kapanış parantezleri ve en az bir tırnaksız virgül veya geçerli bir sıra ifadesi içermelidir. Herhangi bir yanlış biçimlendirilmiş ayraç genişletmesi değişmeden kalır. Bir { veya ,, bir ayraç ifadesinin parçası olarak değerlendirilmesini önlemek için ters eğik çizgi ile alıntılanabilir. Parametre genişletmeyle çakışmaları önlemek için, $ { dizesi küme ayracı genişletme için uygun kabul edilmez ve } kapanışına kadar ayraç genişletmeyi engeller.

Bu yapı, oluşturulacak dizgelerin ortak öneki yukarıdaki örnektekinden daha uzun olduğunda genellikle kestirme yol olarak kullanılır:

mkdir /usr/local/src/bash/{old,new,dist,bugs}

veya

chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Ayraç genişletme, sh'nin eski sürümleriyle küçük bir uyumsuzluk getirir. sh, açılış veya kapanış parantezlerini bir kelimenin parçası olarak göründüklerinde özel olarak ele almaz ve bunları çıktıda korur. Bash, küme ayracı genişletmesinin bir sonucu olarak sözcüklerden ayraçları kaldırır. Örneğin, sh öğesine file{1,2} olarak girilen bir kelime, çıktıda aynı şekilde görünür. bash tarafından genişletildikten sonra aynı sözcük dosya1 dosya2 olarak çıktılanır. sh ile tam uyumluluk isteniyorsa, bash'ı +B seçeneğiyle başlatın veya set komutuna +B seçeneğiyle ayraç genişletmeyi devre dışı bırakın (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

Yaklaşık Genişletme

Bir kelime tırnaksız yaklaşık işareti karakteriyle ("~') başlıyorsa, ilk tırnaksız eğik çizgiden önceki tüm karakterler (veya tırnaksız eğik çizgi yoksa tüm karakterler) bir tilde olarak kabul edilir. -önek. Yaklaşık önekindeki karakterlerden hiçbiri alıntılanmıyorsa, yaklaşık önekinin ardından gelen yaklaşık öneki karakterler olası bir oturum açma adı olarak değerlendirilir. Bu oturum açma adı boş dizeyse, yaklaşık işareti HOME kabuk parametresinin değeriyle değiştirilir. HOME ayarlanmamışsa, bunun yerine kabuğu yürüten kullanıcının ana dizini değiştirilir. Aksi takdirde, yaklaşık öneki, belirtilen oturum açma adıyla ilişkili giriş dizini ile değiştirilir.

Yaklaşık öneki bir `~+' ise, PWD kabuk değişkeninin değeri yaklaşık önekinin yerine geçer. Yaklaşık öneki bir `~-' ise, OLDPWD kabuk değişkeninin değeri, eğer ayarlanmışsa, değiştirilir. Yaklaşık önekindeki yaklaşık işaretini takip eden karakterler, isteğe bağlı olarak bir "+" veya "-" ile önek eklenmiş bir N sayısından oluşuyorsa, yaklaşık öneki dizinden karşılık gelen öğeyle değiştirilir. bağımsız değişken olarak tilde önekiyle çağrılan dirs yerleşiği tarafından görüntüleneceği gibi yığın. Yaklaşık-ön ekinde yaklaşık işaretinden sonraki karakterler, başında "+" veya "-" olmayan bir sayıdan oluşuyorsa, "+" olduğu varsayılır.

Oturum açma adı geçersizse veya tilde genişletme başarısız olursa sözcük değişmez.

Her değişken ataması, bir : veya ilk ='den hemen sonra tırnak içine alınmamış tilde önekleri için kontrol edilir. Bu durumlarda, dalga boyu genişletmesi de gerçekleştirilir. Sonuç olarak, dosya adları PATH, MAILPATH ve CDPATH atamalarında yaklaşık işaretli olarak kullanılabilir ve kabuk, genişletilmiş değeri atar.

Bash ayrıca, basit komutların bağımsız değişkenleri olarak göründüklerinde, değişken atamalarının koşullarını (yukarıda PARAMETERS altında açıklandığı gibi) karşılayan sözcükler üzerinde yaklaşık işareti genişletmesi gerçekleştirir. Bash, yukarıda listelenen declaration komutları dışında posix kipinde bunu yapmaz.

Parametre Genişletme

$ karakteri, parametre genişletme, komut değiştirme veya aritmetik genişletme sunar. Genişletilecek parametre adı veya sembol, isteğe bağlı olan ancak genişletilecek değişkeni, adın bir parçası olarak yorumlanabilecek hemen ardından gelen karakterlerden korumaya yarayan ayraçlar içine alınabilir.

Köşeli ayraçlar kullanıldığında, eşleşen bitiş ayracı, ters eğik çizgi veya alıntılanmış bir dize içinde kaçmayan ve katıştırılmış bir aritmetik genişletme, komut ikamesi veya parametre genişletme içinde olmayan ilk `}'dur.

${parameter}

parametre değeri değiştirilir. parameter birden fazla rakam içeren konumsal bir parametre olduğunda veya parameter öğesinin ardından adının bir parçası olarak yorumlanmayacak bir karakter geldiğinde ayraçlar gerekir. parametre yukarıda açıklandığı gibi bir kabuk parametresidir PARAMETERS) veya bir dizi referansıdır (Diziler).

parameter öğesinin ilk karakteri bir ünlem işareti (!) ise ve parameter bir nameref değilse, bir dolaylılık düzeyi sunar. Bash, yeni parametre olarak parametre'nin geri kalanının genişletilmesiyle oluşan değeri kullanır; bu daha sonra genişletilir ve bu değer, orijinal parametre'nin genişletilmesi yerine genişletmenin geri kalanında kullanılır. Bu, dolaylı genişleme olarak bilinir. Değer, tilde genişletmeye, parametre genişletmeye, komut ikamesine ve aritmetik genişletmeye tabidir. parameter bir nameref ise, bu, dolaylı genişletmenin tamamını gerçekleştirmek yerine parameter tarafından başvurulan parametrenin adına genişler. Bunun istisnaları, aşağıda açıklanan $ {!önek*} ve $ {!name[@]} açılımlarıdır. Dolaylı yönlendirme yapmak için ünlem işareti sol parantezden hemen sonra gelmelidir.

Aşağıdaki durumların her birinde, sözcük tilde genişletmeye, parametre genişletmeye, komut ikamesine ve aritmetik genişletmeye tabidir.

bash, aşağıda belgelenen formları (ör. :-) kullanarak alt dize genişletme gerçekleştirmediğinde, ayarlanmamış veya boş olan bir parametreyi test eder. İki nokta üst üste işaretinin atlanması, yalnızca ayarlanmamış bir parametre için bir testle sonuçlanır.

${parameter:-word}

Varsayılan Değerleri Kullanın. parameter ayarlanmamış veya null ise, word açılımı değiştirilir. Aksi takdirde, parametre değeri değiştirilir.

${parameter:=word}

Varsayılan Değerleri Ata. parameter ayarlanmamış veya null ise, word'ün genişletilmesi parameter'e atanır. parameter değeri daha sonra değiştirilir. Konumsal parametreler ve özel parametreler bu şekilde atanamaz.

${parameter:?word}

Null veya Unset ise Hatayı Görüntüle. parameter boşsa veya ayarlanmamışsa, word'ün (veya word yoksa bu etkiye sahip bir mesajın) genişletilmesi standarda yazılır hata verir ve etkileşimli değilse kabuk çıkar. Aksi takdirde, parametre değeri değiştirilir.

${parameter:+word}

Alternatif Değer Kullanın. parameter null veya unset ise, hiçbir şey değiştirilmez, aksi takdirde word açılımı değiştirilir.

${parameter:offset}
${parameter:offset:length}

Alt Dize Genişletme. offset tarafından belirtilen karakterden başlayarak parameter değerinin uzunluk karakterine kadar genişler. parametre, @, @ veya * ile alt simgelenmiş dizine alınmış bir dizi veya bir ilişkisel dizi adı ise, sonuçlar aşağıda açıklandığı gibi farklılık gösterir. uzunluk atlanırsa, offset tarafından belirtilen karakterden başlayıp değerin sonuna kadar uzanan parametre değerinin alt dizisine genişler. uzunluk ve offset aritmetik ifadelerdir (aşağıdaki ARITMETİK DEĞERLENDİRME'ye bakın).

offset sıfırdan küçük bir sayı olarak değerlendirilirse, değer parameter değerinin sonundan itibaren karakterlerde ofset olarak kullanılır. uzunluk sıfırdan küçük bir sayı olarak değerlendirilirse, bu, bir karakter sayısı yerine parametre değerinin sonundan karakter kayması olarak yorumlanır ve genişleme, uzunluk ile o sonuç arasındaki karakterlerdir. :- genişletmesiyle karıştırılmaması için negatif bir uzaklığın iki noktadan en az bir boşlukla ayrılması gerektiğini unutmayın.

parameter, @ ise sonuç, offset ile başlayan uzunluk konumsal parametrelerdir. Negatif bir offset, en büyük konum parametresinden bir büyük olana göre alınır, dolayısıyla -1'lik bir kayma, son konum parametresine göre değerlendirilir. uzunluk sıfırdan küçük bir sayı olarak değerlendirilirse bu bir genişletme hatasıdır.

parametre, @ veya * ile alt simgeli dizinlenmiş bir dizi adıysa sonuç, dizinin $ {parametre[offset]} ile başlayan uzunluk üyeleridir. Belirtilen dizinin maksimum dizininden bir büyük olana göre negatif bir kaydırma alınır. uzunluk sıfırdan küçük bir sayı olarak değerlendirilirse bu bir genişletme hatasıdır.

Bir ilişkisel diziye uygulanan alt dize genişletme, tanımsız sonuçlar üretir.

Konumsal parametreler kullanılmadığı sürece alt dize indeksleme sıfır tabanlıdır; bu durumda indeksleme varsayılan olarak 1'den başlar. offset 0 ise ve konum parametreleri kullanılıyorsa listenin önüne $0 eklenir.

${!prefix*}
${!prefix@}

Önekle eşleşen adlar. Adları önek ile başlayan ve değişkenin ilk karakteriyle ayrılan değişkenlerin adlarına genişler.

IFS özel değişkeni. @ kullanıldığında ve genişletme çift tırnak içinde göründüğünde, her değişken adı ayrı bir kelimeye genişler.

${!name[@]}
${!name[*]}

Dizi anahtarlarının listesi. ad bir dizi değişkeniyse, ad içinde atanan dizi dizinleri (anahtarlar) listesine genişler. name bir dizi değilse, name ayarlanmışsa 0'a, aksi halde null değerine genişler. @ kullanıldığında ve genişletme çift tırnak içinde göründüğünde, her tuş ayrı bir kelimeye genişler.

${#parameter}

Parametre uzunluğu. parameter değerinin karakter cinsinden uzunluğu değiştirilir. parametre, * veya @ ise, değiştirilen değer, konumsal parametrelerin sayısıdır. parameter, * veya @ ile indisli bir dizi adıysa, değiştirilen değer, dizideki öğelerin sayısıdır. parametre, negatif bir sayı tarafından alt simgelenmiş dizine alınmış bir dizi adıysa, bu sayı parametre'nin maksimum dizininden bir büyük olarak yorumlanır, bu nedenle negatif dizinler dizinin sonundan geriye doğru sayılır ve -1 dizini son öğeye başvurur.

${parameter#word}
${parameter##word}

Eşleşen önek kalıbını kaldırın. Kelime, tıpkı yol adı genişletmede olduğu gibi bir kalıp oluşturmak üzere genişletilir ve aşağıda Kalıp Eşleştirme altında açıklanan kurallar kullanılarak genişletilmiş parametre değeriyle eşleştirilir. Kalıp, parametre değerinin başlangıcıyla eşleşirse, genişletmenin sonucu, en kısa eşleşen kalıp (``#'' durum) veya en uzun eşleşen kalıp (``##'' durum) silinerek parametre'nin genişletilmiş değeridir. parametre, @ veya * ise, kalıp kaldırma işlemi sırayla her bir konum parametresine uygulanır ve sonuç listesi genişletme olur. parametre, @ veya * ile indisli bir dizi değişkeniyse, kalıp kaldırma işlemi dizinin her üyesine sırayla uygulanır ve sonuç listesi genişletme olur.

${parameter%word}
${parameter%%word}

Eşleşen son ek kalıbını kaldırın. Kelime, tıpkı yol adı genişletmede olduğu gibi bir kalıp oluşturmak üzere genişletilir ve aşağıda Kalıp Eşleştirme altında açıklanan kurallar kullanılarak genişletilmiş parametre değeriyle eşleştirilir. Kalıp, parametre'nin genişletilmiş değerinin sondaki bir kısmıyla eşleşirse, genişletmenin sonucu, en kısa eşleşen kalıp (``%'' durumu) veya en uzun eşleşen kalıp (``%%'' durumu) silinmiş olarak parametre'nin genişletilmiş değeridir. parametre, @ veya * ise, kalıp kaldırma işlemi sırayla her bir konum parametresine uygulanır ve sonuç listesi genişletme olur. parametre, @ veya * ile indisli bir dizi değişkeniyse, kalıp kaldırma işlemi dizinin her üyesine sırayla uygulanır ve sonuç listesi genişletme olur.

${parameter/pattern/string}

Kalıp değiştirme. Patern, tıpkı yol adı genişletmede olduğu gibi bir model oluşturmak için genişletilir, Parameter genişletilir ve pattern'in değerine karşı en uzun eşleşmesi ile değiştirilir. dize. Eşleştirme, aşağıda Kalıp Eşleştirme altında açıklanan kurallar kullanılarak gerçekleştirilir. pattern, / ile başlıyorsa, tüm pattern eşleşmeleri string ile değiştirilir. Normalde sadece ilk eşleşme değiştirilir. kalıp # ile başlıyorsa, genişletilmiş parametre değerinin başında eşleşmelidir. desen, % ile başlıyorsa, genişletilmiş parametre değerinin sonunda eşleşmelidir. dize boşsa, kalıp eşleşmeleri silinir ve onu takip eden kalıp / atlanabilir. nocasematch kabuk seçeneği etkinleştirilirse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir. parametre @ veya * ise, değiştirme işlemi sırayla her bir konum parametresine uygulanır ve sonuç listesi genişletme olur. parameter, @ veya * ile indisli bir dizi değişkeniyse, değiştirme işlemi dizinin her üyesine sırayla uygulanır ve genişletme işlemi sonuç listesidir.

${parameter^pattern}
${parameter^^pattern}
${parameter,pattern}
${parameter,,pattern}

Vaka değişikliği. Bu genişletme, parametre içindeki alfabetik karakterlerin durumunu değiştirir. kalıp, tıpkı yol adı genişletmede olduğu gibi bir kalıp oluşturmak için genişletilir. parameter'in genişletilmiş değerindeki her karakter, pattern'e karşı test edilir ve kalıpla eşleşirse büyük/küçük harf dönüştürülür. Kalıp birden fazla karakteri eşleştirmeye çalışmamalıdır. ^ operatörü, pattern ile eşleşen küçük harfleri büyük harfe dönüştürür; , operatörü, eşleşen büyük harfleri küçük harfe dönüştürür. ^^ ve ,, genişletmeleri, eşleşen her karakteri genişletilmiş değere dönüştürür; ^ ve , genişletmeleri, genişletilmiş değerdeki yalnızca ilk karakteri eşleştirir ve dönüştürür. kalıp atlanırsa, her karakterle eşleşen bir ? gibi ele alınır. parameter, @ veya * ise, vaka değiştirme işlemi sırayla her bir konum parametresine uygulanır ve sonuç listesi genişletme olur. parametre, @ veya * ile indisli bir dizi değişkeniyse, büyük/küçük harf değiştirme işlemi dizinin her bir üyesine sırayla uygulanır ve genişletme sonuç listesidir.

${parameter@operator}

Parametre dönüşümü. Genişletme, operatör'ün değerine bağlı olarak, parametre değerinin dönüşümü veya parametre'nin kendisi hakkında bilgidir. Her operatör tek bir harftir:

U

Genişletme, küçük harfli alfabetik karakterlerin büyük harfe dönüştürüldüğü parametre değeri olan bir dizedir.

u

Genişletme, alfabetik ise ilk karakteri büyük harfe dönüştürülmüş parametre değeri olan bir dizedir.

L

Genişletme, büyük harfli alfabetik karakterlerin küçük harfe dönüştürüldüğü parametre değeri olan bir dizedir.

Q

Genişletme, girdi olarak yeniden kullanılabilecek bir biçimde alıntılanan parametre değeri olan bir dizedir.

E

Genişletme, $'...' alıntılama mekanizmasında olduğu gibi genişletilmiş ters eğik çizgi kaçış dizileri ile parametre değeri olan bir dizedir.

P

Genişletme, parameter değerinin bir bilgi istemi dizesiymiş gibi genişletilmesinin sonucu olan bir dizedir (aşağıdaki PROMPTING'e bakın).

A

Genişletme, bir atama ifadesi veya declare komutu biçimindeki bir dizedir ve değerlendirilirse öznitelikleri ve değeriyle parameter'i yeniden oluşturur.

K

Parametre değerinin muhtemelen alıntılanmış bir sürümünü üretir, ancak dizine alınmış ve ilişkisel dizilerin değerlerini alıntılanmış anahtar/değer çiftleri dizisi olarak yazdırır (yukarıdaki Diziler'e bakın) ).

a

Genişletme, parameter'in özniteliklerini temsil eden bayrak değerlerinden oluşan bir dizedir.

parameter, @ veya * ise, işlem sırayla her bir konum parametresine uygulanır ve sonuç listesi genişletme olur. parameter, @ veya * ile indisli bir dizi değişkeniyse, işlem sırayla dizinin her üyesine uygulanır ve sonuç listesi genişletme olur.

Genişletmenin sonucu, aşağıda açıklandığı gibi sözcük bölmeye ve yol adı genişletmeye tabidir.

Komut Değiştirme

Komut ikamesi, bir komutun çıktısının komut adını değiştirmesine izin verir. İki form vardır:

$(command )

veya

`command`

Bash, bir alt kabuk ortamında command komutunu yürüterek ve komut değiştirmeyi, sonundaki yeni satırları silerek komutun standart çıktısıyla değiştirerek genişletmeyi gerçekleştirir. Katıştırılmış yeni satırlar silinmez, ancak kelime bölme sırasında kaldırılabilirler. $ (cat file) komut ikamesi eşdeğer ancak daha hızlı olan $ (< ) ile değiştirilebilir dosya).

Yerine koymanın eski tarz ters tırnak biçimi kullanıldığında, ters eğik çizgi, ardından $, ` veya \ gelmesi dışında gerçek anlamını korur. Başında bir ters eğik çizgi olmayan ilk ters tırnak, komut ikamesini sonlandırır. $ ( command ) formunu kullanırken, parantezler arasındaki tüm karakterler komutu oluşturur; hiçbiri özel olarak tedavi edilmez.

Komut ikameleri iç içe olabilir. Ters tırnaklı formu kullanırken iç içe geçmek için, iç ters tırnaklardan ters eğik çizgi ile kaçının.

Değiştirme çift tırnak içinde görünüyorsa, sonuçlarda kelime bölme ve yol adı genişletme yapılmaz.

Aritmetik Genişletme

Aritmetik genişletme, bir aritmetik ifadenin değerlendirilmesine ve sonucun yerine konmasına izin verir. Aritmetik genişletmenin formatı şöyledir:

$((expression))

ifade çift tırnak içindeymiş gibi ele alınır, ancak parantez içindeki çift tırnak özel olarak ele alınmaz. İfadedeki tüm belirteçler, parametre ve değişken genişletme, komut değiştirme ve alıntı kaldırma işlemlerine tabi tutulur. Sonuç, değerlendirilecek aritmetik ifade olarak ele alınır. Aritmetik açılımlar iç içe olabilir.

Değerlendirme, aşağıda ARITMETİK DEĞERLENDİRME başlığı altında listelenen kurallara göre yapılır. ifade geçersizse, bash başarısızlığı belirten bir mesaj yazdırır ve herhangi bir değişiklik olmaz.

İşlem Değiştirme

İşlem ikamesi, bir işlemin girdi veya çıktısına bir dosya adı kullanılarak atıfta bulunulmasına olanak tanır. <(list ) veya >(list ) biçimini alır. liste işlemi eşzamansız olarak yürütülür ve girdisi veya çıktısı bir dosya adı olarak görünür. Bu dosya adı, genişletmenin sonucu olarak geçerli komuta argüman olarak iletilir. >(list ) formu kullanılırsa, dosyaya yazmak liste için girdi sağlar. <(list ) formu kullanılıyorsa, argüman olarak iletilen dosya okunarak liste çıktısı alınmalıdır. İşlem değiştirme, adlandırılmış yöneltmeler (FIFO'lar) veya açık dosyaları adlandırmak için /dev/fd yöntemini destekleyen sistemlerde desteklenir.

Mümkün olduğunda, işlem ikamesi, parametre ve değişken genişletme, komut ikamesi ve aritmetik genişletme ile aynı anda gerçekleştirilir.

Kelime Bölme

Kabuk, sözcük bölme için çift tırnak içinde olmayan parametre genişletme, komut ikamesi ve aritmetik genişletme sonuçlarını tarar.

Kabuk, IFS'nin her karakterini bir sınırlayıcı olarak ele alır ve bu karakterleri alan sonlandırıcılar olarak kullanarak diğer genişletmelerin sonuçlarını sözcüklere böler. IFS ayarlanmamışsa veya değeri tam olarak varsayılan <space><tab><newline> ise, önceki genişletmelerin sonuçlarının başındaki ve sonundaki <space>, <tab> ve <newline> dizileri yoksayılır ve başında veya sonunda olmayan herhangi bir IFS karakter dizisi sözcükleri sınırlamak için kullanılır. IFS'nin varsayılandan farklı bir değeri varsa, boşluk karakteri IFS (bir IFS boşluk karakteri) değerinde olduğu sürece, kelimenin başında ve sonunda boşluk, sekme ve yeni satır boşluk karakterlerinin dizileri yoksayılır. IFS'de IFS boşluk olmayan herhangi bir karakter, bitişik IFS boşluk karakterleriyle birlikte bir alanı sınırlandırır. Bir IFS boşluk karakteri dizisi de sınırlayıcı olarak kabul edilir. IFS'nin değeri null ise, kelime bölünmesi gerçekleşmez.

Açık boş bağımsız değişkenler ( " " veya  ' ' ) korunur ve komutlara boş dizeler olarak iletilir. Değeri olmayan parametrelerin genişletilmesinden kaynaklanan tırnak içine alınmamış örtülü boş bağımsız değişkenler kaldırılır. Değeri olmayan bir parametre çift tırnak içinde genişletilirse, boş bir bağımsız değişken ortaya çıkar ve korunur ve boş bir dize olarak bir komuta iletilir. Açılımı null olmayan bir Word'ün parçası olarak alıntılanan bir null argümanı göründüğünde, null argümanı kaldırılır. Yani, -d' ' sözcüğü, sözcük bölme ve null bağımsız değişkeni kaldırma işleminden sonra -d olur.

Herhangi bir genişletme gerçekleşmezse bölme yapılmayacağını unutmayın.

Yol Adı Genişletme

Kelime ayırmanın ardından, -f seçeneği ayarlanmamışsa, bash her kelimeyi *, ? ve [ karakterleri için tarar. Bu karakterlerden biri görünürse ve alıntı yapılmazsa, kelime bir kalıp olarak kabul edilir ve kalıpla eşleşen dosya adlarının alfabetik olarak sıralanmış bir listesiyle değiştirilir (aşağıdaki Kalıp Eşleştirme'ye bakın). Eşleşen dosya adı bulunamazsa ve nullglob kabuk seçeneği etkinleştirilmemişse, kelime değişmeden kalır. nullglob seçeneği ayarlanmışsa ve hiçbir eşleşme bulunamazsa kelime kaldırılır. failglob kabuk seçeneği ayarlanmışsa ve eşleşme bulunamazsa, bir hata mesajı yazdırılır ve komut yürütülmez. nocaseglob kabuk seçeneği etkinleştirildiyse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir. Yol adı genişletme için bir kalıp kullanıldığında, dotglob kabuk seçeneği ayarlanmadıkça, adın başındaki veya eğik çizgiden hemen sonraki ``.'' karakteri açıkça eşleştirilmelidir. `.'' ve ``..'' dosya adları, dotglob ayarlanmış olsa bile her zaman açıkça eşleştirilmelidir. Diğer durumlarda, ``.'' karakteri özel olarak ele alınmaz. Bir yol adı eşleştirilirken, eğik çizgi karakteri her zaman kalıptaki bir eğik çizgi ile açıkça eşleştirilmelidir, ancak diğer eşleştirme bağlamlarında, aşağıda Kalıp Eşleştirme altında açıklandığı gibi özel bir kalıp karakteri ile eşleştirilebilir. nocaseglob, nullglob, failglob ve dotglob kabuk seçeneklerinin açıklaması için aşağıdaki SHELL BUILTIN COMMANDS altındaki shopt açıklamasına bakın.

GLOBIGNORE kabuk değişkeni, bir kalıp ile eşleşen dosya adları kümesini kısıtlamak için kullanılabilir. GLOBIGNORE ayarlanırsa, GLOBIGNORE içindeki kalıplardan biriyle de eşleşen her eşleşen dosya adı, eşleşme listesinden kaldırılır. nocaseglob seçeneği ayarlanırsa, GLOBIGNORE içindeki kalıplarla eşleştirme, büyük/küçük harfe bakılmaksızın gerçekleştirilir. . ve .. dosya adları, GLOBIGNORE ayarlandığında ve null olmadığında her zaman yoksayılır. Ancak, GLOBIGNORE öğesini boş olmayan bir değere ayarlamak, dotglob kabuk seçeneğini etkinleştirme etkisine sahiptir, böylece . ile başlayan diğer tüm dosya adları eşleşir. . ile başlayan dosya adlarını yok sayma şeklindeki eski davranışı elde etmek için, GLOBIGNORE'daki kalıplardan birini .* yapın. dotglob seçeneği şu durumlarda devre dışı bırakılır:

GLOBIGNORE ayarlanmadı. Kalıp eşleştirme, extglob kabuk seçeneği ayarını dikkate alır.

Kalıp Eşleştirme

Aşağıda açıklanan özel kalıp karakterleri dışında bir kalıpta görünen herhangi bir karakter kendisiyle eşleşir. NUL karakteri bir kalıpta bulunmayabilir. Aşağıdaki karakterden bir ters eğik çizgi kaçar; eşleşen ters eğik çizgi atılır. Özel örüntü karakterleri, harfi harfine eşleştirilecekse alıntılanmalıdır.

Özel desen karakterleri aşağıdaki anlamlara sahiptir:

*

Boş dize dahil herhangi bir dizeyle eşleşir. globstar kabuk seçeneği etkinleştirildiğinde ve bir yol adı genişletme bağlamında * kullanıldığında, tek bir model olarak kullanılan iki bitişik *, tüm dosyalarla ve sıfır veya daha fazla dizin ve alt dizinle eşleşir. Arkasında bir / varsa, iki bitişik * yalnızca dizinler ve alt dizinlerle eşleşir.

?

Herhangi bir tek karakterle eşleşir.

[...]

Ekteki karakterlerden herhangi biriyle eşleşir. Tire ile ayrılan bir çift karakter, bir aralık ifadesini belirtir; geçerli yerel ayarın harmanlama sırası ve karakter kümesi kullanılarak bu iki karakter arasında kalan herhangi bir karakter eşleştirilir. ['den sonraki ilk karakter bir ! veya bir ^ ise, içine alınmayan herhangi bir karakter eşleştirilir. Aralık ifadelerindeki karakterlerin sıralama düzeni, geçerli yerel ayar ve ayarlanmışsa, LC_COLLATE veya LC_ALL kabuk değişkenlerinin değerleri tarafından belirlenir. [a-d]'nin [abcd]'ye eşdeğer olduğu aralık ifadelerinin geleneksel yorumunu elde etmek için, LC_ALL kabuk değişkeninin değerini C olarak ayarlayın veya globasciiranges kabuk seçeneğini etkinleştirin. Bir -, kümedeki ilk veya son karakter olarak dahil edilerek eşleştirilebilir. Bir ], kümedeki ilk karakter olarak dahil edilerek eşleştirilebilir.

[ ve ] içinde karakter sınıfları, [:sınıf:] söz dizimi kullanılarak belirtilebilir; burada sınıf, POSIX standardında tanımlanan aşağıdaki sınıflardan biridir:

alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit

Bir karakter sınıfı, o sınıfa ait herhangi bir karakterle eşleşir. word karakter sınıfı harfler, rakamlar ve _ karakteriyle eşleşir.

[ ve ] içinde, c karakteriyle aynı harmanlama ağırlığına (geçerli yerel ayar tarafından tanımlandığı şekilde) sahip tüm karakterlerle eşleşen [=c=] sözdizimi kullanılarak bir eşdeğerlik sınıfı belirtilebilir.

[ ve ] içinde, [.sembol.] sözdizimi harmanlamayla eşleşir sembol sembol.

extglob kabuk seçeneği, shopt yerleşiği kullanılarak etkinleştirilirse, birkaç genişletilmiş kalıp eşleştirme işleci tanınır. Aşağıdaki açıklamada, bir kalıp listesi, | ile ayrılmış bir veya daha fazla kalıbın listesidir. Bileşik modeller, aşağıdaki alt modellerden biri veya daha fazlası kullanılarak oluşturulabilir:

?( pattern-list )

Verilen kalıpların sıfır veya bir tekrarıyla eşleşir

*( pattern-list )

Verilen modellerin sıfır veya daha fazla örneğini eşleştirir

+( pattern-list )

Verilen modellerin bir veya daha fazla örneğini eşleştirir

@( pattern-list )

Verilen kalıplardan biriyle eşleşir

!( pattern-list )

Verilen kalıplardan biri dışında her şeyle eşleşir

Uzun dizilere karşı karmaşık genişletilmiş kalıp eşleştirme, özellikle kalıplar dönüşümler içerdiğinde ve diziler birden fazla eşleşme içerdiğinde yavaştır. Daha kısa dizilere karşı ayrı eşleşmeler kullanmak veya tek bir uzun dizi yerine dizi dizileri kullanmak daha hızlı olabilir.

Alıntı Kaldırma

Önceki genişletmelerden sonra, \, ' ve  "  karakterlerinin yukarıdaki genişletmelerin birinden kaynaklanmayan tüm alıntılanmamış oluşumları kaldırılır.

YÖNLENDİRME

Bir komut yürütülmeden önce girdisi ve çıktısı, kabuk tarafından yorumlanan özel bir gösterim kullanılarak yeniden yönlendirilebilir. Yönlendirme, komutların dosya tanıtıcılarının çoğaltılmasına, açılmasına, kapatılmasına, farklı dosyalara atıfta bulunulmasına izin verir ve komutun okuduğu ve yazdığı dosyaları değiştirebilir. Yeniden yönlendirme, geçerli kabuk yürütme ortamındaki dosya tanıtıcılarını değiştirmek için de kullanılabilir. Aşağıdaki yeniden yönlendirme işleçleri, bir basit komut içinde herhangi bir yerde yer alabilir veya bunlardan önce gelebilir veya bir komuttan sonra gelebilir. Yönlendirmeler, göründükleri sırayla soldan sağa doğru işlenir.

Başında bir dosya tanıtıcı numarası olan her yeniden yönlendirme, bunun yerine {varname} biçiminde bir sözcükten önce gelebilir. Bu durumda, >&- ve <&- dışındaki her yeniden yönlendirme işleci için, kabuk 10'a eşit veya ondan büyük bir dosya tanıtıcısı tahsis eder ve bunu varname'e atar. >&- veya <&-'den önce {varadı} geliyorsa, varadı değeri kapatılacak dosya tanıtıcıyı tanımlar. {varname} sağlanırsa, yeniden yönlendirme komutun kapsamı dışında kalarak kabuk programcısının dosya tanıtıcıyı kendisinin yönetmesine izin verir.

Aşağıdaki açıklamalarda, dosya tanımlayıcı numarası atlanırsa ve yeniden yönlendirme işlecinin ilk karakteri < ise, yeniden yönlendirme standart girişi (dosya tanımlayıcı 0) ifade eder. Yönlendirme operatörünün ilk karakteri > ise, yönlendirme standart çıktıyı (dosya tanımlayıcı 1) ifade eder.

Aşağıdaki açıklamalarda yeniden yönlendirme işlecinden sonra gelen kelime, aksi belirtilmedikçe, kaşlı ayraç genişletme, tilde genişletme, parametre ve değişken genişletme, komut değiştirme, aritmetik genişletme, alıntı kaldırma, yol adı genişletme ve sözcük bölme işlemlerine tabi tutulur. Birden fazla kelimeye genişlerse, bash bir hata bildirir.

Yönlendirme sırasının önemli olduğunu unutmayın. Örneğin, komut

ls > dirlist 2>&1

hem standart çıktıyı hem de standart hatayı dirlist dosyasına yönlendirirken, komut

ls 2>&1 > dirlist

yalnızca standart çıktıyı dirlist dosyasına yönlendirir, çünkü standart hata, standart çıktı dirlist'e yeniden yönlendirilmeden önce standart çıktıdan kopyalanmıştır.

Bash, aşağıdaki tabloda açıklandığı gibi, yeniden yönlendirmelerde kullanıldıklarında birkaç dosya adını özel olarak işler. bash'ın çalıştığı işletim sistemi bu özel dosyaları sağlıyorsa, bash bunları kullanır; aksi takdirde, aşağıda açıklanan davranışla bunları dahili olarak taklit eder.

/dev/fd/fd

fd geçerli bir tamsayıysa, fd dosya tanıtıcısı yinelenir.

/dev/stdin

Dosya tanıtıcısı 0 çoğaltıldı.

/dev/stdout

Dosya tanımlayıcı 1 çoğaltıldı.

/dev/stderr

Dosya tanımlayıcı 2 çoğaltıldı.

/dev/tcp/host/port

ana bilgisayar geçerli bir ana bilgisayar adı veya İnternet adresiyse ve bağlantı noktası bir tamsayı bağlantı noktası numarası veya hizmet adıysa, bash karşılık gelen TCP soketini açmaya çalışır. .

/dev/udp/host/port

ana bilgisayar geçerli bir ana bilgisayar adı veya İnternet adresiyse ve bağlantı noktası bir tamsayı bağlantı noktası numarası veya hizmet adıysa, bash karşılık gelen UDP soketini açmaya çalışır. .

Dosya açma veya oluşturma hatası, yeniden yönlendirmenin başarısız olmasına neden olur.

9'dan büyük dosya tanımlayıcıları kullanan yönlendirmeler, kabuğun dahili olarak kullandığı dosya tanımlayıcılarla çakışabileceğinden dikkatli kullanılmalıdır.

Yönlendirme Girişi

Girişin yeniden yönlendirilmesi, adı word'ün genişletilmesinden kaynaklanan dosyanın n dosya tanıtıcısında veya n belirtilmemiş.

Girdiyi yönlendirmek için genel biçim şöyledir:

[n]<word

Çıktıyı Yönlendirme

Çıktının yeniden yönlendirilmesi, adı word'ün genişletilmesinden kaynaklanan dosyanın n dosya tanımlayıcısına veya n belirtilmemişse standart çıktıya (dosya tanımlayıcı 1) yazılmak üzere açılmasına neden olur. Dosya yoksa oluşturulur; varsa, sıfır boyutuna kesilir.

Çıktıyı yönlendirmek için genel biçim şöyledir:

[n]>word

Yönlendirme işleci > ise ve set yerleşiği için noclobber seçeneği etkinleştirildiyse, adı word'ün genişletilmesinden kaynaklanan dosya mevcutsa ve normal bir dosyaysa yeniden yönlendirme başarısız olur. Yönlendirme işleci >| veya yeniden yönlendirme işleci > ise ve yerleşik set komutunun noclobber seçeneği etkin değilse, word adlı dosya mevcut olsa bile yeniden yönlendirme denenir.

Yönlendirilmiş Çıktı Ekleme

Çıktının bu şekilde yeniden yönlendirilmesi, adı word'ün genişletilmesinden kaynaklanan dosyanın n dosya tanımlayıcısına veya n belirtilmemişse standart çıktıya (dosya tanımlayıcı 1) eklenmesi için açılmasına neden olur. Dosya yoksa oluşturulur.

Çıktı eklemek için genel biçim şöyledir:

[n]>>word

Standart Çıktıyı Yönlendirme ve Standart Hata

Bu yapı, hem standart çıktının (dosya tanımlayıcı 1) hem de standart hata çıktısının (dosya tanımlayıcı 2), adı word'ün açılımı olan dosyaya yeniden yönlendirilmesine izin verir.

Standart çıktıyı ve standart hatayı yeniden yönlendirmek için iki biçim vardır:

&>word

Ve

>&word

İki formdan birincisi tercih edilir. Bu anlamsal olarak eşdeğerdir

>word 2>&1

İkinci formu kullanırken, kelime bir sayıya veya -'ye genişleyemeyebilir. Varsa, uyumluluk nedenleriyle diğer yeniden yönlendirme işleçleri uygulanır (aşağıdaki Dosya Tanımlayıcılarını Çoğaltma'ya bakın).

Eklenen Standart Çıktı ve Standart Hata

Bu yapı, hem standart çıktının (dosya tanımlayıcı 1) hem de standart hata çıktısının (dosya tanımlayıcı 2), adı word'ün açılımı olan dosyaya eklenmesine izin verir.

Standart çıktıyı ve standart hatayı ekleme biçimi şöyledir:

&>>word

Bu anlamsal olarak eşdeğerdir

>>word 2>&1

(aşağıdaki Dosya Tanımlayıcılarını Çoğaltma'ya bakın).

İşte Belgeler

Bu tür yeniden yönlendirme, kabuğa yalnızca sınırlayıcı içeren (sonunda boşluk olmayan) bir satır görünene kadar geçerli kaynaktan gelen girdiyi okuması talimatını verir. O noktaya kadar okunan tüm satırlar daha sonra bir komut için standart girdi (veya n belirtilirse dosya tanımlayıcı n) olarak kullanılır.

Buradaki belgelerin formatı şöyledir:

[n]<<[-]word
        here-document
delimiter

Word üzerinde parametre ve değişken genişletme, komut değiştirme, aritmetik genişletme veya yol adı genişletme yapılmaz. kelime'nin herhangi bir kısmı alıntılanmışsa, sınırlayıcı, kelime üzerindeki alıntının kaldırılmasının sonucudur ve buradaki belgedeki satırlar, genişletildi. word tırnak içine alınmamışsa, buradaki belgenin tüm satırları parametre genişletmeye, komut ikamesine ve aritmetik genişletmeye tabi tutulur, \<newline> karakter dizisi yoksayılır ve \, \, $ ve ` karakterlerini alıntılamak için kullanılmalıdır.

Yönlendirme işleci <<- ise, tüm öndeki sekme karakterleri giriş satırlarından ve sınırlayıcı içeren satırdan çıkarılır. Bu, kabuk betikleri içindeki burada belgelerin doğal bir şekilde girintilenmesine izin verir.

İşte Dizeler

Buradaki belgelerin bir çeşidi olan biçim şöyledir:

[n]<<<word

Word tilde genişletme, parametre ve değişken genişletme, komut ikamesi, aritmetik genişletme ve alıntı kaldırma işlemlerinden geçer. Yol adı genişletme ve kelime bölme yapılmaz. Sonuç, standart girdisindeki komuta (veya n belirtilmişse n dosya tanıtıcısına) eklenen yeni bir satırla tek bir dize olarak sağlanır.

Dosya Tanımlayıcılarını Çoğaltma

yeniden yönlendirme operatörü

[n]<&word

giriş dosyası tanımlayıcılarını çoğaltmak için kullanılır. kelime bir veya daha fazla basamağa genişlerse, n ile gösterilen dosya tanıtıcı, o dosya tanıtıcının bir kopyası olacak şekilde yapılır. kelime içindeki rakamlar giriş için açık bir dosya tanıtıcı belirtmiyorsa, yeniden yönlendirme hatası oluşur. word, - olarak değerlendirilirse, n dosya tanıtıcısı kapatılır. n belirtilmezse, standart girdi (dosya tanıtıcı 0) kullanılır.

Operatör

[n]>&word

çıktı dosyası tanımlayıcılarını çoğaltmak için benzer şekilde kullanılır. n belirtilmezse, standart çıktı (dosya tanıtıcı 1) kullanılır. kelime içindeki rakamlar çıktı için açık bir dosya tanıtıcı belirtmiyorsa, yeniden yönlendirme hatası oluşur. word, - olarak değerlendirilirse, n dosya tanıtıcısı kapatılır. Özel bir durum olarak, n atlanırsa ve word bir veya daha fazla basamağa veya - genişlemiyorsa, standart çıktı ve standart hata daha önce açıklandığı gibi yeniden yönlendirilir.

Dosya Tanımlayıcıları Taşıma

yeniden yönlendirme operatörü

[n]<&digit-

digit dosya tanımlayıcısını n dosya tanımlayıcısına veya n belirtilmemişse standart girdiye (dosya tanımlayıcı 0) taşır. digit, n olarak çoğaltıldıktan sonra kapatılır.

Benzer şekilde, yeniden yönlendirme operatörü

[n]>&digit-

digit dosya tanımlayıcısını n dosya tanımlayıcısına veya n belirtilmemişse standart çıktıya (dosya tanımlayıcı 1) taşır.

Okuma ve Yazma için Dosya Tanımlayıcıları Açma

yeniden yönlendirme operatörü

[n]<>word

adı word'ün açılımı olan dosyanın, n dosya tanıtıcısında veya n ise dosya tanıtıcı 0'da hem okuma hem de yazma için açılmasına neden olur belirtilmemiş. Dosya yoksa oluşturulur.

Takma adlar

Takma adlar, basit bir komutun ilk sözcüğü olarak kullanıldığında bir dizenin bir sözcükle değiştirilmesine izin verir. Kabuk, alias ve unalias yerleşik komutlarıyla ayarlanıp ayarlanamayan takma adların bir listesini tutar (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). Her basit komutun ilk sözcüğü, tırnak içine alınmamışsa, takma adı olup olmadığı kontrol edilir. Eğer öyleyse, o kelime takma adın metni ile değiştirilir. /, $, ` ve = karakterleri ve yukarıda listelenen kabuk meta karakterleri veya alıntı karakterleri bir takma adda görünmeyebilir. Değiştirme metni, kabuk metakarakterleri dahil olmak üzere herhangi bir geçerli kabuk girdisi içerebilir. Değiştirme metninin ilk sözcüğü takma adlar için test edilir, ancak genişletilen diğer adla aynı olan bir sözcük ikinci kez genişletilmez. Bu, örneğin, birinin ls'i ls -F olarak adlandırabileceği ve bash'ın değiştirilen metni yinelemeli olarak genişletmeye çalışmadığı anlamına gelir. Diğer ad değerinin son karakteri bir boş ise, takma adı takip eden bir sonraki komut sözcüğü de takma ad genişletme için kontrol edilir.

Takma adlar alias komutuyla oluşturulur ve listelenir ve unalias komutuyla kaldırılır.

Değiştirme metninde bağımsız değişkenleri kullanmak için bir mekanizma yoktur. Argümanlara ihtiyaç duyulursa, bir kabuk işlevi kullanılmalıdır (aşağıdaki FONKSİYONLAR'a bakın).

Takma adlar, kabuk etkileşimli olmadığında, expand_aliases kabuk seçeneği shopt kullanılarak ayarlanmadıkça genişletilmez (shopt altındaki shopt açıklamasına bakın >KABUK YERLEŞİK KOMUTLARI aşağıda).

Takma adların tanımı ve kullanımına ilişkin kurallar biraz kafa karıştırıcıdır. Bash, o satırdaki veya bileşik komuttaki komutlardan herhangi birini yürütmeden önce, her zaman en az bir tam girdi satırını ve bir bileşik komutu oluşturan tüm satırları okur. Takma adlar, bir komut yürütüldüğünde değil, okunduğunda genişletilir. Bu nedenle, başka bir komutla aynı satırda görünen takma ad tanımı, bir sonraki giriş satırı okunana kadar etkili olmaz. O satırdaki takma ad tanımını izleyen komutlar, yeni takma addan etkilenmez. Bu davranış, işlevler yürütüldüğünde de bir sorundur. Takma adlar, işlev yürütüldüğünde değil, işlev tanımı okunduğunda genişletilir, çünkü işlev tanımının kendisi bir komuttur. Sonuç olarak, bir işlevde tanımlanan takma adlar, o işlev yürütülene kadar kullanılamaz. Güvende olmak için takma ad tanımlarını her zaman ayrı bir satıra koyun ve bileşik komutlarda alias kullanmayın.

Takma adların yerini hemen hemen her amaç için kabuk işlevleri alır.

FONKSİYONLAR

Yukarıda SHELL GRAMMAR altında açıklandığı gibi tanımlanan bir kabuk işlevi, daha sonra yürütülmek üzere bir dizi komut saklar. Bir kabuk işlevinin adı basit bir komut adı olarak kullanıldığında, o işlev adıyla ilişkili komutların listesi yürütülür. İşlevler, geçerli kabuk bağlamında yürütülür; bunları yorumlamak için yeni bir süreç oluşturulmaz (bunu bir kabuk betiğinin yürütülmesiyle karşılaştırın). Bir işlev yürütüldüğünde, işlevin bağımsız değişkenleri yürütme sırasında konumsal parametreler haline gelir. # özel parametresi, değişikliği yansıtacak şekilde güncellenir. 0 özel parametresi değişmedi. FUNCNAME değişkeninin ilk elemanı, işlev yürütülürken işlevin adına ayarlanır.

Kabuk yürütme ortamının diğer tüm yönleri, şu istisnalar dışında bir işlev ve onu çağıran arasında aynıdır: DEBUG ve RETURN tuzakları (trap< açıklamasına bakın) Aşağıdaki SHELL BUILTIN COMMANDS altındaki yerleşiği), işleve trace özniteliği verilmediği sürece devralınmaz (bildir açıklamasına bakın) yerleşik) veya -o functrace kabuk seçeneği, set yerleşiğiyle etkinleştirilmiştir (bu durumda tüm işlevler DEBUG ve 'ı devralır >RETURN tuzakları) ve -o errtrace kabuk seçeneği etkinleştirilmedikçe ERR tuzağı miras alınmaz.

İşleve yerel değişkenler, local yerleşik komutuyla bildirilebilir. Normalde, değişkenler ve değerleri, işlev ve onu çağıran arasında paylaşılır. Bir değişken yerel olarak bildirilirse, değişkenin görünür kapsamı o işlev ve alt öğeleriyle (çağırdığı işlevler dahil) kısıtlanır. Yerel değişkenler önceki kapsamlarda bildirilen aynı ada sahip "gölge" değişkenler. Örneğin, bir işlevde bildirilen bir yerel değişken, aynı ada sahip bir genel değişkeni gizler: referanslar ve atamalar yerel değişkene atıfta bulunur ve genel değişkeni değiştirilmeden bırakır. İşlev geri döndüğünde, global değişken bir kez daha görünür hale gelir.

Kabuk, bir değişkenin işlevler içindeki görünürlüğünü kontrol etmek için dinamik kapsam belirleme kullanır. Dinamik kapsam belirlemede, görünür değişkenler ve değerleri, yürütmenin geçerli işleve ulaşmasına neden olan işlev çağrıları dizisinin bir sonucudur. Bir işlevin gördüğü bir değişkenin değeri, çağıranın "genel" kapsam mı yoksa başka bir kabuk işlevi mi olduğuna, varsa çağıran içindeki değerine bağlıdır. Bu aynı zamanda bir yerel değişken bildiriminin "gölgelediği" değerdir ve işlev döndüğünde geri yüklenen değerdir.

Örneğin, bir var değişkeni func1 işlevinde yerel olarak bildirilirse ve func1 başka bir işlevi func2 çağırırsa, func2 içinden yapılan var referansları, func1'deki var yerel değişkenine çözümlenerek, adlı herhangi bir genel değişkeni gölgeler. var.

unset yerleşiği, aynı dinamik kapsamı kullanarak da hareket eder: bir değişken geçerli kapsamda yerelse, unset değişkenin ayarını kaldırır; aksi halde unset, yukarıda açıklandığı gibi herhangi bir çağrı kapsamında bulunan değişkene atıfta bulunacaktır. Geçerli yerel kapsamdaki bir değişken ayarlanmamışsa, bu kapsamda sıfırlanana veya işlev geri dönene kadar öyle kalacaktır. İşlev geri döndüğünde, önceki kapsamdaki değişkenin herhangi bir örneği görünür hale gelir. Unset, önceki bir kapsamdaki bir değişken üzerinde hareket ederse, bu ada sahip bir değişkenin gölgelenmiş herhangi bir örneği görünür hale gelir.

FUNCNEST değişkeni, 0'dan büyük bir sayısal değere ayarlanırsa, maksimum işlev iç içe geçme düzeyini tanımlar. Sınırı aşan işlev çağrıları, tüm komutun iptal olmasına neden olur.

Yerleşik return komutu bir işlevde yürütülürse, işlev tamamlanır ve yürütme, işlev çağrısından sonraki bir sonraki komutla devam eder. RETURN tuzağıyla ilişkili herhangi bir komut, yürütme devam etmeden önce yürütülür. Bir işlev tamamlandığında, konum parametrelerinin ve # özel parametresinin değerleri, işlevin yürütülmesinden önceki değerlerine geri yüklenir.

İşlev adları ve tanımları, yerleşik komutların declare veya typeset -f seçeneğiyle listelenebilir. -F seçeneği bildirmek veya yazı kümesi yalnızca işlev adlarını (ve isteğe bağlı olarak, extdebug kabuk seçeneği etkinleştirildi). İşlevler, alt kabukların onları otomatik olarak -f seçeneğiyle export yerleşiğine tanımlamasını sağlayacak şekilde dışa aktarılabilir. unset yerleşikine -f seçeneği kullanılarak bir işlev tanımı silinebilir.

Fonksiyonlar özyinelemeli olabilir. FUNCNEST değişkeni, işlev çağrısı yığınının derinliğini sınırlamak ve işlev çağrılarının sayısını kısıtlamak için kullanılabilir. Varsayılan olarak, özyinelemeli çağrıların sayısına herhangi bir sınırlama getirilmemiştir.

ARİTMETİK DEĞERLENDİRME

Kabuk, belirli koşullar altında aritmetik ifadelerin değerlendirilmesine izin verir (let ve declare yerleşik komutlarına, (( bileşik komut ve Aritmetik Genişletme'ye bakın). Değerlendirme, taşma kontrolü olmaksızın sabit genişlikli tamsayılarda yapılır, ancak 0'a bölme yakalanır ve bir hata olarak işaretlenir. Operatörler ve bunların öncelikleri, ilişkilendirilebilirlikleri ve değerleri, C dilindeki ile aynı. Aşağıdaki operatörler listesi, eşit öncelikli operatör seviyeleri halinde gruplandırılmıştır. Seviyeler, azalan öncelik sırasına göre listelenmiştir.

id++ id--

artış sonrası ve düşüş sonrası değişken

- +

tekli eksi ve artı

++id --id

değişken ön artırma ve ön azaltma

! ~

mantıksal ve bit düzeyinde olumsuzlama

**

üs alma

* / %

çarpma, bölme, kalan

+ -

Ekleme çıkarma

<< >>

sol ve sağ bitsel kaydırmalar

<= >= < >

karşılaştırmak

== !=

eşitlik ve eşitsizlik

&

bitsel VE

^

bit düzeyinde özel VEYA

|

bitsel VEYA

&&

mantıksal VE

||

mantıksal VEYA

expr?expr:expr

koşullu operatör

= *= /= %= += -= <<= >>= &= ^= |=

atama

expr1 , expr2

virgül

Kabuk değişkenlerine işlenenler olarak izin verilir; parametre genişletme, ifade değerlendirilmeden önce gerçekleştirilir. Bir ifade içinde, kabuk değişkenlerine, parametre genişletme sözdizimi kullanılmadan ada göre de başvurulabilir. Boş veya ayarlanmamış bir kabuk değişkeni, parametre genişletme sözdizimi kullanılmadan ada göre başvurulduğunda 0 olarak değerlendirilir. Bir değişkenin değeri, başvurulduğu zaman veya integer özelliği verilen bir değişkene declare -i kullanılarak bir değer atandığında aritmetik bir ifade olarak değerlendirilir. Boş değer 0 olarak değerlendirilir. Bir kabuk değişkeninin bir ifadede kullanılması için integer özniteliğinin açık olması gerekmez.

Tamsayı sabitleri, son ekler veya karakter sabitleri olmadan C dili tanımını takip eder. Başında 0 olan sabitler, sekizli sayılar olarak yorumlanır. Baştaki 0x veya 0X, onaltılıyı belirtir. Aksi takdirde, sayılar [base#]n biçimini alır; burada isteğe bağlı taban, aritmetik tabanı temsil eden 2 ile 64 arasında bir ondalık sayıdır ve n bu tabandaki bir sayıdır. base# atlanırsa, 10 tabanı kullanılır. n belirtilirken, basamak olmayan bir sayı gerekliyse, 9'dan büyük basamaklar bu sırada küçük harfler, büyük harfler, @ ve _ ile temsil edilir. taban 36'dan küçük veya eşitse, 10 ile 35 arasındaki sayıları temsil etmek için küçük ve büyük harfler birbirinin yerine kullanılabilir.

Operatörler öncelik sırasına göre değerlendirilir. Parantez içindeki alt ifadeler önce değerlendirilir ve yukarıdaki öncelik kurallarını geçersiz kılabilir.

ŞARTLI İFADELER

Koşullu ifadeler, [[ bileşik komut ve test ve [ yerleşik komutları tarafından dosya özniteliklerini test etmek ve dizi ve aritmetik karşılaştırmalar yapmak için kullanılır. test ve [ komutları, davranışlarını bağımsız değişken sayısına göre belirler; komuta özgü diğer eylemler için bu komutların açıklamalarına bakın.

İfadeler, aşağıdaki tekli veya ikili birincillerden oluşturulur. Bash, ifadelerde kullanıldıklarında birkaç dosya adını özel olarak işler. bash'ın çalıştığı işletim sistemi bu özel dosyaları sağlıyorsa, bash bunları kullanır; aksi halde bu davranışla onları dahili olarak taklit eder: Birincil dosyalardan birinin herhangi bir file argümanı /dev/fd/n biçimindeyse, n dosya tanıtıcısı kontrol edilir. Birincil dosyalardan birinin file bağımsız değişkeni /dev/stdin, /dev/stdout veya /dev/stderr'den biriyse, sırasıyla dosya tanıtıcı 0, 1 veya 2 kontrol edilir.

Aksi belirtilmedikçe, dosyalar üzerinde çalışan birincil dosyalar sembolik bağları takip eder ve bağlantının kendisi yerine bağlantının hedefinde çalışır.

[[ ile kullanıldığında, < ve > işleçleri, geçerli yerel ayarı kullanarak sözlüksel olarak sıralar. test komutu, ASCII sıralamasını kullanarak sıralama yapar.

-a file

dosya varsa doğrudur.

-b file

file mevcutsa ve blok özel bir dosyaysa doğrudur.

-c file

file mevcutsa ve karaktere özel bir dosyaysa doğrudur.

-d file

dosya varsa ve bir dizinse doğrudur.

-e file

dosya varsa doğrudur.

-f file

dosya mevcutsa ve normal bir dosyaysa doğrudur.

-g file

file varsa ve set-group-id ise doğrudur.

-h file

dosya varsa ve sembolik bir bağlantıysa doğrudur.

-k file

dosya varsa ve ``yapışkan'' biti ayarlanmışsa doğrudur.

-p file

dosya varsa ve adlandırılmış bir yöneltme (FIFO) ise doğrudur.

-r file

dosya varsa ve okunabilir durumdaysa doğrudur.

-s file

dosya mevcutsa ve boyutu sıfırdan büyükse doğrudur.

-t fd

fd dosya tanıtıcısı açıksa ve bir terminale başvuruyorsa doğrudur.

-u file

file mevcutsa ve set-user-id biti ayarlanmışsa doğrudur.

-w file

dosya varsa ve yazılabilirse doğrudur.

-x file

dosya varsa ve yürütülebilir durumdaysa doğrudur.

-G file

dosya varsa ve etkin grup kimliğine aitse doğrudur.

-L file

dosya varsa ve sembolik bir bağlantıysa doğrudur.

-N file

dosya mevcutsa ve son okunduğundan beri değiştirilmişse doğrudur.

-O file

dosya varsa ve etkin kullanıcı kimliğine aitse doğrudur.

-S file

file varsa ve bir soket ise doğrudur.

file1 -ef file2

file1 ve file2 aynı cihaza ve inode numaralarına başvuruyorsa doğrudur.

file1 -nt file2

dosya1, dosya2'den daha yeniyse (değiştirme tarihine göre) veya dosya1 varsa ve dosya2 yoksa doğrudur. .

file1 -ot file2

dosya1, dosya2'den eskiyse veya dosya2 varsa ve dosya1 yoksa doğrudur.

-o optname

optname kabuk seçeneği etkinleştirildiyse doğrudur. Aşağıdaki yerleşik -o seçeneğinin açıklaması altındaki seçenekler listesine bakın.

-v varname

varname kabuk değişkeni ayarlanmışsa (bir değer atanmışsa) doğrudur.

-R varname

varname kabuk değişkeni ayarlanmışsa ve bir ad başvurusuysa doğrudur.

-z string

dize'nin uzunluğu sıfırsa doğrudur.

string
-n string

dize'nin uzunluğu sıfır değilse doğrudur.

string1 == string2
string1 = string2

Dizeler eşitse doğrudur. POSIX uyumluluğu için test komutuyla = kullanılmalıdır. [[ komutuyla birlikte kullanıldığında bu, yukarıda açıklandığı gibi kalıp eşleştirme gerçekleştirir (Bileşik Komutlar).

string1 != string2

Dizeler eşit değilse doğrudur.

string1 < string2

string1, sözlüksel olarak string2'den önce sıralanırsa doğrudur.

string1 > string2

string1, sözlüksel olarak string2'den sonra sıralanırsa doğrudur.

arg1 OP arg2

OP, -eq, -ne, -lt, -le, -gt veya -ge'den biridir. Bu aritmetik ikili işleçler, arg1 sırasıyla arg2'ye eşit, eşit değil, küçük, küçük veya eşit, büyük veya büyük veya eşitse doğru döndürür. Arg1 ve arg2 pozitif veya negatif tam sayılar olabilir. [[ komutuyla kullanıldığında, Arg1 ve Arg2 aritmetik ifadeler olarak değerlendirilir (yukarıdaki ARITHMETIC DEĞERLENDİRME'ye bakın).

BASİT KOMUT GENİŞLETME

Basit bir komut yürütüldüğünde, kabuk aşağıdaki genişletmeleri, atamaları ve yönlendirmeleri soldan sağa aşağıdaki sırayla gerçekleştirir.

  1. Ayrıştırıcının değişken atamaları (komut adından önce gelenler) ve yeniden yönlendirmeler olarak işaretlediği sözcükler daha sonra işlenmek üzere kaydedilir.

  2. Değişken atamaları veya yönlendirmeleri olmayan kelimeler genişletilir. Açıldıktan sonra herhangi bir kelime kalırsa, ilk kelime komutun adı olarak alınır ve kalan kelimeler argümanlardır.

  3. Yönlendirmeler, yukarıda YÖNLENDİRME altında açıklandığı gibi gerçekleştirilir.

  1. Her değişken atamasında = işaretinden sonraki metin, değişkene atanmadan önce tilde genişletme, parametre genişletme, komut değiştirme, aritmetik genişletme ve alıntı kaldırma işlemlerinden geçer.

Hiçbir komut adı çıkmazsa, değişken atamaları geçerli kabuk ortamını etkiler. Aksi takdirde, değişkenler çalıştırılan komutun ortamına eklenir ve mevcut kabuk ortamını etkilemez. Atamalardan herhangi biri salt okunur bir değişkene değer atamaya çalışırsa, bir hata oluşur ve komut sıfırdan farklı bir durumla çıkar.

Hiçbir komut adı çıkmazsa, yeniden yönlendirmeler gerçekleştirilir ancak geçerli kabuk ortamını etkilemez. Yeniden yönlendirme hatası, komutun sıfır olmayan bir durumla çıkmasına neden olur.

Genişletmeden sonra kalan bir komut adı varsa, yürütme aşağıda açıklandığı gibi ilerler. Aksi takdirde komuttan çıkılır. Genişletmelerden biri bir komut ikamesi içeriyorsa, komutun çıkış durumu gerçekleştirilen son komut ikamesinin çıkış durumudur. Komut ikamesi yoksa, komut sıfır durumuyla çıkar.

KOMUT YÜRÜTME

Bir komut kelimelere bölündükten sonra, basit bir komut ve isteğe bağlı bir bağımsız değişken listesiyle sonuçlanırsa, aşağıdaki eylemler gerçekleştirilir.

Komut adı eğik çizgi içermiyorsa, kabuk onu bulmaya çalışır. Bu ada sahip bir kabuk işlevi varsa, bu işlev yukarıda FONKSİYONLAR bölümünde açıklandığı gibi çağrılır. Ad bir işlevle eşleşmiyorsa, kabuk onu kabuk yerleşikleri listesinde arar. Bir eşleşme bulunursa, bu yerleşik çağrılır.

Ad ne bir kabuk işlevi ne de bir yerleşik ise ve eğik çizgi içermiyorsa, bash PATH öğesinin her bir öğesini bu ada sahip yürütülebilir bir dosya içeren bir dizin için arar. Bash, yürütülebilir dosyaların tam yol adlarını hatırlamak için bir karma tablo kullanır (aşağıdaki SHELL BUILTIN COMMANDS altındaki hash'e bakın). PATH içindeki dizinlerin tam araması, yalnızca komut hash tablosunda bulunmazsa gerçekleştirilir. Arama başarısız olursa kabuk, command_not_found_handle adlı tanımlanmış bir kabuk işlevini arar. Bu işlev varsa, orijinal komut ve orijinal komutun bağımsız değişkenleri kendi bağımsız değişkenleri olarak ayrı bir yürütme ortamında çağrılır ve işlevin çıkış durumu, o alt kabuğun çıkış durumu olur. Bu işlev tanımlanmamışsa, kabuk bir hata mesajı yazdırır ve 127 çıkış durumunu döndürür.

Arama başarılı olursa veya komut adı bir veya daha fazla eğik çizgi içeriyorsa, kabuk adı verilen programı ayrı bir yürütme ortamında yürütür. Bağımsız değişken 0, verilen ada ayarlanır ve komutun geri kalan bağımsız değişkenleri, varsa, verilen bağımsız değişkenlere ayarlanır.

Dosya yürütülebilir biçimde olmadığı ve dosya bir dizin olmadığı için bu yürütme başarısız olursa, bunun bir kabuk betiği, kabuk komutları içeren bir dosya olduğu varsayılır. Çalıştırmak için bir alt kabuk oluşturulur. Bu alt kabuk kendini yeniden başlatır, böylece ebeveyn tarafından hatırlanan komutların konumlarının (aşağıda SHELL BUILTIN COMMANDS altındaki karma'ya bakın) çocuk tarafından tutulması haricinde, etki, betiği işlemek için yeni bir kabuk çağrılmış gibi olur.

Program #! ile başlayan bir dosyaysa, ilk satırın geri kalanı program için bir yorumlayıcı belirtir. Kabuk, belirtilen yorumlayıcıyı, bu yürütülebilir biçimi kendileri işlemeyen işletim sistemlerinde yürütür. Yorumlayıcı bağımsız değişkenleri, programın ilk satırında yorumlayıcı adını izleyen tek bir isteğe bağlı bağımsız değişkenden, ardından programın adından ve ardından varsa komut bağımsız değişkenlerinden oluşur.

KOMUT YÜRÜTME ORTAMI

Kabuk, aşağıdakilerden oluşan bir yürütme ortamına sahiptir:

  • çağırma sırasında kabuk tarafından devralınan, exec yerleşiğine sağlanan yeniden yönlendirmelerle değiştirilmiş açık dosyalar

  • cd, pushd veya popd tarafından ayarlanan veya çağrı sırasında kabuk tarafından devralınan geçerli çalışma dizini

  • umask tarafından ayarlanan veya kabuğun üst öğesinden devralınan dosya oluşturma modu maskesi

  • tuzak tarafından ayarlanan mevcut tuzaklar

  • değişken atamasıyla veya ayarla ile ayarlanan veya ortamdaki kabuğun üst öğesinden devralınan kabuk parametreleri

  • yürütme sırasında tanımlanan veya ortamdaki kabuğun üst öğesinden miras alınan kabuk işlevleri

  • çağrı sırasında (varsayılan olarak veya komut satırı bağımsız değişkenleriyle) veya ayarla tarafından etkinleştirilen seçenekler

  • shopt tarafından etkinleştirilen seçenekler

  • takma ad ile tanımlanan kabuk takma adları

  • arka plan işleri, $$ değeri ve PPID değeri dahil olmak üzere çeşitli işlem kimlikleri. Yerleşik veya kabuk işlevi dışında basit bir komut yürütüleceği zaman, aşağıdakilerden oluşan ayrı bir yürütme ortamında çağrılır. Aksi belirtilmedikçe, değerler kabuktan devralınır.

  • kabuğun açık dosyaları ve ayrıca komuta yönlendirmelerle belirtilen tüm değişiklikler ve eklemeler

  • geçerli çalışma dizini

  • dosya oluşturma modu maskesi

  • Dışa aktarma için işaretlenen kabuk değişkenleri ve işlevleri, komut için dışa aktarılan ve ortama aktarılan değişkenlerle birlikte

  • kabuk tarafından yakalanan tuzaklar, kabuğun üst öğesinden miras alınan değerlere sıfırlanır ve kabuk tarafından yoksayılan tuzaklar dikkate alınmaz

Bu ayrı ortamda çağrılan bir komut, kabuğun yürütme ortamını etkileyemez.

Komut ikamesi, parantezlerle gruplandırılmış komutlar ve eşzamansız komutlar, kabuk tarafından yakalanan tuzakların, çağırma sırasında kabuğun üst öğesinden devraldığı değerlere sıfırlanması dışında, kabuk ortamının kopyası olan bir alt kabuk ortamında çağrılır. Bir işlem hattının parçası olarak çağrılan yerleşik komutlar da bir alt kabuk ortamında yürütülür. Alt kabuk ortamında yapılan değişiklikler, kabuğun yürütme ortamını etkileyemez.

Komut ikamelerini yürütmek için oluşturulan alt kabuklar, üst kabuktan -e seçeneğinin değerini devralır. posix modunda olmadığında, bash bu tür alt kabuklardaki -e seçeneğini kaldırır.

Bir komutun ardından bir & geliyorsa ve iş denetimi etkin değilse, komut için varsayılan standart girdi boş /dev/null dosyasıdır. Aksi takdirde, çağrılan komut, çağıran kabuğun dosya tanıtıcılarını yeniden yönlendirmeler tarafından değiştirildiği şekliyle devralır.

ÇEVRE

Bir program çağrıldığında, ona ortam adı verilen bir dizi dizi verilir. Bu, ad=değer biçimindeki ad-değer çiftlerinin bir listesidir.

Kabuk, çevreyi manipüle etmek için çeşitli yollar sağlar. Çağırma sırasında, kabuk kendi ortamını tarar ve bulunan her ad için bir parametre oluşturarak onu alt süreçlere dışa aktarma için otomatik olarak işaretler. Yürütülen komutlar ortamı devralır. export ve declare -x komutları, parametre ve işlevlerin ortama eklenmesini ve ortamdan silinmesini sağlar. Ortamdaki bir parametrenin değeri değiştirilirse, yeni değer eskisinin yerini alarak ortamın bir parçası olur. Yürütülen herhangi bir komut tarafından miras alınan ortam, kabuğun başlangıç ortamından oluşur ve değerleri kabukta değiştirilebilir, unset komutuyla kaldırılan çiftler ve export ve declare -x komutları aracılığıyla yapılan eklemeler çıkarılır.

Herhangi bir basit komut veya işlevin ortamı, yukarıda PARAMETRELER bölümünde açıklandığı gibi, parametre atamalarının önüne eklenerek geçici olarak artırılabilir. Bu atama ifadeleri, yalnızca o komutun gördüğü ortamı etkiler.

-k seçeneği ayarlanırsa (aşağıdaki set yerleşik komutuna bakın), yalnızca komut adından önce gelenler değil, tüm parametre atamaları bir komut için ortama yerleştirilir.

bash harici bir komutu çağırdığında, _ değişkeni komutun tam dosya adına ayarlanır ve kendi ortamında bu komuta iletilir.

ÇIKIŞ DURUMU

Yürütülen bir komutun çıkış durumu, waitpid sistem çağrısı veya eşdeğer işlevi tarafından döndürülen değerdir. Çıkış durumları 0 ile 255 arasındadır, ancak aşağıda açıklandığı gibi, kabuk özellikle 125'in üzerindeki değerleri kullanabilir. Kabuk yerleşiklerinden ve bileşik komutlardan çıkış durumları da bu aralıkla sınırlıdır. Belirli koşullar altında kabuk, belirli arıza modlarını belirtmek için özel değerler kullanır.

Kabuğun amaçları doğrultusunda, sıfır çıkış durumuyla çıkan bir komut başarılı olmuştur. Sıfır çıkış durumu başarıyı gösterir. Sıfır olmayan bir çıkış durumu, başarısızlığı gösterir. Bir komut ölümcül bir N sinyaliyle sonlandığında, bash çıkış durumu olarak 128+N değerini kullanır.

Bir komut bulunmazsa, onu yürütmek için oluşturulan alt süreç 127 durumunu döndürür. Bir komut bulunursa ancak çalıştırılamazsa, dönüş durumu 126'dır.

Bir komut, genişletme veya yeniden yönlendirme sırasındaki bir hata nedeniyle başarısız olursa, çıkış durumu sıfırdan büyüktür.

Kabuk yerleşik komutları, başarılı olursa 0 (true) ve yürütülürken bir hata oluşursa sıfır olmayan (false) bir durum döndürür. Tüm yerleşikler, yanlış kullanımı, genellikle geçersiz seçenekleri veya eksik bağımsız değişkenleri belirtmek için 2 çıkış durumu döndürür.

Bash'in kendisi, sıfırdan farklı bir değerle çıkan bir söz dizimi hatası olmadığı sürece yürütülen son komutun çıkış durumunu döndürür. Aşağıdaki yerleşik exit komutuna da bakın.

SİNYALLER

bash etkileşimli olduğunda, herhangi bir tuzak olmadığında SIGTERM'i yok sayar (böylece kill 0 etkileşimli bir kabuğu öldürmez) ve SIGINT yakalanır ve işlenir (böylece wait yerleşiği kesintiye uğrayabilir). Her durumda, bash, SIGQUIT'i yok sayar. İş kontrolü etkinse bash, SIGTTIN, SIGTTOU ve SIGTSTP'yi yok sayar.

bash tarafından çalıştırılan yerleşik olmayan komutlar, kabuğun üst öğesinden devraldığı değerlere ayarlanmış sinyal işleyicilere sahiptir. İş denetimi etkin olmadığında, eşzamansız komutlar, devralınan bu işleyicilere ek olarak SIGINT ve SIGQUIT öğelerini yok sayar. Komut değiştirmenin bir sonucu olarak çalıştırılan komutlar, klavye tarafından oluşturulan SIGTTIN, SIGTTOU ve SIGTSTP iş kontrol sinyallerini yok sayar.

Kabuk, bir SIGHUP alındığında varsayılan olarak çıkar. Çıkmadan önce, etkileşimli bir kabuk çalışan veya durdurulmuş tüm işlere SIGHUP'u yeniden gönderir. Durdurulan işler SIGHUP'u almalarını sağlamak için SIGHUP gönderilir. Kabuğun belirli bir işe sinyal göndermesini önlemek için, disown yerleşiğiyle işler tablosundan kaldırılması (aşağıdaki SHELL BUILTIN COMMANDS'a bakın) veya disown -h kullanılarak SIGHUP almayacak şekilde işaretlenmesi gerekir.

huponexit kabuk seçeneği shopt ile ayarlanmışsa, etkileşimli bir oturum açma kabuğundan çıkıldığında bash tüm işlere bir SIGHUP gönderir.

bash bir komutun tamamlanmasını bekliyorsa ve tuzağın ayarlandığı bir sinyal alırsa, komut tamamlanana kadar tuzak yürütülmez. bash, wait yerleşiği aracılığıyla eşzamansız bir komut beklerken, tuzağı ayarlanmış bir sinyalin alınması wait komutuna neden olur. 128'den büyük bir çıkış durumuyla hemen geri dönmek için yerleşiktir ve hemen ardından tuzak yürütülür.

İŞ KONTROLÜ

İş kontrolü, süreçlerin yürütülmesini seçerek durdurma (askıya alma) ve daha sonraki bir noktada yürütmeye devam etme (devam ettirme) yeteneğini ifade eder. Bir kullanıcı genellikle bu özelliği, işletim sistemi çekirdeğinin terminal sürücüsü ve bash tarafından ortaklaşa sağlanan etkileşimli bir arabirim aracılığıyla kullanır.

Kabuk, her işlem hattıyla bir iş ilişkilendirir. Yürütülen işlerin işler komutuyla listelenebilecek bir tablosunu tutar. bash bir işi eşzamansız olarak başlattığında (arka planda), şuna benzeyen bir satır yazdırır:

[1] 25647

bu işin 1 numaralı iş olduğunu ve bu iş ile ilişkili ardışık düzendeki son işlemin işlem kimliğinin 25647 olduğunu belirtir. Tek bir ardışık düzendeki tüm işlemler aynı işin üyeleridir. Bash, iş denetiminin temeli olarak job soyutlamasını kullanır.

Kullanıcı arayüzünün iş kontrolüne uygulanmasını kolaylaştırmak için, işletim sistemi bir geçerli terminal işlem grubu kimliği fikrini sürdürür. Bu işlem grubunun üyeleri (işlem grubu kimlikleri geçerli terminal işlem grup kimliğine eşit olan işlemler), SIGINT gibi klavye tarafından oluşturulan sinyalleri alır. Bu süreçlerin ön planda olduğu söylenir. Arka plan işlemleri, işlem grubu kimliği terminalinkinden farklı olan işlemlerdir; bu tür işlemler, klavye tarafından oluşturulan sinyallere karşı bağışıktır. Yalnızca ön plan işlemlerinin terminalden okumasına veya kullanıcı stty tostop ile belirtirse terminale yazmasına izin verilir. Terminalden okumaya (stty tostop devrede olduğunda yaz) çalışan arka plan işlemlerine, çekirdeğin terminal sürücüsü tarafından bir SIGTTIN (SIGTTOU) sinyali gönderilir ve yakalanmadığı takdirde işlemi askıya alır.

bash'ın çalıştığı işletim sistemi iş kontrolünü destekliyorsa, bash onu kullanmak için olanaklar içerir. Bir işlem çalışırken suspend karakterini (genellikle ^Z, Control-Z) yazmak, o işlemin durdurulmasına neden olur ve kontrolü bash'a döndürür. gecikmeli askıya alma karakterini (genellikle ^Y, Control-Y) yazmak, terminalden girişi okumaya çalıştığında işlemin durdurulmasına ve kontrolün bash'a döndürülmesine neden olur. Kullanıcı daha sonra, arka planda devam etmek için bg komutunu, ön planda devam etmek için fg komutunu veya onu öldürmek için kill komutunu kullanarak bu işin durumunu değiştirebilir. Bir ^Z hemen etkinleşir ve bekleyen çıktının ve önden yazmanın atılmasına neden olmak gibi ek bir yan etkiye sahiptir.

Kabukta bir işe atıfta bulunmanın birkaç yolu vardır. % karakteri bir iş belirtimi (işbelirtimi) sunar. İş numarası n, %n olarak belirtilebilir. Bir işe, onu başlatmak için kullanılan adın öneki kullanılarak veya komut satırında görünen bir alt dize kullanılarak da atıfta bulunulabilir. Örneğin, %ce, komut adı ce ile başlayan durdurulmuş bir işi belirtir. Bir önek birden fazla işle eşleşirse, bash bir hata bildirir. Öte yandan %?ce kullanmak, komut satırında ce dizesini içeren herhangi bir işi ifade eder. Alt dize birden çok işle eşleşirse, bash bir hata bildirir. %% ve %+ sembolleri, ön plandayken veya arka planda başlatıldığında durdurulan son iş olan mevcut iş ile ilgili kabuğun kavramına atıfta bulunur. Önceki işe %- kullanılarak başvurulabilir. Yalnızca tek bir iş varsa, hem %+ hem de %- o işi belirtmek için kullanılabilir. İşlerle ilgili çıktıda (örneğin, jobs komutunun çıktısında), geçerli iş her zaman + ile ve önceki iş - ile işaretlenir. Tek bir % (eşlik eden iş belirtimi olmadan) aynı zamanda mevcut işi ifade eder.

Bir işi basitçe adlandırmak onu ön plana çıkarmak için kullanılabilir: %1, `fg %1'' ile eşanlamlıdır ve iş 1'i arka plandan arka plana getirir ön plan. Benzer şekilde, ``%1 &'', arka planda iş 1'i sürdürür ve `bg %1'''e eşdeğerdir.

Kabuk, bir işin durumu değiştiğinde hemen öğrenir. Normalde bash, başka herhangi bir çıktıyı kesintiye uğratmamak için bir işin durumundaki değişiklikleri bildirmeden önce bir istem yazdırmak üzere olana kadar bekler. Yerleşik komutu set için -b seçeneği etkinleştirilirse, bash bu tür değişiklikleri hemen bildirir. SIGCHLD üzerindeki herhangi bir tuzak, çıkan her çocuk için yürütülür.

İşler durdurulmuşken bash'tan çıkış girişiminde bulunulursa (veya checkjobs kabuk seçeneği shopt yerleşkesi çalışırken etkinleştirildiyse), kabuk bir uyarı mesajı yazdırır ve checkjobs seçeneği etkinleştirildiyse işleri ve durumlarını listeler. Durumlarını incelemek için işler komutu kullanılabilir. Araya giren bir komut olmadan ikinci bir çıkış denemesi yapılırsa, kabuk başka bir uyarı yazdırmaz ve durdurulan işler sonlandırılır.

Kabuk, wait yerleşkesini kullanarak bir işi veya işlemi beklerken ve iş kontrolü etkinleştirildiğinde, işin durumu değiştiğinde wait geri döner. -f seçeneği bekle'nin iş veya işlemin geri dönmeden önce sona ermesini beklemesine neden olur.

TALEP

Etkileşimli olarak yürütülürken bash, bir komutu okumaya hazır olduğunda PS1 birincil istemini ve bir komutu tamamlamak için daha fazla girdiye ihtiyaç duyduğunda ikincil istemi PS2 görüntüler. Bash, bir komutu okuduktan sonra ancak çalıştırmadan önce PS0'ı görüntüler. Bash, -x seçeneği etkinleştirildiğinde her komutu izlemeden önce PS4'ü yukarıda açıklandığı gibi görüntüler. Bash, aşağıdaki gibi kodu çözülen bir dizi ters eğik çizgiden kaçan özel karakterler ekleyerek bu bilgi istemi dizelerinin özelleştirilmesine olanak tanır:

\a

bir ASCII çan karakteri (07)

\d

"Hafta içi Ay Tarih" biçimindeki tarih (ör. "26 Mayıs Salı")

\D{format}

format, strftime(3)'e iletilir ve sonuç bilgi istemi dizgesine eklenir; boş bir biçim, yerel ayara özgü bir zaman gösterimiyle sonuçlanır. Diş telleri gereklidir

\e

bir ASCII kaçış karakteri (033)

\h

ilk ``e kadar ana bilgisayar adı.

\H

ana bilgisayar adı

\j

şu anda kabuk tarafından yönetilen işlerin sayısı

\l

kabuğun terminal aygıt adının temel adı

\n

Yeni hat

\r

satırbaşı

\s

kabuğun adı, temel adı $0 (son eğik çizgiden sonraki kısım)

\t

24 saatlik SS:DD:SS formatında şimdiki saat

\T

12 saatlik SS:DD:SS formatında şimdiki saat

\@

12 saatlik am/pm biçiminde şimdiki saat

\A

24 saatlik SS:DD formatında şimdiki saat

\u

mevcut kullanıcının kullanıcı adı

\v

bash sürümü (ör. 2.00)

\V

bash sürümü, sürüm + yama düzeyi (ör. 2.00.0)

\w

$HOME bir yaklaşık işaretiyle kısaltılmış olarak geçerli çalışma dizini (PROMPT_DIRTRIM değişkeninin değerini kullanır)

\W

$HOME bir yaklaşık işareti ile kısaltılmış olarak geçerli çalışma dizininin temel adı

\!

bu komutun geçmiş numarası

\#

bu komutun komut numarası

\$

etkin UID 0 ise #, aksi takdirde $

\nnn

sekizlik sayıya karşılık gelen karakter nnn

\\

ters eğik çizgi

\[

komut istemine bir terminal kontrol dizisini katıştırmak için kullanılabilecek, yazdırılmayan bir karakter dizisini başlatın

\]

yazdırılamayan karakter dizisini sonlandır

Komut numarası ve geçmiş numarası genellikle farklıdır: bir komutun geçmiş numarası, geçmiş dosyasından geri yüklenen komutları içerebilen geçmiş listesindeki konumudur (aşağıdaki GEÇMİŞ'e bakın), komut ise sayı, geçerli kabuk oturumu sırasında yürütülen komutlar sırasındaki konumdur. Dizenin kodu çözüldükten sonra, promptvars kabuk seçeneğinin değerine bağlı olarak parametre genişletme, komut ikamesi, aritmetik genişletme ve alıntı kaldırma yoluyla genişletilir (shopt< açıklamasına bakın) komutu aşağıdaki SHELL BUILTIN COMMANDS altında). Dizenin çıkışlı bölümleri komut değiştirme içinde görünüyorsa veya sözcük genişletmeye özel karakterler içeriyorsa, bunun istenmeyen yan etkileri olabilir.

READLINE

Bu, kabuk çağırma sırasında --noediting seçeneği verilmediği sürece, etkileşimli bir kabuk kullanılırken okuma girdisini işleyen kitaplıktır. Satır düzenleme ayrıca -e seçeneği read yerleşiğine kullanıldığında da kullanılır. Varsayılan olarak, satır düzenleme komutları Emacs komutlarına benzer. Ayrıca vi tarzı bir satır düzenleme arayüzü de mevcuttur. Satır düzenleme, set yerleşik için -o emacs veya -o vi seçenekleri kullanılarak herhangi bir zamanda etkinleştirilebilir (bkz. SHELL BUILTIN KOMUTLAR aşağıda). Kabuk çalıştıktan sonra satır düzenlemeyi kapatmak için set yerleşiğinde +o emacs veya +o vi seçeneklerini kullanın.

Readline Notasyonu

Bu bölümde, tuş vuruşlarını belirtmek için Emacs tarzı notasyon kullanılmıştır. Kontrol tuşları, C-key ile gösterilir, örneğin, C-n, Control-N anlamına gelir. Benzer şekilde, meta anahtarları M-key ile gösterilir, dolayısıyla M-x, Meta-X anlamına gelir. (meta tuşu olmayan klavyelerde M-x, ESC x anlamına gelir, yani Escape tuşuna ve ardından x tuşuna basın. Bu, ESC'yi meta öneki yapar. MC-x kombinasyonu ESC-Control-x anlamına gelir veya Escape tuşuna basın, ardından x tuşuna basarken Control tuşunu basılı tutun .)

Readline komutlarına, normalde tekrar sayımı işlevi gören sayısal bağımsız değişkenler verilebilir. Ancak bazen, önemli olan argümanın işaretidir. İleri yönde hareket eden bir komuta (ör. kill-line) olumsuz bir argüman iletmek, o komutun geri yönde hareket etmesine neden olur. Bağımsız değişkenlerle davranışları bundan farklı olan komutlar aşağıda belirtilmiştir.

Bir komut öldürme metni olarak tanımlandığında, silinen metin gelecekte olası geri alma (yanking) için kaydedilir. Öldürülen metin bir sonlandırma halkasına kaydedilir. Ardışık öldürmeler, metnin tek seferde çekilebilen tek bir birimde toplanmasına neden olur. Metni öldürmeyen komutlar, öldürme halkasındaki metin parçalarını ayırır.

Readline Başlatma

Readline, komutları bir başlatma dosyasına (inputrc dosyası) koyarak özelleştirilir. Bu dosyanın adı INPUTRC değişkeninin değerinden alınmıştır. Bu değişken ayarlanmamışsa, varsayılan değer ~/.inputrc'dir. Bu dosya yoksa veya okunamıyorsa nihai varsayılan /etc/inputrc şeklindedir. Readline kitaplığını kullanan bir program başlatıldığında, başlatma dosyası okunur ve anahtar bağlamalar ve değişkenler ayarlanır. Okuma satırı başlatma dosyasında izin verilen yalnızca birkaç temel yapı vardır. Boş satırlar dikkate alınmaz. # ile başlayan satırlar yorumdur. $ ile başlayan satırlar, koşullu yapıları belirtir. Diğer satırlar, tuş bağlantılarını ve değişken ayarları gösterir.

Varsayılan anahtar bağlamaları, bir inputrc dosyasıyla değiştirilebilir. Bu kitaplığı kullanan diğer programlar kendi komutlarını ve bağlamalarını ekleyebilir.

Örneğin, yerleştirme

M-Control-u: universal-argument

veya

C-Meta-u: universal-argument

inputrc içine girmek, M-C-u'nun universal-argument readline komutunu yürütmesini sağlar.

Aşağıdaki sembolik karakter adları tanınır: RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE ve TAB.

Readline, komut adlarına ek olarak, tuşların, tuşa basıldığında eklenen bir dizeye (bir makro) bağlanmasına izin verir.

Readline Anahtar Bağlantıları

inputrc dosyasındaki anahtar bağlarını kontrol etmek için kullanılan sözdizimi basittir. Gereken tek şey, komutun adı veya bir makronun metni ve bağlanması gereken bir tuş dizisidir. Ad, iki yoldan biriyle belirtilebilir: muhtemelen Meta- veya Control- önekleriyle sembolik bir anahtar adı olarak veya bir anahtar dizisi olarak.

anahtaradı: işlev-adı veya makro formunu kullanırken anahtaradı, İngilizce yazılmış bir anahtarın adıdır. Örneğin:

Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"

Yukarıdaki örnekte, C-u, universal-argument işlevine bağlıdır, M-DEL, backward-kill işlevine bağlıdır -word ve C-o sağ tarafta ifade edilen makroyu çalıştırmakla (yani satıra ``> çıktı'' metnini eklemekle) bağlıdır.

İkinci form olan "keyseq": işlev-adı veya makro'da, keyseq, yukarıdaki anahtaradı'dan farklıdır, çünkü bir anahtar dizisinin tamamını gösteren dizeler, dizi çift tırnak içine alınarak belirtilebilir. Aşağıdaki örnekte olduğu gibi bazı GNU Emacs stili tuş çıkışları kullanılabilir, ancak sembolik karakter adları tanınmaz.

"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11~": "Function Key 1"

Bu örnekte C-u yine universal-argument işlevine bağlıdır. C-x C-r, re-read-init-file işlevine bağlıdır ve ESC [ 1 1 ~, ``Function Key 1'' metnini eklemek için bağlıdır.

GNU Emacs tarzı kaçış dizilerinin tamamı şu şekildedir:

\C-

kontrol öneki

\M-

üst önek

\e

bir kaçış karakteri

\\

ters eğik çizgi

\"

gerçek "

\'

gerçek '

GNU Emacs tarzı kaçış dizilerine ek olarak, ikinci bir ters eğik çizgi kaçış dizisi mevcuttur:

\a

uyarı (zil)

\b

geri boşluk

\d

silmek

\f

form besleme

\n

Yeni hat

\r

satırbaşı

\t

yatay sekme

\v

dikey sekme

\nnn

değeri nnn sekizlik değeri olan sekiz bitlik karakter (bir ila üç basamak)

\xHH

değeri HH onaltılık değeri olan sekiz bitlik karakter (bir veya iki onaltılık basamak)

Bir makronun metnini girerken, bir makro tanımını belirtmek için tek veya çift tırnak kullanılmalıdır. Tırnak içine alınmamış metnin bir işlev adı olduğu varsayılır. Makro gövdesinde, yukarıda açıklanan ters eğik çizgi çıkışları genişletilir. Ters eğik çizgi, " ve ' dahil olmak üzere makro metnindeki diğer karakterleri alıntılayacaktır.

Bash, geçerli readline tuş bağlamalarının yerleşik bind komutuyla görüntülenmesine veya değiştirilmesine izin verir. Etkileşimli kullanım sırasında -o seçeneği kullanılarak yerleşik komuta ayarla düzenleme modu değiştirilebilir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

Okuma Satırı Değişkenleri

Readline, davranışını daha da özelleştirmek için kullanılabilecek değişkenlere sahiptir. inputrc dosyasında şu şekilde bir ifadeyle bir değişken ayarlanabilir:

set variable-name value

veya yerleşik bind komutunu kullanarak (aşağıdaki SHELL BUILTIN COMMANDS'a bakın).

Belirtilen yerler dışında, readline değişkenleri Açık veya Kapalı değerleri alabilir (büyük/küçük harfe bakmaksızın). Tanınmayan değişken adları dikkate alınmaz. Bir değişken değeri okunduğunda, boş veya boş değerler, "on" (büyük/küçük harfe duyarsız) ve "1", On ile eşdeğerdir. Diğer tüm değerler Kapalı değerine eşittir. Değişkenler ve varsayılan değerleri şunlardır:

bell-style (audible)

Readline terminal zilini çalmak istediğinde ne olacağını kontrol eder. Yok olarak ayarlanırsa, okuma satırı hiçbir zaman zili çalmaz. Görünür olarak ayarlanırsa, readline varsa görünür bir zil kullanır. Sesli olarak ayarlanırsa, readline terminalin zilini çalmaya çalışır.

bind-tty-special-chars (On)

Açık olarak ayarlanırsa, readline çekirdeğin terminal sürücüsü tarafından özel olarak işlenen kontrol karakterlerini readline eşdeğerlerine bağlamaya çalışır.

blink-matching-paren (Off)

Açık olarak ayarlanırsa, readline bir kapatma parantezi eklendiğinde imleci kısaca bir açılış parantezine taşımaya çalışır.

colored-completion-prefix (Off)

Açık olarak ayarlanırsa, tamamlamaları listelerken readline, olası tamamlamalar kümesinin ortak önekini farklı bir renk kullanarak görüntüler. Renk tanımları, LS_COLORS ortam değişkeninin değerinden alınır.

colored-stats (Off)

Açık olarak ayarlanırsa readline, dosya türlerini belirtmek için farklı renkler kullanarak olası tamamlamaları görüntüler. Renk tanımları, LS_COLORS ortam değişkeninin değerinden alınır.

comment-begin (``#'')

readline insert-comment komutu yürütüldüğünde eklenen dize. Bu komut, emacs modunda M-#'ye ve vi komut modunda #'ya bağlıdır.

completion-display-width (-1)

Tamamlama gerçekleştirilirken olası eşleşmeleri görüntülemek için kullanılan ekran sütunlarının sayısı. Değer, 0'dan küçük veya terminal ekran genişliğinden büyükse dikkate alınmaz. 0 değeri, eşleşmelerin her satırda bir tane görüntülenmesine neden olur. Varsayılan değer -1'dir.

completion-ignore-case (Off)

Açık olarak ayarlanırsa, readline büyük/küçük harfe duyarsız bir şekilde dosya adı eşleştirme ve tamamlama gerçekleştirir.

completion-map-case (Off)

Açık olarak ayarlanırsa ve completion-ignore-case etkinleştirilirse, readline büyük/küçük harfe duyarsız dosya adı eşleştirme ve tamamlama gerçekleştirirken kısa çizgileri (-) ve alt çizgileri (_) eşdeğer olarak ele alır.

completion-prefix-display-length (0)

Değiştirilmeden görüntülenen olası tamamlamalar listesinin ortak ön ekinin karakter cinsinden uzunluğu. Sıfırdan büyük bir değere ayarlandığında, olası tamamlamalar görüntülenirken bu değerden daha uzun yaygın önekler bir üç nokta ile değiştirilir.

completion-query-items (100)

Bu, kullanıcıya possible-completions komutu tarafından oluşturulan olası tamamlamaların sayısını görüntüleme hakkında ne zaman sorgulanacağını belirler. Sıfırdan büyük veya sıfıra eşit herhangi bir tamsayı değerine ayarlanabilir. Olası tamamlamaların sayısı bu değişkenin değerinden büyük veya ona eşitse, readline kullanıcının bunları görmek isteyip istemediğini soracaktır; aksi halde terminalde listelenirler.

convert-meta (On)

Açık olarak ayarlanırsa, readline, sekizinci biti ayarlanan karakterleri, sekizinci biti çıkararak ve bir kaçış karakterinin önüne ekleyerek (aslında meta öneki olarak escape kullanılarak) bir ASCII anahtar dizisine dönüştürür. ). Varsayılan Açık şeklindedir, ancak yerel ayar sekiz bitlik karakterler içeriyorsa readline bunu Kapalı olarak ayarlayacaktır.

disable-completion (Off)

Açık olarak ayarlanırsa, okuma satırı sözcük tamamlamayı engeller. Tamamlama karakterleri, sanki self-insert olarak eşlenmişler gibi satıra eklenecektir.

echo-control-characters (On)

Desteklediklerini belirten işletim sistemlerinde Açık olarak ayarlandığında, okuma satırı klavyeden üretilen bir sinyale karşılık gelen bir karakteri yankılar.

editing-mode (emacs)

Readline'ın Emacs veya vi benzeri bir dizi anahtar bağlamayla başlayıp başlamayacağını kontrol eder. editing-mode, emacs veya vi olarak ayarlanabilir.

emacs-mode-string (@)

Prompt-in-prompt değişkeni etkinleştirilirse, emacs düzenleme modu etkinken bu dize birincil bilgi isteminin son satırından hemen önce görüntülenir. Değer, bir anahtar bağlama gibi genişletilir, böylece standart meta- ve kontrol önekleri ve ters eğik çizgi kaçış dizileri kullanılabilir. Yazdırılmayan karakterlerin dizilerini başlatmak ve bitirmek için \1 ve \2 çıkışlarını kullanın; bu, mod dizesine bir terminal kontrol dizisini katıştırmak için kullanılabilir.

enable-bracketed-paste (On)

Açık olarak ayarlandığında, readline terminali, her karaktere okunmuş gibi davranmak yerine, düzenleme arabelleğine her yapıştırmayı tek bir karakter dizisi olarak eklemesine olanak verecek şekilde yapılandırır. klavyeden. Bu, yapıştırılan karakterlerin düzenleme komutları olarak yorumlanmasını engelleyebilir.

enable-keypad (Off)

Açık olarak ayarlandığında, readline çağrıldığında uygulama tuş takımını etkinleştirmeye çalışır. Bazı sistemler ok tuşlarını etkinleştirmek için buna ihtiyaç duyar.

enable-meta-key (On)

Açık olarak ayarlandığında, readline çağrıldığında terminalin desteklediğini iddia ettiği herhangi bir meta değiştirici anahtarı etkinleştirmeye çalışır. Birçok terminalde, sekiz bitlik karakterleri göndermek için meta anahtarı kullanılır.

expand-tilde (Off)

Açık olarak ayarlanırsa, okuma satırı sözcük tamamlama girişiminde bulunduğunda tilde genişletmesi gerçekleştirilir.

history-preserve-point (Off)

Açık olarak ayarlanırsa geçmiş kodu, önceki-geçmiş veya sonraki-geçmiş ile alınan her bir geçmiş satırında aynı konuma nokta yerleştirmeye çalışır. .

history-size (unset)

Geçmiş listesine kaydedilen maksimum geçmiş girişi sayısını ayarlayın. Sıfıra ayarlanırsa mevcut tüm geçmiş girişleri silinir ve yeni giriş kaydedilmez. Sıfırdan küçük bir değere ayarlanırsa, geçmiş girişlerinin sayısı sınırlı değildir. Varsayılan olarak, geçmiş girişlerinin sayısı HISTSIZE kabuk değişkeninin değerine ayarlanmıştır. history-size sayısal olmayan bir değere ayarlanmaya çalışılırsa, maksimum geçmiş girişi sayısı 500 olarak ayarlanır.

horizontal-scroll-mode (Off)

Açık olarak ayarlandığında, okuma satırının görüntüleme için tek bir satır kullanmasını sağlar ve girişi yeni bir satıra sarmak yerine ekran genişliğinden daha uzun hale geldiğinde tek bir ekran satırında yatay olarak kaydırır. Bu ayar, yüksekliği 1 olan terminaller için otomatik olarak etkinleştirilir.

input-meta (Off)

Açık olarak ayarlanırsa, readline terminalin destekleyebileceğini iddia ettiğinden bağımsız olarak sekiz bitlik girişi etkinleştirir (yani okuduğu karakterlerden sekizinci biti çıkarmaz). meta-flag adı, bu değişkenin eş anlamlısıdır. Varsayılan Kapalı'dır, ancak yerel ayar sekiz bitlik karakterler içeriyorsa readline bunu Açık olarak ayarlar.

isearch-terminators (``C-[C-J'')

Daha sonra karakteri bir komut olarak yürütmeden artımlı bir aramayı sonlandırması gereken karakter dizisi. Bu değişkene bir değer verilmemişse, ESC ve C-J karakterleri artımlı aramayı sonlandırır.

keymap (emacs)

Geçerli okuma satırı tuş haritasını ayarlayın. Geçerli anahtar eşleme adları kümesi şu şekildedir: emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command ve vi-insert. vi, vi-command ile eşdeğerdir; emacs, emacs-standart ile eşdeğerdir. Varsayılan değer emacs'dir; editing-mode değeri de varsayılan keymap'i etkiler.

keyseq-timeout (500)

Belirsiz bir tuş dizisini okurken readline'ın bir karakter için bekleyeceği süreyi belirtir (o ana kadar okunan girişi kullanarak tam bir tuş dizisi oluşturabilen veya daha uzun bir tuş dizisini tamamlamak için ek girdi alabilen). Zaman aşımı süresi içinde herhangi bir giriş alınmazsa, readline daha kısa ama tam tuş dizisini kullanır. Değer milisaniye olarak belirtilir, dolayısıyla 1000 değeri, readline'ın ek girdi için bir saniye bekleyeceği anlamına gelir. Bu değişken sıfıra eşit veya sıfırdan küçük bir değere veya sayısal olmayan bir değere ayarlanırsa, readline hangi tuş dizisinin tamamlanacağına karar vermek için başka bir tuşa basılana kadar bekler.

mark-directories (On)

Açık olarak ayarlanırsa, tamamlanan dizin adlarının sonuna eğik çizgi eklenir.

mark-modified-lines (Off)

Açık olarak ayarlanırsa, değiştirilen geçmiş satırları, önünde bir yıldız işaretiyle (*) görüntülenir.

mark-symlinked-directories (Off)

Açık olarak ayarlanırsa, dizinlere sembolik bağlantılar olan tamamlanmış adların sonuna bir eğik çizgi eklenir (mark-directories değerine tabidir).

match-hidden-files (On)

Bu değişken, Açık olarak ayarlandığında, okuma satırının adları `.' ile başlayan dosyalarla eşleşmesine neden olur. (gizli dosyalar) dosya adı tamamlaması yapılırken. Kapalı olarak ayarlanırsa baştaki `.' doldurulacak dosya adında kullanıcı tarafından sağlanmalıdır.

menu-complete-display-prefix (Off)

Açık olarak ayarlanırsa, menü tamamlama, listede gezinmeden önce olası tamamlamalar listesinin (boş olabilir) ortak önekini görüntüler.

output-meta (Off)

Açık olarak ayarlanırsa, readline karakterleri bir meta ön ekli kaçış dizisi yerine doğrudan sekizinci biti ayarlanmış olarak görüntüler. Varsayılan Kapalı'dır, ancak yerel ayar sekiz bitlik karakterler içeriyorsa readline bunu Açık olarak ayarlar.

page-completions (On)

Açık olarak ayarlanırsa, readline her seferinde bir ekran dolusu olası tamamlamayı görüntülemek için dahili daha fazla benzeri bir çağrı cihazı kullanır.

print-completions-horizontally (Off)

Açık olarak ayarlanırsa readline, eşleşmeleri ekranın aşağısı yerine yatay olarak alfabetik sırayla sıralayarak tamamlamaları görüntüler.

revert-all-at-newline (Off)

Açık olarak ayarlanırsa, readline accept-line çalıştırıldığında geri dönmeden önce geçmiş satırlardaki tüm değişiklikleri geri alır. Varsayılan olarak, geçmiş satırları değiştirilebilir ve readline çağrılarında ayrı geri alma listelerini tutabilir.

show-all-if-ambiguous (Off)

Bu, tamamlama işlevlerinin varsayılan davranışını değiştirir. Açık olarak ayarlanırsa, birden fazla olası tamamlaması olan kelimeler, zili çalmak yerine eşleşmelerin hemen listelenmesine neden olur.

show-all-if-unmodified (Off)

Bu, tamamlama işlevlerinin varsayılan davranışını belirsizse hepsini göster'e benzer bir şekilde değiştirir. Açık olarak ayarlanırsa, herhangi bir kısmi tamamlama olmadan birden fazla olası tamamlamaya sahip sözcükler (olası tamamlamalar ortak bir ön eki paylaşmaz), eşleşmelerin zili çalmak yerine hemen listelenmesine neden olur.

show-mode-in-prompt (Off)

Açık olarak ayarlanırsa, istemin başına düzenleme modunu belirten bir dize ekleyin: emacs, vi komutu veya vi ekleme. Mod dizeleri kullanıcı tarafından ayarlanabilir (ör. emacs-mode-string).

skip-completed-text (Off)

Açık olarak ayarlanırsa bu, satıra tek bir eşleşme eklerken varsayılan tamamlama davranışını değiştirir. Yalnızca bir kelimenin ortasında tamamlama yapılırken etkindir. Etkinleştirilirse, okuma satırı, tamamlanan kelimedeki noktadan sonraki karakterlerle eşleşen tamamlama karakterlerini eklemez, bu nedenle kelimenin imleci takip eden kısımları çoğaltılmaz.

vi-cmd-mode-string ((cmd))

prompt-in-prompt değişkeni etkinleştirilirse, vi düzenleme modu etkinken ve komut modundayken bu dize birincil bilgi isteminin son satırından hemen önce görüntülenir. Değer, bir anahtar bağlama gibi genişletilir, böylece standart meta- ve kontrol önekleri ve ters eğik çizgi kaçış dizileri kullanılabilir. Yazdırılmayan karakterlerin dizilerini başlatmak ve bitirmek için \1 ve \2 çıkışlarını kullanın; bu, mod dizesine bir terminal kontrol dizisini katıştırmak için kullanılabilir.

vi-ins-mode-string ((ins))

prompt-in-prompt değişkeni etkinleştirilirse, vi düzenleme modu etkinken ve ekleme modundayken bu dize birincil istemin son satırından hemen önce görüntülenir. Değer, bir anahtar bağlama gibi genişletilir, böylece standart meta- ve kontrol önekleri ve ters eğik çizgi kaçış dizileri kullanılabilir. Yazdırılmayan karakterlerin dizilerini başlatmak ve bitirmek için \1 ve \2 çıkışlarını kullanın; bu, mod dizesine bir terminal kontrol dizisini katıştırmak için kullanılabilir.

visible-stats (Off)

Açık olarak ayarlanırsa, olası tamamlamalar listelenirken stat(2) tarafından bildirilen bir dosyanın türünü belirten bir karakter dosya adına eklenir.

Readline Koşullu Yapılar

Readline, C önişlemcisinin koşullu derleme özelliklerine ruhen benzer bir tesis uygular; bu, testler sonucunda anahtar bağlamaların ve değişken ayarların gerçekleştirilmesine olanak tanır. Kullanılan dört ayrıştırıcı yönergesi vardır.

$if

$if yapısı, düzenleme moduna, kullanılan terminale veya readline kullanan uygulamaya göre bağlamaların yapılmasına izin verir. Testin metni, herhangi bir karşılaştırma işlecinden sonra satırın sonuna kadar uzar; aksi belirtilmedikçe, izole etmek için herhangi bir karakter gerekmez.

mode

$if yönergesinin mode= biçimi, readline'ın emacs modunda mı yoksa vi modunda mı olduğunu test etmek için kullanılır. Bu, örneğin, yalnızca emacs-standart ve emacs-ctlx anahtar eşlemelerindeki bağları ayarlamak için anahtar haritasını ayarla komutuyla birlikte kullanılabilir. readline emacs modunda başlıyorsa.

term

term= formu, uçbirime özel anahtar bağlarını dahil etmek için, belki de uçbirimin işlev tuşları tarafından çıkarılan tuş dizilerini bağlamak için kullanılabilir. = öğesinin sağ tarafındaki sözcük, hem terminalin tam adına hem de terminal adının ilk -'den önceki kısmına karşı test edilir. Bu, örneğin sun öğesinin hem sun hem de sun-cmd ile eşleşmesini sağlar.

version

sürüm testi, belirli okuma satırı sürümleriyle karşılaştırma yapmak için kullanılabilir. Sürüm, geçerli okuma satırı sürümüne genişler. Karşılaştırma işleçleri kümesi şunları içerir: =, (ve ==), !=, <=, >=, < ve >. Operatörün sağ tarafında sağlanan sürüm numarası, bir ana sürüm numarası, isteğe bağlı bir ondalık nokta ve isteğe bağlı bir alt sürümden (ör. 7.1) oluşur. Alt sürüm atlanırsa 0 olduğu varsayılır. Operatör, version dizesinden ve sürüm numarası bağımsız değişkeninden boşlukla ayrılabilir.

application

Uygulama yapısı, uygulamaya özel ayarları dahil etmek için kullanılır. Readline kitaplığını kullanan her program uygulama adını ayarlar ve bir başlatma dosyası belirli bir değeri test edebilir. Bu, tuş dizilerini belirli bir program için yararlı işlevlere bağlamak için kullanılabilir. Örneğin, aşağıdaki komut, bash içindeki mevcut veya önceki kelimeyi alıntılayan bir tuş dizisi ekler:

$if Bash
# Quote the current or previous word
"\C-xq": "\eb\"\ef\""
$endif
variable

variable yapısı, okuma satırı değişkenleri ve değerleri için basit eşitlik testleri sağlar. İzin verilen karşılaştırma operatörleri =, == ve !='dir. Değişken adı, karşılaştırma işlecinden boşlukla ayrılmalıdır; operatör, sağ taraftaki değerden boşlukla ayrılabilir. Hem string hem de boole değişkenleri test edilebilir. Boole değişkenleri on ve off değerlerine göre test edilmelidir.

$endif

Bu komut, önceki örnekte görüldüğü gibi, bir $if komutunu sonlandırır.

$else

$if yönergesinin bu dalındaki komutlar, test başarısız olursa yürütülür.

$include

Bu yönerge argüman olarak tek bir dosya adını alır ve bu dosyadan komutları ve bağlamaları okur. Örneğin, aşağıdaki yönerge /etc/inputrc olarak okunur:

$include   /etc/inputrc

Aranıyor

Readline, belirtilen bir dizeyi içeren satırlar için komut geçmişinde (aşağıdaki GEÇMİŞ'e bakın) arama yapmak için komutlar sağlar. İki arama modu vardır: artımlı ve artımsız.

Artımlı aramalar, kullanıcı arama dizesini yazmayı bitirmeden önce başlar. Arama dizesinin her karakteri yazıldığında, readline geçmişten o ana kadar yazılan dizeyle eşleşen sonraki girişi görüntüler. Artımlı bir arama, yalnızca istenen geçmiş girişini bulmak için gerektiği kadar karakter gerektirir. isearch-terminators değişkeninin değerinde bulunan karakterler, artımlı bir aramayı sonlandırmak için kullanılır. Bu değişkene bir değer atanmamışsa, Escape ve Control-J karakterleri artımlı aramayı sonlandırır. Control-G artımlı bir aramayı durduracak ve orijinal satırı geri yükleyecektir. Arama sonlandırıldığında, arama dizesini içeren geçmiş girişi geçerli satır olur.

Geçmiş listesindeki diğer eşleşen girişleri bulmak için, uygun şekilde Control-S veya Control-R yazın. Bu, şimdiye kadar yazılan arama dizesiyle eşleşen bir sonraki girişi geçmişte geriye veya ileriye doğru arayacaktır. Bir readline komutuna bağlı diğer herhangi bir tuş dizisi, aramayı sonlandırır ve bu komutu yürütür. Örneğin, bir yeni satır aramayı sonlandırır ve satırı kabul eder, böylece komut geçmiş listesinden yürütülür.

Readline, son artımlı arama dizesini hatırlar. Yeni bir arama dizesi tanımlayan herhangi bir araya giren karakter olmadan iki Control-R yazılırsa, hatırlanan herhangi bir arama dizesi kullanılır.

Artımlı olmayan aramalar, eşleşen geçmiş satırlarını aramaya başlamadan önce tüm arama dizesini okur. Arama dizesi kullanıcı tarafından yazılabilir veya geçerli satırın içeriğinin bir parçası olabilir.

Readline Komut Adları

Aşağıda, komutların adlarının ve bağlı oldukları varsayılan tuş dizilerinin bir listesi bulunmaktadır. Eşlik eden bir tuş dizisi olmayan komut adları, varsayılan olarak ilişkisizdir. Aşağıdaki açıklamalarda nokta, geçerli imleç konumunu, işaret ise set-mark komutu tarafından kaydedilen bir imleç konumunu ifade eder. Nokta ile işaret arasındaki metin, bölge olarak anılır.

Taşıma Komutları

beginning-of-line (C-a)

Geçerli satırın başına git.

end-of-line (C-e)

Satırın sonuna git.

forward-char (C-f)

Bir karakter ileri git.

backward-char (C-b)

Bir karakter geri git.

forward-word (M-f)

Bir sonraki kelimenin sonuna ilerleyin. Sözcükler alfasayısal karakterlerden (harfler ve rakamlar) oluşur.

backward-word (M-b)

Geçerli veya önceki kelimenin başına geri gitme. Sözcükler alfasayısal karakterlerden (harfler ve rakamlar) oluşur.

shell-forward-word

Bir sonraki kelimenin sonuna ilerleyin. Sözcükler, tırnak içine alınmamış kabuk meta karakterleri tarafından sınırlandırılmıştır.

shell-backward-word

Geçerli veya önceki kelimenin başına geri gitme. Sözcükler, tırnak içine alınmamış kabuk meta karakterleri tarafından sınırlandırılmıştır.

previous-screen-line

Noktayı önceki fiziksel ekran satırındaki aynı fiziksel ekran sütununa taşımayı deneyin. Geçerli Readline satırı birden fazla fiziksel satır kaplamıyorsa veya nokta, istemin uzunluğu artı ekran genişliğinden büyük değilse, bu istenen etkiye sahip olmayacaktır.

next-screen-line

Noktayı bir sonraki fiziksel ekran satırındaki aynı fiziksel ekran sütununa taşımayı deneyin. Geçerli Readline satırı birden fazla fiziksel satır kaplamıyorsa veya geçerli Readline satırının uzunluğu istemin uzunluğu artı ekran genişliğinden büyük değilse, bu istenen etkiye sahip olmayacaktır.

clear-display (M-C-l)

Ekranı ve mümkünse terminalin geri kaydırma tamponunu temizleyin, ardından mevcut satırı ekranın üst kısmında bırakarak mevcut satırı yeniden çizin.

clear-screen (C-l)

Ekranı temizleyin, ardından mevcut satırı ekranın üst kısmında bırakarak mevcut satırı yeniden çizin. Bir bağımsız değişkenle, ekranı temizlemeden geçerli satırı yenileyin.

redraw-current-line

Geçerli satırı yenileyin.

Geçmişi Değiştirme Komutları

accept-line (Newline, Return)

İmlecin nerede olduğuna bakılmaksızın satırı kabul edin. Bu satır boş değilse HISTCONTROL değişkeninin durumuna göre geçmiş listesine ekleyin. Satır, değiştirilmiş bir geçmiş satırıysa, geçmiş satırını orijinal durumuna geri yükleyin.

previous-history (C-p)

Listede geriye doğru hareket ederek geçmiş listesinden önceki komutu getirin.

next-history (C-n)

Listede ilerleyerek geçmiş listesinden bir sonraki komutu getirin.

beginning-of-history (M-<)

Geçmişteki ilk satıra git.

end-of-history (M->)

Giriş geçmişinin sonuna, yani girilmekte olan satıra gidin.

reverse-search-history (C-r)

Geçerli satırdan başlayarak geriye doğru arama yapın ve gerekirse geçmişte 'yukarı' ilerleyin. Bu artımlı bir aramadır.

forward-search-history (C-s)

Geçerli satırdan başlayarak ileriye doğru arama yapın ve gerekirse geçmişte 'aşağı' ilerleyin. Bu artımlı bir aramadır.

non-incremental-reverse-search-history (M-p)

Kullanıcı tarafından sağlanan bir dize için artımlı olmayan bir arama kullanarak geçerli satırdan başlayarak geçmişte geriye doğru arama yapın.

non-incremental-forward-search-history (M-n)

Kullanıcı tarafından sağlanan bir dize için artımlı olmayan bir arama kullanarak geçmişte ileriye doğru arama yapın.

history-search-forward

Geçerli satırın başlangıcı ile nokta arasındaki karakter dizisi geçmişinde ileriye doğru arama yapın. Bu artımlı olmayan bir aramadır.

history-search-backward

Geçerli satırın başlangıcı ile nokta arasındaki karakter dizisini geçmişte geriye doğru arayın. Bu artımlı olmayan bir aramadır.

history-substring-search-backward

Geçerli satırın başlangıcı ile geçerli imleç konumu (nokta) arasındaki karakter dizisini geçmişte geriye doğru arayın. Arama dizesi, geçmiş satırındaki herhangi bir yerle eşleşebilir. Bu artımlı olmayan bir aramadır.

history-substring-search-forward

Geçerli satırın başlangıcı ile nokta arasındaki karakter dizisi geçmişinde ileriye doğru arama yapın. Arama dizesi, geçmiş satırındaki herhangi bir yerle eşleşebilir. Bu artımlı olmayan bir aramadır.

yank-nth-arg (M-C-y)

İlk bağımsız değişkeni bir önceki komuta (genellikle önceki satırdaki ikinci sözcük) noktasına ekleyin. Bir n argümanı ile, önceki komuttan ninci kelimeyi girin (önceki komuttaki kelimeler kelime 0 ile başlar). Olumsuz bir bağımsız değişken, önceki komutun sonundaki ninci sözcüğü ekler. n bağımsız değişkeni hesaplandıktan sonra, bağımsız değişken "!n" geçmiş genişletmesi belirtilmiş gibi çıkarılır.

yank-last-arg (M-. , M-_ )

Son bağımsız değişkeni önceki komuta ekleyin (önceki geçmiş girişinin son sözcüğü). Sayısal bir argümanla, tam olarak yank-nth-arg gibi davranın. yank-last-arg'a art arda yapılan çağrılar, sırayla her satırın son kelimesini (veya argüman tarafından ilk çağrıya verilen kelimeyi) ekleyerek geçmiş listesinde geri gider. Bu ardışık çağrılara sağlanan herhangi bir sayısal argüman, geçmişte hareket edilecek yönü belirler. Olumsuz bir bağımsız değişken, geçmişteki yönü değiştirir (geri veya ileri). Geçmiş genişletme olanakları, sanki "!$" geçmiş genişletmesi belirtilmiş gibi, son sözü çıkarmak için kullanılır.

shell-expand-line (M-C-e)

Çizgiyi kabuğun yaptığı gibi genişletin. Bu, takma ad ve geçmiş genişletmesinin yanı sıra tüm kabuk sözcüğü genişletmelerini gerçekleştirir. Geçmiş genişletmenin açıklaması için aşağıdaki GEÇMİŞ GENİŞLETME'ye bakın.

history-expand-line (M-^)

Geçerli satırda geçmiş genişletme gerçekleştirin. Geçmiş genişletmenin açıklaması için aşağıdaki GEÇMİŞ GENİŞLETME'ye bakın.

magic-space

Geçerli satırda geçmiş genişletme gerçekleştirin ve bir boşluk ekleyin. Geçmiş genişletmenin açıklaması için aşağıdaki GEÇMİŞ GENİŞLETME'ye bakın.

alias-expand-line

Geçerli satırda takma ad genişletme gerçekleştirin. Takma ad genişletmenin açıklaması için yukarıdaki ALIASES bölümüne bakın.

history-and-alias-expand-line

Geçerli satırda geçmiş ve takma ad genişletme gerçekleştirin.

insert-last-argument (M-. , M-_ )

yank-last-arg ile eşanlamlıdır.

operate-and-get-next (C-o)

Geçerli satırı yürütme için kabul edin ve geçerli satıra göre sonraki satırı düzenleme için geçmişten alın. Sayısal bir argüman sağlanmışsa, geçerli satır yerine kullanılacak geçmiş girişini belirtir.

edit-and-execute-command (C-x C-e)

Geçerli komut satırında bir düzenleyici çağırın ve sonucu kabuk komutları olarak yürütün. Bash, düzenleyici olarak sırasıyla $VISUAL, $EDITOR ve emacs'ı çağırmaya çalışır.

Metni Değiştirme Komutları

end-of-file (usually C-d)

Dosya sonunu belirten karakter, örneğin ``stty'' ile ayarlanmıştır. Satırda hiç karakter yokken bu karakter okunursa ve nokta satırın başındaysa, Readline bunu girdinin sonu olarak yorumlar ve EOF döndürür.

delete-char (C-d)

Noktadaki karakteri silin. Bu işlev, genellikle C-d olduğu gibi, tty EOF karakteriyle aynı karaktere bağlıysa, etkiler için yukarıya bakın.

backward-delete-char (Rubout)

İmlecin arkasındaki karakteri silin. Sayısal bir argüman verildiğinde, silinen metni öldürme halkasına kaydedin.

forward-backward-delete-char

İmleç satırın sonunda değilse imlecin altındaki karakteri silin, bu durumda imlecin arkasındaki karakter silinir.

quoted-insert (C-q, C-v)

Yazılan bir sonraki karakteri satır kelimesine ekleyin. Örneğin, C-q gibi karakterler bu şekilde eklenir.

tab-insert (C-v TAB)

Bir sekme karakteri ekleyin.

self-insert (a, b, A, 1, !, ...)

Yazılan karakteri girin.

transpose-chars (C-t)

Noktadan önceki karakteri noktadaki karakterin üzerinde ileri doğru sürükleyin, noktayı da ileriye taşıyın. Nokta satırın sonundaysa, noktadan önceki iki karakterin devriğini alır. Olumsuz argümanların hiçbir etkisi yoktur.

transpose-words (M-t)

Noktadan önceki kelimeyi noktadan sonraki kelimeyi geçerek, noktayı o kelimenin üzerine de taşıyarak sürükleyin. Nokta satırın sonundaysa, bu satırdaki son iki kelimenin yerini değiştirir.

upcase-word (M-u)

Geçerli (veya sonraki) sözcüğü büyük harfle yazın. Olumsuz bir bağımsız değişkende, önceki sözcüğü büyük harfle yazın, ancak noktayı hareket ettirmeyin.

downcase-word (M-l)

Geçerli (veya sonraki) sözcüğü küçük harfle yazın. Olumsuz bir bağımsız değişkende, önceki sözcüğü küçük harfle yazın, ancak noktayı hareket ettirmeyin.

capitalize-word (M-c)

Geçerli (veya sonraki) sözcüğü büyük harfle yazın. Olumsuz bir argümanla, önceki kelimeyi büyük harfle yazın, ancak noktayı hareket ettirmeyin.

overwrite-mode

Üzerine yazma modunu değiştirin. Açık bir pozitif sayısal bağımsız değişkenle, üzerine yazma moduna geçer. Pozitif olmayan açık bir sayısal bağımsız değişkenle, ekleme kipine geçer. Bu komut yalnızca emacs modunu etkiler; vi modu farklı şekilde üzerine yazar. Her readline() çağrısı ekleme kipinde başlar. Üzerine yazma modunda, self-insert'a (kendi kendine ekleme) bağlı karakterler, metni sağa itmek yerine metni bir noktada değiştirir. backward-delete-char'a bağlı karakterler, noktadan önceki karakteri bir boşlukla değiştirir. Varsayılan olarak, bu komut ilişkisizdir.

Öldürmek ve Yanklamak

kill-line (C-k)

Metni noktadan satırın sonuna kadar öldürün.

backward-kill-line (C-x Rubout)

Sıranın başına kadar geriye doğru öldür.

unix-line-discard (C-u)

Noktadan çizginin başına kadar geriye doğru öldürün. Öldürülen metin, öldürme halkasına kaydedilir.

kill-whole-line

Nokta nerede olursa olsun, mevcut satırdaki tüm karakterleri öldürün.

kill-word (M-d)

Geçerli kelimenin sonuna kadar veya kelimeler arasında ise bir sonraki kelimenin sonuna kadar öldür. Kelime sınırları, forward-word tarafından kullanılanlarla aynıdır.

backward-kill-word (M-Rubout)

Noktanın arkasındaki kelimeyi öldür. Kelime sınırları, geriye doğru kelime tarafından kullanılanlarla aynıdır.

shell-kill-word

Geçerli kelimenin sonuna kadar veya kelimeler arasında ise bir sonraki kelimenin sonuna kadar öldür. Kelime sınırları, shell-forward-word tarafından kullanılanlarla aynıdır.

shell-backward-kill-word

Noktanın arkasındaki kelimeyi öldür. Kelime sınırları, shell-backward-word tarafından kullanılanlarla aynıdır.

unix-word-rubout (C-w)

Kelime sınırı olarak beyaz boşluğu kullanarak noktanın arkasındaki kelimeyi öldürün. Öldürülen metin, öldürme halkasına kaydedilir.

unix-filename-rubout

Sözcük sınırları olarak boşluk ve eğik çizgi karakterini kullanarak noktanın arkasındaki sözcüğü öldürün. Öldürülen metin, öldürme halkasına kaydedilir.

delete-horizontal-space (M-\)

Noktanın etrafındaki tüm boşlukları ve sekmeleri silin.

kill-region

Geçerli bölgedeki metni öldür.

copy-region-as-kill

Bölgedeki metni öldürme arabelleğine kopyalayın.

copy-backward-word

İşaretten önceki kelimeyi öldürme arabelleğine kopyalayın. Kelime sınırları, geriye doğru kelime ile aynıdır.

copy-forward-word

Aşağıdaki noktayı öldürme arabelleğine kopyalayın. Kelime sınırları ileri-kelime ile aynıdır.

yank (C-y)

Öldürme halkasının tepesini bu noktada tampona doğru çekin.

yank-pop (M-y)

Öldürme halkasını döndürün ve yeni tepeyi çekin. Yalnızca yank veya yank-pop sonrasında çalışır.

Sayısal Argümanlar

digit-argument (M-0, M-1, ..., M--)

Bu rakamı zaten birikmekte olan bağımsız değişkene ekleyin veya yeni bir bağımsız değişken başlatın. M-- olumsuz bir argüman başlatır.

universal-argument

Bu, bir argüman belirtmenin başka bir yoludur. Bu komutun ardından isteğe bağlı olarak başında bir eksi işareti bulunan bir veya daha fazla rakam geliyorsa, bu rakamlar bağımsız değişkeni tanımlar. Komutun ardından rakamlar geliyorsa, universal-argument komutunun tekrar çalıştırılması sayısal bağımsız değişkeni sonlandırır, ancak bunun dışında yoksayılır. Özel bir durum olarak, bu komutun hemen ardından ne rakam ne de eksi işareti olmayan bir karakter gelirse, sonraki komut için bağımsız değişken sayısı dört ile çarpılır. Bağımsız değişken sayısı başlangıçta birdir, bu nedenle bu işlevi ilk kez yürütmek bağımsız değişken sayısını dört yapar, ikinci kez bağımsız değişken sayısını on altı yapar ve böyle devam eder.

Tamamlanıyor

complete (TAB)

Noktadan önce metin üzerinde tamamlama gerçekleştirmeye çalışın. Bash, metni bir değişken (metin $ ile başlıyorsa), kullanıcı adı (metin ~ ile başlıyorsa), ana bilgisayar adı olarak ele alarak tamamlamaya çalışır. (metin @ ile başlıyorsa) veya sırasıyla komut (takma adlar ve işlevler dahil). Bunların hiçbiri bir eşleşme sağlamazsa, dosya adı tamamlama denenir.

possible-completions (M-?)

Noktadan önce metnin olası tamamlamalarını listeleyin.

insert-completions (M-*)

Metnin olası tamamlamalar tarafından oluşturulmuş olabilecek tüm tamamlamalarını noktadan önce ekleyin.

menu-complete

Tamamlandı'ya benzer, ancak tamamlanacak kelimeyi olası tamamlamalar listesinden tek bir eşleşmeyle değiştirir. menu-complete'nin tekrar tekrar yürütülmesi, her bir eşleşmeyi sırayla ekleyerek olası tamamlamalar listesinde adım adım ilerler. Tamamlamalar listesinin sonunda zil çalar (zil stili ayarına tabidir) ve orijinal metin geri yüklenir. n bağımsız değişkeni eşleşme listesinde n konumu ileri taşır; listede geriye doğru ilerlemek için olumsuz bir bağımsız değişken kullanılabilir. Bu komutun TAB'a bağlanması amaçlanmıştır, ancak varsayılan olarak ilişkisizdir.

menu-complete-backward

menu-complete ile aynıdır, ancak menu-complete'a olumsuz bir bağımsız değişken verilmiş gibi, olası tamamlamalar listesinde geriye doğru hareket eder. Bu komut varsayılan olarak bağımsızdır.

delete-char-or-list

Satırın başında veya sonunda değilse, imlecin altındaki karakteri siler (delete-char gibi). Satırın sonundaysa, olası-tamamlamalar ile aynı şekilde davranır. Bu komut varsayılan olarak bağımsızdır.

complete-filename (M-/)

Noktadan önceki metinde dosya adı tamamlamayı deneyin.

possible-filename-completions (C-x /)

Metnin noktadan önceki olası tamamlamalarını bir dosya adı olarak ele alarak listeleyin.

complete-username (M-~)

Bir kullanıcı adı olarak ele alarak noktadan önceki metni tamamlamaya çalışın.

possible-username-completions (C-x ~)

Metnin noktadan önceki olası tamamlamalarını bir kullanıcı adı olarak ele alarak listeleyin.

complete-variable (M-$)

Noktadan önceki metni bir kabuk değişkeni olarak ele alarak tamamlamaya çalışın.

possible-variable-completions (C-x $)

Metnin noktadan önceki olası tamamlamalarını bir kabuk değişkeni olarak ele alarak listeleyin.

complete-hostname (M-@)

Noktadan önceki metni bir ana bilgisayar adı olarak ele alarak tamamlamayı deneyin.

possible-hostname-completions (C-x @)

Metnin noktadan önceki olası tamamlamalarını bir ana bilgisayar adı olarak ele alarak listeleyin.

complete-command (M-!)

Noktadan önceki metni bir komut adı olarak ele alarak tamamlamayı deneyin. Komut tamamlama, metni takma adlara, ayrılmış sözcüklere, kabuk işlevlerine, kabuk yerleşiklerine ve son olarak yürütülebilir dosya adlarına göre bu sırayla eşleştirmeye çalışır.

possible-command-completions (C-x !)

Metnin noktadan önceki olası tamamlamalarını bir komut adı olarak ele alarak listeleyin.

dynamic-complete-history (M-TAB)

Olası tamamlama eşleşmeleri için metni geçmiş listesindeki satırlarla karşılaştırarak noktadan önceki metni tamamlamaya çalışın.

dabbrev-expand

Olası tamamlama eşleşmeleri için metni geçmiş listesindeki satırlarla karşılaştırarak, noktadan önceki metinde menü tamamlamayı deneyin.

complete-into-braces (M-{)

Dosya adı tamamlama işlemini gerçekleştirin ve listenin kabuk tarafından kullanılabilmesi için olası tamamlamaların listesini parantez içinde ekleyin (yukarıdaki Brace Expansion'a bakın).

Klavye Makroları

start-kbd-macro (C-x ( )

Geçerli klavye makrosuna yazılan karakterleri kaydetmeye başlayın.

end-kbd-macro (C-x ) )

Geçerli klavye makrosuna yazılan karakterleri kaydetmeyi durdurun ve tanımı saklayın.

call-last-kbd-macro (C-x e)

Makrodaki karakterlerin klavyede yazılmış gibi görünmesini sağlayarak, tanımlanan son klavye makrosunu yeniden çalıştırın.

print-last-kbd-macro ()

Tanımlanan son klavye makrosunu inputrc dosyasına uygun bir biçimde yazdırın.

Çeşitli

re-read-init-file (C-x C-r)

inputrc dosyasının içeriğini okuyun ve orada bulunan bağlamaları veya değişken atamalarını dahil edin.

abort (C-g)

Geçerli düzenleme komutunu iptal edin ve terminalin zilini çalın (zil stili ayarına tabidir).

do-lowercase-version (M-A, M-B, M-x, ...)

x metafied karakteri büyükse, karşılık gelen metafied küçük harf karakterine bağlı komutu çalıştırın. x zaten küçük harf ise davranış tanımsızdır.

prefix-meta (ESC)

Yazılan sonraki karakteri metafy.

ESC f, Meta-f'e eşdeğerdir.

undo (C-_, C-x C-u)

Artımlı geri alma, her satır için ayrı ayrı hatırlanır.

revert-line (M-r)

Bu satırda yapılan tüm değişiklikleri geri alın. Bu, satırı ilk durumuna döndürmek için geri al komutunu yeterli sayıda çalıştırmaya benzer.

tilde-expand (M-&)

Geçerli sözcük üzerinde yaklaşık genişletme işlemi gerçekleştirin.

set-mark (C-@, M-<space>)

İşareti noktaya ayarlayın. Sayısal bir bağımsız değişken sağlanırsa, işaret o konuma ayarlanır.

exchange-point-and-mark (C-x C-x)

Noktayı işaretle değiştirin. Geçerli imleç konumu kaydedilen konuma ayarlanır ve eski imleç konumu işaret olarak kaydedilir.

character-search (C-])

Bir karakter okunur ve nokta o karakterin bir sonraki geçtiği yere taşınır. Negatif bir sayım önceki oluşumları arar.

character-search-backward (M-C-])

Bir karakter okunur ve nokta o karakterin bir önceki geçtiği yere taşınır. Negatif bir sayım sonraki oluşumları arar.

skip-csi-sequence

Home ve End gibi tuşlar için tanımlananlar gibi bir çok tuş dizisini tüketmeye yetecek kadar karakter okuyun. Bu tür diziler bir Kontrol Dizisi Göstergesi (CSI), genellikle ESC-[ ile başlar. Bu dizi "\["'ye bağlıysa, bu tür dizileri üreten tuşların, başıboş karakterleri düzenleme arabelleğine eklemek yerine açıkça bir readline komutuna bağlı olmadıkça hiçbir etkisi olmayacaktır. Bu, varsayılan olarak ilişkisizdir, ancak genellikle ESC-['ye bağlıdır.

insert-comment (M-#)

Sayısal bağımsız değişken olmadan, readline comment-begin değişkeninin değeri geçerli satırın başına eklenir. Sayısal bir bağımsız değişken sağlanırsa, bu komut bir geçiş işlevi görür: satırın başındaki karakterler comment-begin değeriyle eşleşmiyorsa, değer eklenir, aksi takdirde < içindeki karakterler Strong>comment-begin satır başından itibaren silinir. Her iki durumda da satır, yeni bir satır yazılmış gibi kabul edilir. comment-begin'in varsayılan değeri, bu komutun geçerli satırı bir kabuk yorumu yapmasına neden olur. Sayısal bir bağımsız değişken yorum karakterinin kaldırılmasına neden olursa, satır kabuk tarafından yürütülür.

glob-complete-word (M-g)

Noktadan önceki sözcük, dolaylı olarak eklenen bir yıldız işaretiyle yol adı genişletme için bir model olarak ele alınır. Bu model, olası tamamlamalar için eşleşen dosya adlarının bir listesini oluşturmak için kullanılır.

glob-expand-word (C-x *)

Noktadan önceki sözcük, yol adı genişletmesi için bir kalıp olarak ele alınır ve eşleşen dosya adlarının listesi, sözcüğün yerine eklenir. Sayısal bir bağımsız değişken sağlanırsa, yol adı genişletmesinden önce bir yıldız işareti eklenir.

glob-list-expansions (C-x g)

glob-expand-word tarafından oluşturulacak genişletmelerin listesi görüntülenir ve satır yeniden çizilir. Sayısal bir bağımsız değişken sağlanırsa, yol adı genişletmesinden önce bir yıldız işareti eklenir.

dump-functions

Tüm işlevleri ve bunların anahtar bağlantılarını readline çıkış akışına yazdırın. Sayısal bir bağımsız değişken sağlanırsa, çıktı bir inputrc dosyasının parçası yapılabilecek şekilde biçimlendirilir.

dump-variables

Tüm ayarlanabilir readline değişkenlerini ve değerlerini readline çıktı akışına yazdırın. Sayısal bir bağımsız değişken sağlanırsa, çıktı bir inputrc dosyasının parçası yapılabilecek şekilde biçimlendirilir.

dump-macros

Makrolara bağlı tüm readline tuş dizilerini ve çıktıladıkları dizeleri yazdırın. Sayısal bir bağımsız değişken sağlanırsa, çıktı bir inputrc dosyasının parçası yapılabilecek şekilde biçimlendirilir.

display-shell-version (C-x C-v)

Geçerli bash örneğiyle ilgili sürüm bilgilerini görüntüleyin.

Programlanabilir Tamamlama

complete yerleşiği kullanılarak bir tamamlama özelliğinin (bir compspec) tanımlandığı bir komuta yönelik bir bağımsız değişken için sözcük tamamlama denendiğinde (bkz. SHELL BUILTIN COMMANDS< aşağıda), programlanabilir tamamlama araçları çağrılır.

İlk olarak, komut adı tanımlanır. Komut sözcüğü boş bir dizeyse (tamamlama boş bir satırın başında yapılmaya çalışılır), -E seçeneğiyle tamam olarak tanımlanan herhangi bir compspec kullanılır. Bu komut için bir compspec tanımlanmışsa, kelime için olası tamamlamaların listesini oluşturmak için compspec kullanılır. Komut sözcüğü bir tam yol adıysa, önce tam yol adı için bir compspec aranır. Tam yol adı için herhangi bir compspec bulunamazsa, son eğik çizgiden sonraki kısım için bir compspec bulunmaya çalışılır. Bu aramalar bir compspec ile sonuçlanmazsa, -D seçeneğiyle tamamlandı olarak tanımlanan herhangi bir compspec varsayılan olarak kullanılır. Varsayılan bir compspec yoksa, bash son çare olarak komut sözcüğünde takma ad genişletmeyi dener ve herhangi bir başarılı genişletmeden komut sözcüğü için bir compspec bulmaya çalışır.

Bir compspec bulunduğunda, eşleşen kelimelerin listesini oluşturmak için kullanılır. Compspec bulunamazsa, yukarıda Tamamlanıyor başlığı altında açıklanan varsayılan bash tamamlaması gerçekleştirilir.

İlk olarak, compspec tarafından belirtilen eylemler kullanılır. Yalnızca tamamlanmakta olan sözcüğün başına eklenen eşleşmeler döndürülür. Dosya adı veya dizin adı tamamlama için -f veya -d seçeneği kullanıldığında, eşleşmeleri filtrelemek için FIGNORE kabuk değişkeni kullanılır.

-G seçeneği için bir yol adı genişletme modeli tarafından belirtilen tüm tamamlamalar daha sonra oluşturulur. Kalıp tarafından oluşturulan kelimelerin tamamlanan kelime ile eşleşmesi gerekmez. Eşleşmeleri filtrelemek için GLOBIGNORE kabuk değişkeni kullanılmaz, ancak FIGNORE değişkeni kullanılır.

Ardından, -W seçeneğinin argümanı olarak belirtilen dize dikkate alınır. Dize önce IFS özel değişkenindeki karakterler sınırlayıcı olarak kullanılarak bölünür. Shell alıntısı onurlandırılır. Daha sonra her kelime, yukarıda EXPANSION altında açıklandığı gibi, ayraç genişletme, tilde genişletme, parametre ve değişken genişletme, komut değiştirme ve aritmetik genişletme kullanılarak genişletilir. Sonuçlar, yukarıda Kelime Bölme altında açıklanan kurallar kullanılarak bölünür. Genişletmenin sonuçları, tamamlanan kelimeye karşı ön ekle eşleştirilir ve eşleşen kelimeler olası tamamlamalar haline gelir.

Bu eşleşmeler oluşturulduktan sonra, -F ve -C seçenekleriyle belirtilen herhangi bir kabuk işlevi veya komutu çağrılır. Komut veya işlev çağrıldığında COMP_LINE, COMP_POINT, COMP_KEY ve COMP_TYPE değişkenlerine yukarıda Kabuk Değişkenleri altında açıklandığı gibi değerler atanır. Bir kabuk işlevi çağrılıyorsa COMP_WORDS ve COMP_CWORD değişkenleri de ayarlanır. İşlev veya komut çağrıldığında, birinci argüman ($1), argümanları tamamlanan komutun adıdır, ikinci argüman ($2) tamamlanan kelimedir ve üçüncü argüman ($3), geçerli komut satırında tamamlanan kelimeden önceki kelimedir. Oluşturulan tamamlamalar, tamamlanan kelimeye göre filtrelenmez; işlev veya komut eşleşmeleri oluşturmada tam özgürlüğe sahiptir.

-F ile belirtilen herhangi bir işlev önce çağrılır. İşlev, eşleşmeleri oluşturmak için aşağıda açıklanan compgen yerleşiği dahil olmak üzere kabuk tesislerinden herhangi birini kullanabilir. Olası tamamlamaları, dizi öğesi başına bir tane olacak şekilde COMPREPLY dizi değişkenine koymalıdır.

Ardından, -C seçeneğiyle belirtilen herhangi bir komut, komut ikamesine eşdeğer bir ortamda çağrılır. Standart çıktıya, her satıra bir tamamlama listesi yazdırmalıdır. Gerekirse yeni satırdan kaçmak için ters eğik çizgi kullanılabilir.

Tüm olası tamamlamalar oluşturulduktan sonra, listeye -X seçeneğiyle belirtilen herhangi bir filtre uygulanır. Filtre, yol adı genişletme için kullanılan bir modeldir; kalıptaki bir &, tamamlanan kelimenin metniyle değiştirilir. & sabit değeri ters eğik çizgi ile kaçabilir; bir eşleşme yapılmadan önce ters eğik çizgi kaldırılır. Modelle eşleşen herhangi bir tamamlama listeden kaldırılacaktır. Baştaki ! kalıbı reddeder; bu durumda modelle eşleşmeyen herhangi bir tamamlama kaldırılacaktır. nocasematch kabuk seçeneği etkinleştirilirse, eşleştirme, alfabetik karakterlerin büyük/küçük harf durumuna bakılmaksızın gerçekleştirilir.

Son olarak, -P ve -S seçenekleriyle belirtilen herhangi bir önek ve sonek, tamamlama listesinin her bir üyesine eklenir ve sonuç, olası tamamlamalar listesi olarak okuma satırı tamamlama koduna döndürülür.

Önceden uygulanan eylemler herhangi bir eşleşme oluşturmuyorsa ve compspec tanımlandığında -o dirnames seçeneği tamamlamak için sağlanmışsa, dizin adı tamamlama denenir.

Compspec tanımlandığında tamamlamak için -o plusdirs seçeneği sağlanmışsa, dizin adı tamamlama denenir ve eşleşmeler diğer işlemlerin sonuçlarına eklenir.

Varsayılan olarak, bir compspec bulunursa, ne üretirse üretsin, olası tamamlamaların tam kümesi olarak tamamlama koduna döndürülür. Varsayılan bash tamamlamaları denenmez ve dosya adı tamamlamanın okuma satırı varsayılanı devre dışı bırakılır. -o bashdefault seçeneği, compspec tanımlandığında complete için sağlandıysa, compspec hiçbir eşleşme oluşturmazsa bash varsayılan tamamlamaları denenir. Compspec tanımlandığında complete için -o default seçeneği sağlanmışsa, readline'ın varsayılan tamamlaması, compspec (ve denenirse, varsayılan bash tamamlamaları) eşleşme oluşturmaz.

Bir compspec, dizin adının tamamlanmasının istendiğini belirttiğinde, programlanabilir tamamlama işlevleri, readline'ı, mark-directories readline değişkeninin değerine bağlı olarak, dizinlere sembolik bağlantılar olan tamamlanmış adlara eğik çizgi eklemeye zorlar. mark-symlinked-directories readline değişkeninin ayarından bağımsız olarak.

Tamamlamaları dinamik olarak değiştirmek için bazı destekler vardır. Bu, en çok complete -D ile belirtilen bir varsayılan tamamlama ile birlikte kullanıldığında kullanışlıdır. Tamamlama işleyicileri olarak yürütülen kabuk işlevlerinin, 124'lük bir çıkış durumu döndürerek tamamlamanın yeniden denenmesi gerektiğini belirtmesi mümkündür. bağımsız değişkeni), programlanabilir tamamlama, bu komut için yeni bir compspec bulma girişimiyle baştan yeniden başlar. Bu, bir kerede yüklenmek yerine tamamlama denendiğinde dinamik olarak bir dizi tamamlamanın oluşturulmasına izin verir.

Örneğin, her biri komutun adına karşılık gelen bir dosyada tutulan bir compspecs kitaplığı olduğunu varsayarsak, aşağıdaki varsayılan tamamlama işlevi, tamamlamaları dinamik olarak yükler:

_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && 124 döndür

tamamlandı -D -F _completion_loader -o bashdefault -o varsayılan

TARİH

set yerleşkesinin -o history seçeneği etkinleştirildiğinde, kabuk daha önce yazılan komutların listesi olan komut geçmişine erişim sağlar. HISTSIZE değişkeninin değeri, bir geçmiş listesine kaydedilecek komut sayısı olarak kullanılır. Son HISTSIZE komutlarının (varsayılan 500) metni kaydedilir.

Kabuk, her bir komutu, parametre ve değişken genişletmeden önce (yukarıdaki EXPANSION'a bakın) geçmiş listesinde depolar, ancak geçmiş genişletme gerçekleştirildikten sonra, HISTIGNORE kabuk değişkenlerinin değerlerine tabidir. ve HISTCONTROL.

Başlangıçta, geçmiş, HISTFILE değişkeni tarafından adlandırılan dosyadan başlatılır (varsayılan ~/.bash_history). HISTFILE değeriyle adlandırılan dosya, gerekirse HISTFILESIZE değeriyle belirtilen satır sayısından fazlasını içermeyecek şekilde kesilir. HISTFILESIZE ayarlanmamışsa veya null, sayısal olmayan bir değer veya sıfırdan küçük bir sayısal değer olarak ayarlanmışsa, geçmiş dosyası kesilmez.

Geçmiş dosyası okunduğunda, geçmiş yorum karakteri ile başlayan ve hemen ardından bir rakam gelen satırlar, bir sonraki geçmiş satırı için zaman damgası olarak yorumlanır. Bu zaman damgaları, HISTTIMEFORMAT değişkeninin değerine bağlı olarak isteğe bağlı olarak görüntülenir. Geçmiş etkinleştirilmiş bir kabuktan çıkıldığında, son $HISTSIZE satırları geçmiş listesinden $HISTFILE konumuna kopyalanır.

histapend kabuk seçeneği etkinleştirildiyse (aşağıdaki SHELL BUILTIN COMMANDS altındaki shopt açıklamasına bakın), satırlar geçmiş dosyasına eklenir, aksi takdirde geçmiş dosyasının üzerine yazılır. HISTFILE ayarlanmamışsa veya geçmiş dosyası yazılamazsa, geçmiş kaydedilmez. HISTTIMEFORMAT değişkeni ayarlanırsa, zaman damgaları geçmiş dosyasına yazılır ve geçmiş yorum karakteriyle işaretlenir, böylece kabuk oturumlarında korunabilirler. Bu, zaman damgalarını diğer geçmiş satırlarından ayırmak için geçmiş yorum karakterini kullanır.

Geçmişi kaydettikten sonra, geçmiş dosyası en fazla HISTFILESIZE satır içerecek şekilde kesilir. HISTFILESIZE ayarlanmamışsa veya null, sayısal olmayan bir değer veya sıfırdan küçük bir sayısal değer olarak ayarlanmışsa, geçmiş dosyası kesilmez.

fc yerleşik komutu (aşağıdaki SHELL BUILTIN COMMANDS'a bakın) geçmiş listesinin bir bölümünü listelemek veya düzenlemek ve yeniden yürütmek için kullanılabilir. history yerleşiği, geçmiş listesini görüntülemek veya değiştirmek ve geçmiş dosyasını değiştirmek için kullanılabilir. Komut satırı düzenlemeyi kullanırken, geçmiş listesine erişim sağlayan her düzenleme modunda arama komutları mevcuttur.

Kabuk, geçmiş listesine hangi komutların kaydedileceğini kontrol etmeyi sağlar. HISTCONTROL ve HISTIGNORE değişkenleri, kabuğun girilen komutların yalnızca bir alt kümesini kaydetmesine neden olacak şekilde ayarlanabilir. cmdhist kabuk seçeneği, etkinleştirilirse, kabuğun çok satırlı bir komutun her satırını aynı geçmiş girişine kaydetmeye çalışmasına neden olur ve sözdizimsel doğruluğu korumak için gerektiğinde noktalı virgüller ekler. lithist kabuk seçeneği, kabuğun komutu noktalı virgüller yerine katıştırılmış yeni satırlarla kaydetmesine neden olur. Kabuk seçeneklerini ayarlamak ve ayarını kaldırmak hakkında bilgi için aşağıdaki SHELL BUILTIN COMMANDS altındaki shopt yerleşiğinin açıklamasına bakın.

TARİH GENİŞLETME

Kabuk, csh'deki geçmiş genişletmeye benzer bir geçmiş genişletme özelliğini destekler. Bu bölümde hangi sözdizimi özelliklerinin mevcut olduğu açıklanmaktadır. Bu özellik, etkileşimli kabuklar için varsayılan olarak etkindir ve yerleşik komutun +H seçeneği kullanılarak devre dışı bırakılabilir (aşağıdaki SHELL BUILTIN COMMANDS'a bakın). Etkileşimli olmayan kabuklar, varsayılan olarak geçmiş genişletmesi gerçekleştirmez.

Geçmiş genişletmeleri, geçmiş listesindeki sözcükleri giriş akışına sokarak komutları tekrarlamayı, önceki bir komuta ait bağımsız değişkenleri geçerli giriş satırına eklemeyi veya önceki komutlardaki hataları hızlı bir şekilde düzeltmeyi kolaylaştırır.

Geçmiş genişletme, tam bir satır okunduktan hemen sonra, kabuk onu kelimelere ayırmadan önce gerçekleştirilir ve önceki satırlardaki alıntılar dikkate alınmadan her satırda ayrı ayrı gerçekleştirilir. İki kısımda gerçekleşir. Birincisi, değiştirme sırasında geçmiş listesinden hangi satırın kullanılacağını belirlemektir. İkincisi, mevcut satıra dahil edilmek üzere o satırın bölümlerini seçmektir. Geçmişten seçilen satır olay'dır ve bu satırın üzerinde işlem yapılan bölümleri sözcüklerdir. Seçilen kelimeleri değiştirmek için çeşitli değiştiriciler mevcuttur. Satır, girdi okunurken olduğu gibi sözcüklere bölünür, böylece metakarakter ile ayrılmış, tırnak işaretleri içine alınmış birkaç sözcük tek bir sözcük olarak kabul edilir. Geçmiş genişletmeleri, varsayılan olarak  !  olan geçmiş genişletme karakterinin ortaya çıkmasıyla sunulur. Yalnızca ters eğik çizgi ( \ ) ve tek tırnak, geçmiş genişletme karakterini alıntılayabilir, ancak geçmiş genişletme karakteri, çift tırnaklı bir dizede kapanış çift tırnaktan hemen önce geliyorsa, aynı zamanda tırnaklı olarak kabul edilir.

Geçmiş genişletme karakterinin hemen ardından bulunursa, tırnak içine alınmamış olsa bile birkaç karakter geçmiş genişletmeyi engeller: boşluk, sekme, yeni satır, satır başı ve =. extglob kabuk seçeneği etkinleştirilirse, ( ayrıca genişlemeyi engeller.

shopt yerleşik yapısıyla ayarlanabilen birkaç kabuk seçeneği, geçmiş genişletme davranışını uyarlamak için kullanılabilir. histverify kabuk seçeneği etkinleştirildiyse (aşağıdaki shopt yerleşiğinin açıklamasına bakın) ve readline kullanılıyorsa, geçmiş değişiklikleri hemen yapılmaz kabuk ayrıştırıcısına geçti. Bunun yerine, genişletilmiş satır, daha fazla değişiklik için readline düzenleme arabelleğine yeniden yüklenir. readline kullanılıyorsa ve histreedit kabuk seçeneği etkinleştirildiyse, başarısız bir geçmiş değiştirme, düzeltme için readline düzenleme arabelleğine yeniden yüklenir. history yerleşik komutunun -p seçeneği, onu kullanmadan önce bir geçmiş genişletmenin ne yapacağını görmek için kullanılabilir. history yerleşkesinin -s seçeneği, komutları fiilen çalıştırmadan geçmiş listesinin sonuna eklemek için kullanılabilir, böylece daha sonra geri çağırmak için kullanılabilirler.

Kabuk, geçmiş genişletme mekanizması tarafından kullanılan çeşitli karakterlerin kontrol edilmesini sağlar (yukarıdaki Kabuk Değişkenleri altındaki histchars açıklamasına bakın). Kabuk, geçmiş dosyasını yazarken geçmiş zaman damgalarını işaretlemek için geçmiş yorum karakterini kullanır.

Olay Göstergeleri

Bir olay belirleyici, geçmiş listesindeki bir komut satırı girişine referanstır. Referans mutlak olmadığı sürece, olaylar geçmiş listesindeki geçerli konuma göredir.

!

Arkasında bir boşluk, yeni satır, satır başı,=veya ( (extglob kabuk seçeneği shopt yerleşiği kullanılarak etkinleştirildiğinde) dışında bir geçmiş değişikliği başlatın.

!n

n komut satırına bakın.

!-n

Mevcut komut eksi n'e bakın.

!!

Önceki komuta bakın. Bu, `!-1' ile eşanlamlıdır.

!string

string ile başlayan geçmiş listesindeki geçerli konumdan önceki en son komuta bakın.

!?string[?]

dize içeren geçmiş listesinde geçerli konumdan önceki en son komuta bakın. dize'nin hemen ardından bir yeni satır geliyorsa, sonundaki ? atlanabilir. dize eksikse, en son aramadan elde edilen dize kullanılır; önceki arama dizesi yoksa bu bir hatadır.

^string1^string2^

Hızlı ikame. string1 öğesini string2 ile değiştirerek önceki komutu tekrarlayın. ``!!:s^string1^string2^'' ile eşdeğerdir (aşağıdaki Değiştiriciler'e bakın).

!#

Şimdiye kadar yazılan tüm komut satırı.

Kelime Göstergeleri

Kelime işaretleyiciler, olaydan istenen kelimeleri seçmek için kullanılır. Bir :, olay belirtimini sözcük belirleyiciden ayırır. Kelime göstergesi ^, $, *, - veya % ile başlıyorsa atlanabilir. Kelimeler satırın başından itibaren numaralandırılır ve ilk kelime 0 (sıfır) ile gösterilir. Sözcükler, tek boşluklarla ayrılmış geçerli satıra eklenir.

0 (zero)

Sıfırıncı kelime. Kabuk için bu komut sözcüğüdür.

n

ninci kelime.

^

İlk argüman. Yani 1. kelime

$

Son kelime. Bu genellikle son argümandır, ancak satırda yalnızca bir kelime varsa sıfırıncı kelimeye genişler.

%

En son `?dize?' ile eşleşen ilk kelime arama, arama dizesi bir kelimenin parçası olan bir karakterle başlıyorsa.

x-y

Bir dizi kelime; `-y', `0-y' ifadesini kısaltır.

*

Sıfırıncı hariç tüm kelimeler. Bu, `1-$' ile eşanlamlıdır. Olayda yalnızca bir kelime varsa * kullanmak bir hata değildir; bu durumda boş dize döndürülür.

x*

x-$'yi kısaltır.

x-

x-$ öğesini x* gibi kısaltır, ancak son sözcüğü atlar. x eksikse varsayılan olarak 0'dır.

Bir sözcük belirteci olay belirtimi olmadan sağlanırsa, olay olarak önceki komut kullanılır.

Değiştiriciler

İsteğe bağlı kelime belirticiden sonra, her biri bir `:' ile başlayan aşağıdaki değiştiricilerden bir veya daha fazlasının bir dizisi görünebilir. Bunlar, geçmiş olaydan seçilen kelimeyi veya kelimeleri değiştirir veya düzenler.

h

Sondaki bir dosya adı bileşenini kaldırın, yalnızca başı bırakın.

t

Kuyruğu bırakarak önde gelen tüm dosya adı bileşenlerini kaldırın.

r

Temel adı bırakarak .xxx biçimindeki son eki kaldırın.

e

Son ek dışındaki tümünü kaldırın.

p

Yeni komutu yazdırın ancak yürütmeyin.

q

Daha fazla ikameden kaçarak, değiştirilen kelimeleri alıntılayın.

x

Değiştirilen sözcükleri q ile olduğu gibi alıntılayın, ancak sözcükleri boşluklara ve yeni satırlara ayırın. q ve x değiştiricileri birbirini dışlar; en son verilen kullanılır.

s/old/new/

Olay satırındaki ilk eski yerine yeni yazın. Ayırıcı olarak/yerine herhangi bir karakter kullanılabilir. Son sınırlayıcı, olay satırının son karakteriyse isteğe bağlıdır. Sınırlayıcı, tek bir ters eğik çizgi ile eski ve yeni şeklinde alıntılanabilir. yeni içinde & görünüyorsa, eski ile değiştirilir. Tek bir ters eğik çizgi, & işaretini alıntılayacaktır. eski null ise, değiştirilen son eski olarak ayarlanır veya daha önce herhangi bir geçmiş değiştirme gerçekleşmediyse, bir !?dize[?] aramasındaki son dize olarak ayarlanır. yeni null ise, eşleşen her eski silinir.

&

Önceki değişikliği tekrarlayın.

g

Değişikliklerin tüm olay satırına uygulanmasına neden olur. Bu, ":s" (ör. ":gs/eski/) ile birlikte kullanılır yeni/') veya `:&'. `:s' ile kullanılırsa,/yerine herhangi bir sınırlayıcı kullanılabilir ve olay satırının son karakteriyse son sınırlayıcı isteğe bağlıdır. Bir a, g ile eşanlamlı olarak kullanılabilir.

G

Aşağıdaki `s' veya `&' değiştiricisini olay satırındaki her kelimeye bir kez uygulayın.

KABUK YERLEŞİK KOMUTLARI

Aksi belirtilmedikçe, bu bölümde seçenekleri kabul ettiği belgelenen ve önünde - bulunan her yerleşik komut, seçeneklerin sonunu belirtmek için -- öğesini kabul eder. :, true, false ve test/[ yerleşikleri seçenekleri kabul etmez ve -- öğesini özel olarak ele almaz. exit, logout, return, break, continue, let ve shift yerleşikleri - ile başlayan bağımsız değişkenleri -- gerektirmeden kabul eder ve işler. Argümanları kabul eden ancak kabul eden seçenekler olarak belirtilmeyen diğer yerleşikler, - ile başlayan argümanları geçersiz seçenekler olarak yorumlar ve bu yorumlamayı önlemek için -- gerektirir.

: [arguments]

Etkisi yok; komut, bağımsız değişkenleri genişletmek ve belirtilen yönlendirmeleri gerçekleştirmek dışında hiçbir şey yapmaz. İade durumu sıfırdır.

.  filename [arguments]
source filename [arguments]

Geçerli kabuk ortamında filename'den komutları okuyun ve yürütün ve filename'den yürütülen son komutun çıkış durumunu döndürün. dosyaadı eğik çizgi içermiyorsa, dosyaadı içeren dizini bulmak için PATH içindeki dosya adları kullanılır. PATH içinde aranan dosyanın çalıştırılabilir olması gerekmez. bash posix kipinde olmadığında, PATH içinde dosya bulunamazsa geçerli dizin aranır. shopt yerleşik komutunun sourcepath seçeneği kapalıysa, PATH aranmaz. Herhangi bir bağımsız değişken sağlanırsa, dosyaadı yürütüldüğünde bunlar konumsal parametreler haline gelir.

Aksi takdirde konum parametreleri değişmez. -T seçeneği etkinleştirilirse kaynak, DEBUG üzerindeki tüm tuzakları devralır; değilse, herhangi bir DEBUG tuzak dizesi kaydedilir ve kaynağa yapılan çağrı etrafında geri yüklenir ve kaynak, yürütülürken DEBUG tuzağını kaldırır. -T ayarlanmamışsa ve kaynak dosya DEBUG tuzağını değiştirirse, kaynak tamamlandığında yeni değer korunur. Dönüş durumu, komut dosyası içinde çıkılan son komutun durumudur (hiçbir komut yürütülmezse 0), filename bulunamazsa veya okunamıyorsa false.

alias [-p] [name[=value] ...]

Alias bağımsız değişken olmadan veya -p seçeneğiyle takma adların listesini alias name=< biçiminde yazdırır standart çıktıdadeğer. Bağımsız değişkenler sağlandığında, değeri verilen her ad için bir takma ad tanımlanır. değer'deki sondaki boşluk, takma ad genişletildiğinde bir sonraki kelimenin takma ad ikamesi için kontrol edilmesine neden olur. Bağımsız değişken listesinde değer sağlanmayan her ad için takma adın adı ve değeri yazdırılır. Alias, herhangi bir takma adın tanımlanmadığı bir name verilmedikçe true değerini döndürür.

bg [jobspec ...]

Askıya alınan her işi jobspec arka planda, sanki & ile başlatılmış gibi devam ettirin. jobspec mevcut değilse, kabuğun geçerli iş kavramı kullanılır. bg jobspec, iş kontrolü devre dışı bırakıldığında çalıştırılmadıkça veya iş kontrolü etkinken çalıştırıldığında, belirtilen herhangi bir jobspec bulunamadığında veya iş kontrolü olmadan başlatılmadıkça 0 döndürür.

bind [-m keymap] [-lpsvPSVX]
bind [-m keymap] [-q function] [-u function] [-r keyseq]
bind [-m keymap] -f filename
bind [-m keymap] -x keyseq:shell-command
bind [-m keymap] keyseq:function-name
bind [-m keymap] keyseq:readline-command

Geçerli readline anahtarını ve işlev bağlamalarını görüntüleyin, bir tuş dizisini bir readline işlevine veya makroya bağlayın veya bir readline değişkeni ayarlayın. Seçenek dışı her bağımsız değişken, .inputrc içinde göründüğü şekliyle bir komuttur, ancak her bağlama veya komut ayrı bir bağımsız değişken olarak iletilmelidir; örneğin, '"\C-x\C-r": başlatma dosyasını yeniden oku'. Sağlanmışsa seçenekler aşağıdaki anlamlara gelir:

-m keymap

Sonraki bağlamalardan etkilenecek anahtar eşleme olarak keymap kullanın. Kabul edilebilir keymap adları emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command ve vi-insert'dir. vi, vi-command ile eşdeğerdir (vi-move aynı zamanda eşanlamlıdır); emacs, emacs-standart ile eşdeğerdir.

-l

Tüm readline işlevlerinin adlarını listeleyin.

-p

readline işlev adlarını ve bağlamalarını yeniden okunabilecek şekilde görüntüleyin.

-P

Geçerli readline işlev adlarını ve bağlantılarını listeleyin.

-s

Makrolara bağlı readline anahtar dizilerini ve çıktıladıkları dizeleri yeniden okunabilecek şekilde görüntüleyin.

-S

Makrolara bağlı readline anahtar dizilerini ve çıktıladıkları dizeleri görüntüleyin.

-v

readline değişken adlarını ve değerlerini yeniden okunabilecek şekilde görüntüleyin.

-V

Geçerli readline değişken adlarını ve değerlerini listeleyin.

-f filename

dosyaadı'ndan anahtar bağlamaları okuyun.

-q function

Adlandırılmış işlevi hangi tuşların çağırdığını sorgulayın.

-u function

Adlandırılmış işlev ile ilişkili tüm anahtarların bağlantısını kaldırın.

-r keyseq

keyseq için mevcut tüm bağlamaları kaldırın.

-x keyseq:shell-command

keyseq her girildiğinde kabuk komutunun çalıştırılmasına neden olur. kabuk komutu yürütüldüğünde, kabuk READLINE_LINE değişkenini readline satır arabelleğinin içeriğine ve READLINE_POINT ve READLINE_MARK değişkenlerini sırasıyla ekleme noktasının geçerli konumuna ve kaydedilen ekleme noktasına (işaret) ayarlar.

Yürütülen komut READLINE_LINE, READLINE_POINT veya READLINE_MARK değerlerinden herhangi birinin değerini değiştirirse, bu yeni değerler düzenleme durumunda yansıtılacaktır.

-X

Kabuk komutlarına bağlı tüm anahtar dizilerini ve ilişkili komutları girdi olarak yeniden kullanılabilecek bir biçimde listeleyin.

Tanınmayan bir seçenek verilmediği veya bir hata oluşmadığı sürece dönüş değeri 0'dır.

break [n]

Bir for, while, ttling veya select döngüsünden çıkın. n belirtilirse, n düzeylerini kırın. n ≥ 1 olmalıdır. n çevreleyen döngülerin sayısından büyükse, tüm çevreleyen döngülerden çıkılır. n 1'den büyük veya ona eşit olmadığı sürece dönüş değeri 0'dır.

builtin shell-builtin [arguments]

arguments ileterek belirtilen kabuk yerleşkesini yürütün ve çıkış durumunu döndürün. Bu, adı bir kabuk yerleşiği ile aynı olan bir fonksiyonu tanımlarken kullanışlıdır ve yerleşkenin fonksiyonlarını fonksiyon içinde tutar. cd yerleşiği genellikle bu şekilde yeniden tanımlanır. kabuk yerleşik bir kabuk yerleşik komutu değilse dönüş durumu yanlıştır.

caller [expr]

Herhangi bir etkin alt program çağrısının (. veya source yerleşikleriyle yürütülen bir kabuk işlevi veya komut dosyası) bağlamını döndürür. ifade olmadan, arayan mevcut alt program çağrısının hat numarasını ve kaynak dosya adını görüntüler. Negatif olmayan bir tamsayı expr olarak sağlanırsa, caller satır numarasını, altyordam adını ve geçerli yürütme çağrı yığınındaki o konuma karşılık gelen kaynak dosyayı görüntüler. Bu ekstra bilgi, örneğin bir yığın izini yazdırmak için kullanılabilir. Geçerli çerçeve çerçeve 0'dır. Kabuk bir altyordam çağrısı yürütmediği veya ifade çağrı yığınında geçerli bir konuma karşılık gelmediği sürece dönüş değeri 0'dır.

cd [-L|[-P [-e]] [-@]] [dir]

Geçerli dizini dir olarak değiştirin. dir sağlanmazsa HOME kabuk değişkeninin değeri varsayılandır. dir'den sonraki tüm ek bağımsız değişkenler dikkate alınmaz. CDPATH değişkeni, dir içeren dizin için arama yolunu tanımlar: CDPATH içindeki her dizin adı dir için aranır .

CDPATH içindeki alternatif dizin adları iki nokta üst üste (:) ile ayrılır. CDPATH içindeki boş bir dizin adı, geçerli dizinle aynıdır, yani ``.''. dir eğik çizgi (/) ile başlıyorsa, CDPATH kullanılmaz. -P seçeneği, dir üzerinde gezinirken ve örneklerini işlemeden önce sembolik bağları çözerek cd'nin fiziksel dizin yapısını kullanmasına neden olur. dir içinde (yerleşik set komutunun -P seçeneğine de bakın); -L seçeneği, dir içindeki .. örneklerini işledikten sonra bağlantıyı çözümleyerek sembolik bağları takip etmeye zorlar.

dir içinde .. görünürse, dizini'den hemen önceki yol adı bileşeni kaldırılarak, eğik çizgiye veya < başlangıcına geri dönülerek işlenir.dir. -e seçeneği -P ile sağlanırsa ve başarılı bir dizin değişikliğinden sonra mevcut çalışma dizini başarıyla belirlenemezse, cd geri döner başarısız bir durum. Onu destekleyen sistemlerde -@ seçeneği, bir dosyayla ilişkili genişletilmiş öznitelikleri bir dizin olarak sunar.

Dizin değişikliği yapılmadan önce - bağımsız değişkeni $OLDPWD değerine dönüştürülür. CDPATH'den boş olmayan bir dizin adı kullanılırsa veya ilk bağımsız değişken - ise ve dizin değişikliği başarılı olursa, yeni çalışma dizininin mutlak yol adı standart çıktıya yazılır. Dizin başarıyla değiştirildiyse, dönüş değeri doğrudur; Aksi takdirde yanlış.

command [-pVv] command [arg ...]

komutunu normal kabuk işlevi aramasını gizleyen args ile çalıştırın. Yalnızca yerleşik komutlar veya PATH içinde bulunan komutlar yürütülür. -p seçeneği verilirse, command araması, PATH için tüm standardı bulması garanti edilen varsayılan bir değer kullanılarak gerçekleştirilir. araçlar. -V veya -v seçeneği sağlanırsa, komut açıklaması yazdırılır.

-v seçeneği, command'ı çağırmak için kullanılan komutu veya dosya adını gösteren tek bir kelimenin görüntülenmesine neden olur; -V seçeneği daha ayrıntılı bir açıklama üretir. -V veya -v seçeneği sağlanırsa, çıkış durumu command bulunduysa 0, bulunamadıysa 1'dir. Hiçbir seçenek sağlanmaz ve bir hata oluşursa veya komut bulunamazsa, çıkış durumu 127'dir. Aksi takdirde, command yerleşiğinin çıkış durumu command'ın çıkış durumudur.

compgen [option] [word]

-p ve -r dışında complete yerleşiği tarafından kabul edilen herhangi bir seçenek olabilecek seçeneklere göre word için olası tamamlama eşleşmeleri oluşturun ve eşleşmeleri standart çıktıya yazın. -F veya -C seçeneklerini kullanırken, programlanabilir tamamlama araçları tarafından ayarlanan çeşitli kabuk değişkenleri, mevcut olduklarında yararlı değerlere sahip olmayacaktır.

Eşleşmeler, sanki programlanabilir tamamlama kodu onları doğrudan aynı işaretlere sahip bir tamamlama belirtiminden oluşturmuş gibi aynı şekilde üretilecektir. word belirtilirse, yalnızca word ile eşleşen tamamlamalar görüntülenecektir.

Geçersiz bir seçenek sağlanmadıkça veya hiçbir eşleşme oluşturulmadıkça dönüş değeri doğrudur.

complete [-abcdefgjksuv] [-o comp-option] [-DEI] [-A action] [-G globpat] [-W wordlist]
[-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]
complete -pr [-DEI] [name ...]

Her bir ad için bağımsız değişkenlerin nasıl tamamlanması gerektiğini belirtin. -p seçeneği sağlanırsa veya hiçbir seçenek sağlanmazsa, mevcut tamamlama belirtimleri, girdi olarak yeniden kullanılmalarına izin verecek şekilde yazdırılır. -r seçeneği, her ad için bir tamamlama belirtimini veya hiçbir ad sağlanmazsa, tüm tamamlama belirtimlerini kaldırır. -D seçeneği, sağlanan diğer seçeneklerin ve eylemlerin ``varsayılan'' komut tamamlama için geçerli olması gerektiğini belirtir; yani, daha önce herhangi bir tamamlama tanımlanmamış bir komutta tamamlama girişiminde bulunulmuştur. -E seçeneği, sağlanan diğer seçeneklerin ve eylemlerin ``boş'' komut tamamlama için geçerli olması gerektiğini belirtir; yani, boş bir satırda tamamlama denendi. -I seçeneği, sağlanan diğer seçeneklerin ve eylemlerin satırdaki ilk atama olmayan sözcükte veya ; veya < gibi bir komut sınırlayıcıdan sonra tamamlanması için uygulanması gerektiğini belirtir. Strong>|, genellikle komut adı tamamlamadır. Birden çok seçenek sağlanırsa, -D seçeneği -E'ye göre önceliklidir ve her ikisi de -I'ye göre önceliklidir. -D, -E veya -I'den herhangi biri sağlanırsa, diğer tüm name bağımsız değişkenleri dikkate alınmaz; bu tamamlamalar yalnızca seçenek tarafından belirtilen durum için geçerlidir.

Sözcük tamamlama denendiğinde bu tamamlama belirtimlerini uygulama süreci, yukarıda Programlanabilir Tamamlama altında açıklanmıştır.

Belirtilmişse, diğer seçenekler aşağıdaki anlamlara gelir. -G, -W ve -X seçeneklerinin bağımsız değişkenleri (ve gerekirse -P > ve -S seçenekleri), complete yerleşiği çağrılmadan önce genişlemeden korunmak için alıntılanmalıdır.

-o comp-option

comp-option, tamamlamaların basit bir şekilde oluşturulmasının ötesinde, compspec'in davranışının çeşitli yönlerini kontrol eder. comp-option şunlardan biri olabilir:

bashdefault

Compspec hiçbir eşleşme üretmiyorsa, varsayılan bash tamamlamalarının geri kalanını gerçekleştirin.

default

Compspec eşleşme üretmiyorsa, readline'ın varsayılan dosya adı tamamlamasını kullanın.

dirnames

Compspec eşleşme üretmiyorsa, dizin adı tamamlama gerçekleştirin.

filenames

Readline'a, compspec'in dosya adları oluşturduğunu söyleyin, böylece dosya adına özel herhangi bir işlemi gerçekleştirebilir (dizin adlarına eğik çizgi eklemek, özel karakterleri alıntılamak veya sondaki boşlukları bastırmak gibi). Kabuk işlevleriyle kullanılmak üzere tasarlanmıştır.

noquote

Readline'a, tamamlanmış sözcükler dosya adlarıysa alıntı yapmamasını söyleyin (dosya adlarını alıntılamak varsayılandır).

nosort

Readline'a olası tamamlamaların listesini alfabetik olarak sıralamamasını söyleyin.

nospace

Readline'a satırın sonunda tamamlanan sözcüklere boşluk (varsayılan) eklememesini söyleyin.

plusdirs

Compspec tarafından tanımlanan tüm eşleşmeler oluşturulduktan sonra, dizin adı tamamlama denenir ve tüm eşleşmeler diğer eylemlerin sonuçlarına eklenir.

-A action

Olası tamamlamaların bir listesini oluşturmak için eylem aşağıdakilerden biri olabilir:

alias

Takma adlar. -a olarak da belirtilebilir.

arrayvar

Dizi değişken adları.

binding

Readline anahtar bağlama adları.

builtin

Kabuk yerleşik komutlarının adları. -b olarak da belirtilebilir.

command

Komut adları. -c olarak da belirtilebilir.

directory

Dizin adları. -d olarak da belirtilebilir.

disabled

Devre dışı bırakılan kabuk yerleşiklerinin adları.

enabled

Etkin kabuk yerleşiklerinin adları.

export

Dışa aktarılan kabuk değişkenlerinin adları. -e olarak da belirtilebilir.

file

Dosya adları. -f olarak da belirtilebilir.

function

Kabuk işlevlerinin adları.

group

Grup adları. -g olarak da belirtilebilir.

helptopic

Yardım konuları, help yerleşik tarafından kabul edildiği şekliyle.

hostname

HOSTFILE kabuk değişkeni tarafından belirtilen dosyadan alınan ana bilgisayar adları.

job

İş kontrolü etkinse iş adları. -j olarak da belirtilebilir.

keyword

Kabuk ayrılmış kelimeler. -k olarak da belirtilebilir.

running

İş kontrolü etkinse çalışan işlerin adları.

service

Hizmet adları. -s olarak da belirtilebilir.

setopt

Yerleşik -o seçeneği için geçerli bağımsız değişkenler.

shopt

shopt yerleşik tarafından kabul edilen kabuk seçeneği adları.

signal

Sinyal isimleri.

stopped

İş kontrolü etkinse, durdurulan işlerin adları.

user

Kullanıcı adları. -u olarak da belirtilebilir.

variable

Tüm kabuk değişkenlerinin adları. -v olarak da belirtilebilir.

-C command

command bir alt kabuk ortamında yürütülür ve çıktısı olası tamamlamalar olarak kullanılır.

-F function

işlev kabuk işlevi, geçerli kabuk ortamında yürütülür. İşlev yürütüldüğünde, birinci argüman ($1) argümanları tamamlanan komutun adı, ikinci argüman ($2) ise tamamlanan kelimedir, ve üçüncü argüman ($3), mevcut komut satırında kelimeden önce gelen kelimedir. Bittiğinde, COMPREPLY dizi değişkeninin değerinden olası tamamlamalar alınır.

-G globpat

Yol adı genişletme modeli globpat, olası tamamlamaları oluşturmak için genişletildi.

-P prefix

Diğer tüm seçenekler uygulandıktan sonra olası her tamamlamanın başına önek eklenir.

-S suffix

Diğer tüm seçenekler uygulandıktan sonra olası her tamamlamaya sonek eklenir.

-W wordlist

Kelime listesi, IFS özel değişkenindeki karakterler sınırlayıcı olarak kullanılarak bölünür ve elde edilen her kelime genişletilir. Sözcüklerin kabuk metakarakterlerini veya IFS değerindeki karakterleri içermesi için bir mekanizma sağlamak amacıyla, wordlist içinde kabuk alıntılama dikkate alınır. Olası tamamlamalar, sonuç listesinin tamamlanan sözcükle eşleşen üyeleridir.

-X filterpat

filterpat, yol adı genişletme için kullanılan bir kalıptır. Önceki seçenekler ve bağımsız değişkenler tarafından oluşturulan olası tamamlamalar listesine uygulanır ve filterpat ile eşleşen her tamamlama listeden kaldırılır. filterpat'de önde gelen bir ! kalıbı olumsuzlar; bu durumda filterpat ile eşleşmeyen tüm tamamlamalar kaldırılır.

Geçersiz bir seçenek sağlanmadıkça, -p veya -r dışında bir seçenek name bağımsız değişkeni olmadan sağlanmadıkça, dönüş değeri doğrudur. Belirtimi olmayan bir ad için tamamlama belirtimini kaldırma girişiminde bulunuldu veya bir tamamlama belirtimi eklenirken bir hata oluştu.

compopt [-o option] [-DEI] [+o option] [name]

Her bir ad için tamamlama seçeneklerini seçeneklere göre veya herhangi bir ad sağlanmazsa şu anda yürütülmekte olan tamamlama için değiştirin. Herhangi bir seçenek verilmemişse, her bir ad için tamamlama seçeneklerini veya geçerli tamamlamayı görüntüleyin. Olası seçenek değerleri, yukarıda açıklanan complete yerleşkesi için geçerli olan değerlerdir. -D seçeneği, sağlanan diğer seçeneklerin ``varsayılan'' komut tamamlamaya uygulanması gerektiğini belirtir; yani, daha önce herhangi bir tamamlama tanımlanmamış bir komutta tamamlama girişiminde bulunulmuştur. -E seçeneği, sağlanan diğer seçeneklerin ``boş'' komut tamamlama için geçerli olması gerektiğini belirtir; yani, boş bir satırda tamamlama denendi. -I seçeneği, sağlanan diğer seçeneklerin, satırdaki ilk atama olmayan sözcükte veya ; veya gibi bir komut sınırlayıcıdan sonra tamamlanması için uygulanması gerektiğini belirtir. |, genellikle komut adı tamamlamadır.

Geçersiz bir seçenek sağlanmadıkça, tamamlama özelliği bulunmayan bir name için seçenekleri değiştirmeye çalışmadıkça veya bir çıktı hatası oluşmadıkça, dönüş değeri doğrudur.

continue [n]

for, while, until veya select döngüsünün bir sonraki yinelemesine devam edin. n belirtilmişse, ninci çevreleyen döngüde devam edin. n ≥ 1 olmalıdır. n çevreleyen döngülerin sayısından büyükse, son çevreleyen döngü (''üst düzey'' döngü) sürdürülür. n 1'den büyük veya ona eşit olmadığı sürece dönüş değeri 0'dır.

declare [-aAfFgiIlnrtux] [-p] [name[=value] ...]
typeset [-aAfFgiIlnrtux] [-p] [name[=value] ...]

Değişkenleri bildirin ve/veya onlara nitelikler verin. Hiçbir ad verilmezse değişkenlerin değerlerini görüntüleyin. -p seçeneği, her bir adın özniteliklerini ve değerlerini görüntüler. -p, name bağımsız değişkenleriyle birlikte kullanıldığında, -f ve -F dışındaki ek seçenekler dikkate alınmaz . -p, name bağımsız değişkenleri olmadan sağlandığında, ek seçenekler tarafından belirtilen niteliklere sahip tüm değişkenlerin özniteliklerini ve değerlerini görüntüler. -p ile başka bir seçenek sağlanmazsa, declare tüm kabuk değişkenlerinin özniteliklerini ve değerlerini görüntüler. -f seçeneği, ekranı kabuk işlevleriyle sınırlandırır. -F seçeneği, işlev tanımlarının görüntülenmesini engeller; yalnızca işlev adı ve nitelikleri yazdırılır. shopt kullanılarak extdebug kabuk seçeneği etkinleştirilirse, kaynak dosya adı ve her bir adın tanımlandığı satır numarası da görüntülenir. -F seçeneği -f anlamına gelir. -g seçeneği, bir kabuk işlevinde declare yürütüldüğünde bile değişkenleri genel kapsamda oluşturulmaya veya değiştirilmeye zorlar. Diğer tüm durumlarda göz ardı edilir. -I seçeneği, yerel değişkenlerin aynı name ile aynı name değişkeninin özniteliklerini (nameref özniteliği hariç) ve değerini devralmasına neden olur. çevreleyen kapsam. Mevcut bir değişken yoksa, yerel değişken başlangıçta ayarlanmamıştır. Çıktıyı belirtilen özniteliğe sahip değişkenlerle sınırlamak veya değişken öznitelikleri vermek için aşağıdaki seçenekler kullanılabilir:

-a

Her ad, dizinlenmiş bir dizi değişkenidir (yukarıdaki Diziler'e bakın).

-A

Her ad, ilişkilendirilebilir bir dizi değişkenidir (yukarıdaki Diziler'e bakın).

-f

Yalnızca işlev adlarını kullanın.

-i

Değişken bir tamsayı olarak ele alınır; aritmetik değerlendirme (yukarıdaki ARITMETİK DEĞERLENDİRME'ye bakın), değişkene bir değer atandığında gerçekleştirilir.

-l

Değişkene bir değer atandığında, tüm büyük harfler küçük harfe dönüştürülür. Büyük harf özelliği devre dışı bırakıldı.

-n

Her name'e nameref özniteliğini verin ve onu başka bir değişkene bir ad referansı yapın. Bu diğer değişken, name değeriyle tanımlanır. -n özniteliğinin kendisini kullananlar veya değiştirenler dışında, name'e yapılan tüm başvurular, atamalar ve öznitelik değişiklikleri, name'nin değeri tarafından başvurulan değişken üzerinde gerçekleştirilir. nameref özniteliği, dizi değişkenlerine uygulanamaz.

-r

ad adlarını salt okunur yapın. Bu adlara daha sonra sonraki atama ifadeleri veya unset tarafından değer atanamaz.

-t

Her ad'a izleme niteliğini verin. İzlenen işlevler, çağıran kabuktan DEBUG ve RETURN tuzaklarını devralır. trace özniteliğinin değişkenler için özel bir anlamı yoktur.

-u

Değişkene bir değer atandığında, tüm küçük harfler büyük harfe dönüştürülür. Küçük harf özniteliği devre dışı bırakıldı.

-x

Ortam aracılığıyla sonraki komutlara dışa aktarmak için ad'ları işaretleyin.

"-" yerine "+" kullanılması, +a ve +A'nın dizi değişkenlerini ve yok etmek için kullanılamayacağı istisnaları dışında, özniteliği kapatır. +r salt okunur özelliğini kaldırmaz. Bir işlevde kullanıldığında, declare ve typeset her name öğesini local komutunda olduğu gibi yerel yapar. -g seçeneği sağlanır. Bir değişken adının ardından =değer geliyorsa, değişkenin değeri değer olarak ayarlanır. Dizi değişkenleri oluşturmak için -a veya -A ve bileşik atama sözdizimini kullanırken, ek nitelikler sonraki atamalara kadar etkili olmaz. Geçersiz bir seçenekle karşılaşılmadıkça, ``-f foo=bar'' kullanılarak bir işlev tanımlanmaya çalışılmadıkça, salt okunur bir değişkene bir değer atamaya çalışılmadıkça, dönüş değeri 0'dır. bileşik atama sözdizimini kullanmadan bir dizi değişkenine bir değer (yukarıdaki Diziler'e bakın), adlardan biri geçerli bir kabuk değişkeni adı değil, döndürülmeye çalışılıyor salt okunur bir değişken için salt okunur durumu kapalı, bir dizi değişkeni için dizi durumu kapatılmaya çalışılıyor veya var olmayan bir işlev -f ile görüntülenmeye çalışılıyor.

dirs [-clpv] [+n] [-n]

Seçenekler olmadan, o anda hatırlanan dizinlerin listesini görüntüler. Varsayılan görünüm, dizin adlarının boşluklarla ayrıldığı tek bir satırdadır. pushd komutu ile dizinler listeye eklenir; popd komutu girişleri listeden kaldırır. Geçerli dizin her zaman yığındaki ilk dizindir.

-c

Tüm girişleri silerek dizin yığınını temizler.

-l

Tam yol adlarını kullanarak bir liste oluşturur; varsayılan listeleme biçimi, ana dizini belirtmek için yaklaşık işareti kullanır.

-p

Dizin yığınını her satıra bir giriş olacak şekilde yazdırın.

-v

Dizin yığınını her satıra bir giriş olacak şekilde yazdırın ve yığındaki her girişin önüne kendi dizinini ekleyin.

+n

Seçeneksiz çağrıldığında sıfırdan başlayarak dirs tarafından gösterilen listenin solundan sayılan ninci girişi görüntüler.

-n

Seçenek olmadan çağrıldığında sıfırdan başlayarak dirs tarafından gösterilen listenin sağından sayan ninci girişi görüntüler.

Geçersiz bir seçenek sağlanmadıkça veya dizin yığınının sonunun ötesinde n dizin yoksa dönüş değeri 0'dır.

disown [-ar] [-h] [jobspec ... | pid ... ]

Seçenekler olmadan, etkin işler tablosundan her bir jobspec öğesini kaldırın. jobspec yoksa ve ne -a ne de -r seçeneği sağlanmamışsa, mevcut iş kullanıldı. -h seçeneği verilirse, her jobspec tablodan kaldırılmaz, ancak SIGHUP işe gönderilmeyecek şekilde işaretlenir kabuk bir SIGHUP alırsa. Hiçbir jobspec sağlanmazsa, -a seçeneği tüm işleri kaldırmak veya işaretlemek anlamına gelir; jobspec bağımsız değişkeni olmayan -r seçeneği, işlemi çalışan işlerle sınırlar. Bir jobspec geçerli bir iş belirtmediği sürece dönüş değeri 0'dır.

echo [-neE] [arg ...]

arg'leri boşluklarla ayırarak ve ardından yeni bir satırla yazdırın. Bir yazma hatası oluşmadığı sürece dönüş durumu 0'dır. -n belirtilirse, sondaki yeni satır gizlenir. -e seçeneği verilirse, aşağıdaki ters eğik çizgi çıkışlı karakterlerin yorumlanması etkinleştirilir. -E seçeneği, varsayılan olarak yorumlandıkları sistemlerde bile bu kaçış karakterlerinin yorumlanmasını devre dışı bırakır. xpg_echo kabuk seçeneği, echo'nun bu kaçış karakterlerini varsayılan olarak genişletip genişletmeyeceğini dinamik olarak belirlemek için kullanılabilir. echo, -- öğesini seçeneklerin sonu olarak yorumlamaz. echo aşağıdaki kaçış dizilerini yorumlar:

\a

uyarı (zil)

\b

geri boşluk

\c

daha fazla çıktıyı bastırmak

\e
\E

bir kaçış karakteri

\f

form besleme

\n

Yeni hat

\r

satırbaşı

\t

yatay sekme

\v

dikey sekme

\\

ters eğik çizgi

\0nnn

değeri nnn sekizlik değeri olan sekiz bitlik karakter (sıfır ila üç sekizli basamak)

\xHH

değeri HH onaltılık değeri olan sekiz bitlik karakter (bir veya iki onaltılık basamak)

\uHHHH

değeri HHHH onaltılık değeri olan Unicode (ISO/IEC 10646) karakteri (bir ila dört onaltılık basamak)

\UHHHHHHHH

değeri onaltılık değer HHHHHHHH olan Unicode (ISO/IEC 10646) karakteri (bir ila sekiz onaltılık basamak)

enable [-a] [-dnps] [-f filename] [name ...]

Yerleşik kabuk komutlarını etkinleştirin ve devre dışı bırakın. Bir yerleşikin devre dışı bırakılması, kabuk normalde disk komutlarından önce yerleşikleri arasa da, bir kabuk yerleşikiyle aynı ada sahip bir disk komutunun tam bir yol adı belirtmeden yürütülmesine izin verir. -n kullanılırsa, her name devre dışı bırakılır; aksi takdirde, isimler etkinleştirilir. Örneğin, kabuk yerleşik sürümü yerine PATH yoluyla bulunan test ikilisini kullanmak için ``enable -n test'' komutunu çalıştırın. -f seçeneği, dinamik yüklemeyi destekleyen sistemlerde yeni yerleşik name komutunu filename paylaşılan nesnesinden yüklemek anlamına gelir. -d seçeneği, önceden -f ile yüklenmiş bir yerleşimi siler. Hiçbir name argümanı verilmezse veya -p seçeneği sağlanırsa, kabuk yerleşiklerinin bir listesi yazdırılır. Başka seçenek bağımsız değişkeni olmayan liste, etkinleştirilmiş tüm kabuk yerleşiklerinden oluşur. -n sağlanırsa, yalnızca devre dışı bırakılan yerleşikler yazdırılır. -a sağlanırsa, yazdırılan liste, her birinin etkinleştirilip etkinleştirilmediğinin bir göstergesiyle birlikte tüm yerleşikleri içerir. -s sağlanırsa, çıktı POSIX özel yerleşikleriyle sınırlandırılır. Bir name bir kabuk yerleşkesi değilse veya paylaşılan bir nesneden yeni bir yerleşiği yüklerken bir hata olmadıkça dönüş değeri 0'dır.

eval [arg ...]

arg'ler okunur ve tek bir komutta birleştirilir. Bu komut daha sonra kabuk tarafından okunur ve yürütülür ve çıkış durumu eval değeri olarak döndürülür. arg yoksa veya yalnızca boş bağımsız değişkenler varsa, eval 0 değerini döndürür.

exec [-cl] [-a name] [command [arguments]]

komut belirtilirse kabuğun yerine geçer. Yeni bir süreç oluşturulmaz. argümanlar, komut için argümanlar olur. -l seçeneği sağlanırsa, kabuk command'a iletilen sıfırıncı bağımsız değişkenin başına bir tire koyar. login(1) bunu yapar. -c seçeneği, komutun boş bir ortamla yürütülmesine neden olur. -a sağlanırsa, kabuk name öğesini yürütülen komuta sıfırıncı argüman olarak iletir. Herhangi bir nedenle command yürütülemezse, execfail kabuk seçeneği etkinleştirilmedikçe etkileşimli olmayan bir kabuktan çıkılır. Bu durumda başarısızlık döndürür. Etkileşimli bir kabuk, dosya yürütülemezse başarısızlık döndürür. exec başarısız olursa, bir alt kabuk koşulsuz olarak çıkar. command belirtilmezse, tüm yönlendirmeler geçerli kabukta etkili olur ve dönüş durumu 0'dır. Yeniden yönlendirme hatası varsa, dönüş durumu 1'dir.

exit [n]

Kabuğun n durumuyla çıkmasına neden olun. n atlanırsa, çıkış durumu yürütülen son komutun durumudur. Kabuk sona ermeden önce EXIT üzerinde bir tuzak yürütülür.

export [-fn ] [name[=word]] ...
export -p

Sağlanan adlar, daha sonra yürütülen komutların ortamına otomatik olarak dışa aktarılması için işaretlenir. -f seçeneği verilirse, adlar işlevleri ifade eder. Hiçbir ad verilmezse veya -p seçeneği sağlanırsa, dışa aktarılan tüm değişkenlerin adlarının bir listesi yazdırılır. -n seçeneği, dışa aktarma özelliğinin her ad öğesinden kaldırılmasına neden olur. Bir değişken adının ardından =word geliyorsa, değişkenin değeri word olarak ayarlanır. export, geçersiz bir seçenekle karşılaşılmadıkça, adlardan biri geçerli bir kabuk değişkeni adı değilse veya -f, işlev olmayan bir ad ile sağlanmadıkça, 0 çıkış durumunu döndürür.

fc [-e ename] [-lnr] [first] [last]
fc -s [pat=rep] [cmd]

İlk form, geçmiş listesinden ilk ile son arasında bir dizi komut seçer ve bunları görüntüler veya düzenler ve yeniden yürütür. First ve last, bir dize (o dizeyle başlayan son komutu bulmak için) veya bir sayı (negatif bir sayının olduğu geçmiş listesindeki bir dizin) olarak belirtilebilir. geçerli komut numarasından bir sapma olarak kullanılır). Listeleme sırasında, 0'ın ilk veya son değeri -1'e ve -0 geçerli komuta (genellikle fc komutu) eşittir ; aksi halde 0, -1'e eşdeğerdir ve -0 geçersizdir. last belirtilmezse, listeleme için geçerli komuta (böylece ``fc -l -10'' son 10 komutu yazdırır) ve ilk olarak ayarlanır. aksi takdirde. ilk belirtilmezse, düzenleme için önceki komuta ve listeleme için -16'ya ayarlanır.

-n seçeneği, listeleme sırasında komut numaralarını gizler. -r seçeneği, komutların sırasını tersine çevirir. -l seçeneği verilirse standart çıktıda komutlar listelenir. Aksi takdirde, bu komutları içeren bir dosyada ename tarafından verilen düzenleyici çağrılır. ename verilmezse, FCEDIT değişkeninin değeri kullanılır ve FCEDIT ise EDITOR değeri kullanılır. ayarlı değil. Değişkenlerden hiçbiri ayarlanmadıysa,  vi  kullanılır. Düzenleme tamamlandığında, düzenlenen komutlar yankılanır ve yürütülür.

İkinci formda, her pat örneği rep ile değiştirildikten sonra komut yeniden yürütülür. Komut, yukarıdaki ilk ile aynı şekilde yorumlanır. Bununla kullanmak için yararlı bir takma ad ``r="fc -s"'', böylece ``r cc'' yazıldığında ``cc'' ile başlayan son komut çalıştırılır ve ``r'' yazıldığında yeniden çalıştırılır. son komut

İlk form kullanılırsa, geçersiz bir seçenekle karşılaşılmadıkça veya ilk veya son tarih satırlarını aralığın dışında belirtmedikçe dönüş değeri 0'dır. -e seçeneği sağlanırsa, döndürülen değer çalıştırılan son komutun değeridir veya komutların geçici dosyasında bir hata oluşursa hata verir. İkinci form kullanılırsa, cmd geçerli bir geçmiş satırı belirtmedikçe, dönüş durumu yeniden yürütülen komutun durumudur, bu durumda fc başarısızlık döndürür.

fg [jobspec]

jobspec'i ön planda devam ettirin ve onu mevcut iş yapın. jobspec mevcut değilse, kabuğun geçerli iş kavramı kullanılır. Dönüş değeri, ön plana yerleştirilen komutun değeridir veya iş kontrolü devre dışı bırakıldığında çalıştırılırsa veya iş kontrolü etkinleştirilerek çalıştırıldığında, jobspec geçerli bir iş veya belirtmezse başarısız olur. jobspec, iş kontrolü olmadan başlatılan bir işi belirtir.

getopts optstring name [arg ...]

getopts, kabuk prosedürleri tarafından konumsal parametreleri ayrıştırmak için kullanılır. optstring, tanınacak seçenek karakterlerini içerir; bir karakterin ardından iki nokta üst üste geliyorsa, seçeneğin kendisinden boşlukla ayrılması gereken bir bağımsız değişkene sahip olması beklenir. İki nokta üst üste ve soru işareti karakterleri seçenek karakterleri olarak kullanılamaz. getopts her çağrıldığında sonraki seçeneği name kabuk değişkenine yerleştirir, yoksa name'i başlatır ve dizinini OPTIND değişkenine işlenecek bir sonraki bağımsız değişken.

OPTIND, kabuk veya kabuk betiği her çağrıldığında 1 olarak başlatılır. Bir seçenek bir bağımsız değişken gerektirdiğinde, getopts bu bağımsız değişkeni değişkene yerleştirir

OPTARG. Kabuk OPTIND'ı otomatik olarak sıfırlamaz; yeni bir parametre grubu kullanılacaksa, aynı kabuk çağrısı içinde birden fazla getopts çağrısı arasında manuel olarak sıfırlanmalıdır.

Seçeneklerin sonuyla karşılaşıldığında, getopts sıfırdan büyük bir dönüş değeriyle çıkar.

OPTIND, seçenek olmayan ilk bağımsız değişkenin dizinine ve name, ? olarak ayarlanır.

getopts normalde konum parametrelerini ayrıştırır, ancak arg değerleri olarak daha fazla argüman sağlanırsa, getopts bunları ayrıştırır.

getopts, hataları iki şekilde bildirebilir. optstring öğesinin ilk karakteri iki nokta üst üste ise, silent hata bildirimi kullanılır. Normal çalışmada, geçersiz seçenekler veya eksik seçenek bağımsız değişkenleriyle karşılaşıldığında tanılama mesajları yazdırılır. OPTERR değişkeni 0 olarak ayarlanırsa, optstring'in ilk karakteri iki nokta üst üste olmasa bile hiçbir hata mesajı görüntülenmez.

Geçersiz bir seçenek görülürse, getopts ? ad içine girer ve sessiz değilse bir hata mesajı yazdırır ve OPTARG ayarını kaldırır. getopts sessizse, bulunan seçenek karakteri OPTARG'a yerleştirilir ve teşhis mesajı yazdırılmaz.

Gerekli bir bağımsız değişken bulunamazsa ve getopts sessiz değilse, ad alanına bir soru işareti ( ? ) konur, OPTARG ayarlanmaz ve bir teşhis mesajı yazdırılır. getopts sessizse, name içine iki nokta üst üste ( : ) konur ve bulunan seçenek karakteri OPTARG olarak ayarlanır.

Belirtilen veya belirtilmeyen bir seçenek bulunursa getopts true değerini döndürür. Seçeneklerin sonunda karşılaşılırsa veya bir hata oluşursa false döndürür.

hash [-lr] [-p filename] [-dt] [name]

hash her çağrıldığında name komutunun tam yol adı, ` PATH içindeki dizinler aranarak belirlenir ve hatırlanır. Önceden hatırlanan herhangi bir yol adı atılır. -p seçeneği sağlanırsa, yol araması yapılmaz ve komutun tam dosya adı olarak dosyaadı kullanılır. -r seçeneği, kabuğun tüm hatırlanan konumları unutmasına neden olur. -d seçeneği, kabuğun her adın hatırlanan konumunu unutmasına neden olur. -t seçeneği sağlanırsa, her bir name'in karşılık geldiği tam yol adı yazdırılır. -t ile birden çok ad bağımsız değişkeni sağlanırsa, karma tam yol adından önce adı yazdırılır. -l seçeneği, çıktının girdi olarak yeniden kullanılabilecek bir biçimde görüntülenmesine neden olur. Herhangi bir argüman verilmezse veya yalnızca -l verilirse, hatırlanan komutlar hakkında bilgi yazdırılır. Bir ad bulunmadıkça veya geçersiz bir seçenek sağlanmadıkça dönüş durumu doğrudur.

help [-dms] [pattern]

Yerleşik komutlar hakkında faydalı bilgileri görüntüleyin. pattern belirtilirse, help, pattern ile eşleşen tüm komutlar hakkında ayrıntılı yardım sağlar; aksi takdirde tüm yerleşikler ve kabuk kontrol yapıları için yardım yazdırılır.

-d

Her kalıp için kısa bir açıklama görüntüleyin

-m

Her bir kalıbın açıklamasını kılavuz sayfası benzeri bir biçimde görüntüleyin

-s

Her kalıp için yalnızca kısa bir kullanım özeti görüntüleyin

Hiçbir komut pattern ile eşleşmediği sürece dönüş durumu 0'dır.

history [n]
history -c
history -d offset
history -d start-end
history -anrw [filename]
history -p arg [arg ...]
history -s arg [arg ...]

Hiçbir seçenek olmadan, komut geçmişi listesini satır numaralarıyla görüntüleyin. * ile listelenen satırlar değiştirildi. n bağımsız değişkeni yalnızca son n satırı listeler. HISTTIMEFORMAT kabuk değişkeni ayarlanmışsa ve boş değilse, görüntülenen her geçmiş girişiyle ilişkili zaman damgasını görüntülemek için strftime(3) için bir biçim dizesi olarak kullanılır. Biçimlendirilmiş zaman damgası ile geçmiş satırı arasında araya giren boşluk yazdırılmaz. filename verilirse, geçmiş dosyasının adı olarak kullanılır; değilse, HISTFILE değeri kullanılır. Sağlanmışsa seçenekler aşağıdaki anlamlara gelir:

-c

Tüm girişleri silerek geçmiş listesini temizleyin.

-d offset

Offset konumundaki geçmiş girişini silin. Offset negatifse, şundan bir büyük göreli olarak yorumlanır. son geçmiş konumu, yani negatif indeksler geçmişin sonundan geriye doğru sayılır ve -1 indeksi mevcut history -d komutunu ifade eder.

-d start-end

başlangıç ve bitiş, dahil olmak üzere konumlar arasındaki geçmiş girişlerini silin. start ve end için pozitif ve negatif değerler yukarıda açıklandığı gibi yorumlanır.

-a

Geçmiş dosyasına ``yeni'' geçmiş satırlarını ekleyin. Bunlar, geçerli bash oturumunun başlangıcından beri girilen, ancak geçmiş dosyasına henüz eklenmemiş geçmiş satırlarıdır.

-n

Geçmiş dosyasından henüz okunmamış geçmiş satırlarını mevcut geçmiş listesine okuyun. Bunlar, geçerli bash oturumunun başlangıcından bu yana geçmiş dosyasına eklenen satırlardır.

-r

Geçmiş dosyasının içeriğini okuyun ve mevcut geçmiş listesine ekleyin.

-w

Geçerli geçmiş listesini, geçmiş dosyasının içeriğinin üzerine yazarak geçmiş dosyasına yazın.

-p

Aşağıdaki arglarda geçmiş değiştirme gerçekleştirin ve sonucu standart çıktıda görüntüleyin. Sonuçları geçmiş listesinde saklamaz. Normal geçmiş genişletmeyi devre dışı bırakmak için her arg alıntılanmalıdır.

-s

args'ı geçmiş listesinde tek bir giriş olarak saklayın. args eklenmeden önce geçmiş listesindeki son komut kaldırılır.

HISTTIMEFORMAT değişkeni ayarlanmışsa, her bir geçmiş girişiyle ilişkili zaman damgası bilgisi, geçmiş yorum karakteriyle işaretlenerek geçmiş dosyasına yazılır. Geçmiş dosyası okunduğunda, geçmiş yorum karakteriyle başlayan ve hemen ardından bir rakam gelen satırlar, sonraki geçmiş girişi için zaman damgası olarak yorumlanır. Geçersiz bir seçenekle karşılaşılmadıkça, geçmiş dosyası okunurken veya yazılırken bir hata oluşmadıkça, -d'ye bağımsız değişken olarak geçersiz bir offset sağlanmadıkça veya dönüş değeri 0'dır. > -p başarısız için bir argüman olarak sağlanan geçmiş genişletme.

jobs [-lnprs] [ jobspec ... ]
jobs -x command [ args ... ]

İlk form aktif işleri listeler. Seçenekler aşağıdaki anlamlara sahiptir:

-l

Normal bilgilere ek olarak işlem kimliklerini listeleyin.

-n

Yalnızca kullanıcıya durumlarının en son bildirilmesinden bu yana durumu değişen işlerle ilgili bilgileri görüntüleyin.

-p

Yalnızca işin süreç grubu liderinin süreç kimliğini listeleyin.

-r

Yalnızca çalışan işleri görüntüleyin.

-s

Yalnızca durdurulan işleri görüntüleyin.

jobspec verilirse, çıktı o işle ilgili bilgilerle sınırlandırılır. Geçersiz bir seçenekle karşılaşılmadıkça veya geçersiz bir jobspec sağlanmadıkça dönüş durumu 0'dır.

-x seçeneği sağlanırsa, jobs, command veya args içinde bulunan herhangi bir jobspec öğesini karşılık gelen işlem grubu kimliğiyle değiştirir ve command komutunu args ileterek çıkış durumunu döndürür.

kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
kill -l|-L [sigspec | exit_status]

sigspec veya signum olarak adlandırılan sinyali, pid veya jobspec olarak adlandırılan işlemlere gönderin. sigspec, SIGKILL (SIG öneki olsun veya olmasın) gibi büyük/küçük harf duyarlı olmayan bir sinyal adı veya bir sinyal numarasıdır; signum bir sinyal numarasıdır. sigspec yoksa, SIGTERM varsayılır. -l bağımsız değişkeni, sinyal adlarını listeler. -l verildiğinde herhangi bir argüman sağlanırsa, argümanlara karşılık gelen sinyallerin adları listelenir ve dönüş durumu 0'dır. exit_status argümanı to -l, bir sinyal numarasını veya bir sinyal tarafından sonlandırılan bir sürecin çıkış durumunu belirten bir sayıdır. -L seçeneği, -l seçeneğine eşdeğerdir. kill, en az bir sinyal başarıyla gönderildiyse doğru, bir hata oluşursa veya yanlışsa yanlış döndürür. geçersiz bir seçenekle karşılaşıldı.

let arg [arg ...]

Her arg, değerlendirilecek bir aritmetik ifadedir (yukarıdaki ARITMETİK DEĞERLENDİRME'ye bakın). Son arg 0 olarak değerlendirilirse, let 1 döndürür; Aksi takdirde 0 döndürülür.

local [option] [name[=value] ... | - ]

Her bağımsız değişken için ad adlı yerel bir değişken oluşturulur ve değer atanır. seçenek, beyan tarafından kabul edilen seçeneklerden herhangi biri olabilir. Bir işlev içinde yerel kullanıldığında, name değişkeninin o işlev ve alt öğeleriyle sınırlı görünür bir kapsama sahip olmasına neden olur. ad - ise, kabuk seçenekleri kümesi, yerel'in çağrıldığı işlev için yerel yapılır: işlev geri döndüğünde işlev içindeki set yerleşiği kullanılarak değiştirilen kabuk seçenekleri orijinal değerlerine geri yüklenir. Geri yükleme, işlevden önce yerinde olan değerleri geri yüklemek için bir dizi set komutu yürütülmüş gibi gerçekleştirilir. İşlenen olmadan local, standart çıktıya yerel değişkenlerin bir listesini yazar. Bir işlev içinde değilken yerel kullanmak bir hatadır. yerel bir işlevin dışında kullanılmadıkça, geçersiz bir ad sağlanmadıkça veya ad salt okunur bir değişken olmadıkça dönüş durumu 0'dır.

logout

Bir oturum açma kabuğundan çıkın.

mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]

Standart girdiden dizine alınmış dizi değişkeni array'e veya -u seçeneği sağlanmışsa fd dosya tanımlayıcısına satırları okuyun. MAPFILE değişkeni varsayılan dizi'dir. Seçenekler, sağlanmışsa, aşağıdaki anlamlara gelir:

-d

delim'in ilk karakteri, yeni satır yerine her giriş satırını sonlandırmak için kullanılır. Boş dize delim ise, mapfile bir NUL karakteri okuduğunda bir satırı sonlandırır.

-n

En fazla sayı satır kopyalayın. count 0 ise, tüm satırlar kopyalanır.

-O

origin dizininde diziye atamaya başlayın. Varsayılan dizin 0'dır.

-s

Okunan ilk sayım satırı atın.

-t

Okunan her satırdan sondaki delimi (varsayılan yeni satır) kaldırın.

-u

Standart girdi yerine fd dosya tanımlayıcısından satırları okuyun.

-C

kuantum satırlarının her okunuşunda geri çağırma işlemini değerlendirin. -c seçeneği kuantumu belirtir.

-c

Her geri arama çağrısı arasında okunan satır sayısını belirtin.

-c olmadan -C belirtilirse, varsayılan kuantum 5000'dir. geri arama değerlendirildiğinde, atanacak bir sonraki dizi öğesinin dizini ve bu öğeye atanacak satır ek argüman olarak sağlanır. geri arama, satır okunduktan sonra ancak dizi öğesi atanmadan önce değerlendirilir.

Açık bir kaynak belirtilmemişse, mapfile atamadan önce diziyi temizler.

geçersiz bir seçenek veya seçenek bağımsız değişkeni sağlanmadıkça, dizi geçersiz veya atanamaz değilse veya dizi dizine alınmış bir dizi değilse, harita dosyası başarıyla döner.

popd [-n] [+n] [-n]

Girişleri dizin yığınından kaldırır. Bağımsız değişken olmadan, en üstteki dizini yığından kaldırır ve yeni en üst dizine bir cd gerçekleştirir. Argümanlar, sağlanmışsa, aşağıdaki anlamlara sahiptir:

-n

Dizinleri yığından kaldırırken normal dizin değişikliğini bastırır, böylece yalnızca yığın manipüle edilir.

+n

Sıfırdan başlayarak dirs tarafından gösterilen nlistenin solundan sayılan inci girişi kaldırır. Örneğin: ``popd +0'' ilk dizini kaldırır, ``popd +1'' ikinci dizini kaldırır.

-n

Sıfırdan başlayarak dirs tarafından gösterilen nlistenin sağından inci girişi kaldırır. Örneğin: ``popd -0'' son dizini, ``popd -1'' sondan bir sonrakini kaldırır.

popd komutu başarılı olursa, bir dirs de gerçekleştirilir ve dönüş durumu 0'dır. Geçersiz bir seçenek ise popd false değerini döndürür. karşılaşıldığında, dizin yığını boştur, var olmayan bir dizin yığını girişi belirtilir veya dizin değişikliği başarısız olur.

printf [-v var] format [arguments]

Biçimlendirilmiş bağımsız değişkenleri, format denetiminde standart çıktıya yazın. -v seçeneği çıktının standart çıktıya yazdırılmak yerine var değişkenine atanmasına neden olur.

format, üç tür nesne içeren bir karakter dizisidir: standart çıktıya basitçe kopyalanan düz karakterler, standart çıktıya dönüştürülüp kopyalanan karakter çıkış dizileri ve her biri bir sonraki bağımsız değişkenin yazdırılmasına neden olan biçim belirtimleri. Standart printf(1) biçim belirtimlerine ek olarak, printf aşağıdaki uzantıları yorumlar:

%b

printf'in karşılık gelen bağımsız değişkendeki ters eğik çizgi kaçış dizilerini echo -e ile aynı şekilde genişletmesine neden olur.

%q

printf'in karşılık gelen argümanı kabuk girdisi olarak yeniden kullanılabilecek bir biçimde çıkarmasına neden olur.

%(datefmt)T

printf'in, strftime için biçim dizesi olarak datefmt kullanılmasından kaynaklanan tarih-zaman dizesini çıkarmasına neden olur (3). Karşılık gelen bağımsız değişken, çağdan bu yana geçen saniye sayısını temsil eden bir tam sayıdır. İki özel bağımsız değişken değeri kullanılabilir: -1, geçerli zamanı ve -2, kabuğun çağrıldığı zamanı temsil eder. Herhangi bir bağımsız değişken belirtilmezse, dönüştürme -1 verilmiş gibi davranır. Bu, olağan printf davranışı için bir istisnadır.

%b, %q ve %T yönergelerinin tümü, biçim belirtimindeki alan genişliğini ve kesinlik bağımsız değişkenlerini kullanır ve genellikle orijinalinden daha fazla karakter içeren genişletilmiş bağımsız değişkenden o kadar baytı yazar (veya o kadar geniş bir alanı bunun için kullanır). .

Dize olmayan biçim belirticilere yönelik bağımsız değişkenler, baştaki artı veya eksi işaretine izin verilmesi dışında C sabitleri olarak ele alınır ve baştaki karakter tek veya çift tırnak ise değer, sonraki karakterin ASCII değeridir.

format, tüm argümanları tüketmek için gerektiği şekilde yeniden kullanılır. format sağlanandan daha fazla argüman gerektiriyorsa, ekstra biçim belirtimleri sıfır değer veya duruma göre boş dize sağlanmış gibi davranır. Başarı durumunda dönüş değeri sıfır, başarısızlık durumunda sıfır değildir.

pushd [-n] [+n] [-n]
pushd [-n] [dir]

Dizin yığınının en üstüne bir dizin ekler veya yığını döndürerek yığının yeni tepesini geçerli çalışma dizini yapar. Pushd, herhangi bir bağımsız değişken olmadan ilk iki dizini değiştirir ve dizin yığını boş olmadığı sürece 0 değerini döndürür. Argümanlar, sağlanmışsa, aşağıdaki anlamlara sahiptir:

-n

Yığına dizinleri döndürürken veya eklerken normal dizin değişikliğini bastırır, böylece yalnızca yığın manipüle edilir.

+n

Yığını, ninci dizin (sıfırdan başlayarak dirs ile gösterilen listenin solundan başlayarak) en üstte olacak şekilde döndürür .

-n

Yığını, ninci dizin (sıfırdan başlayarak dirs ile gösterilen listenin sağından başlayarak) en üstte olacak şekilde döndürür.

dir

En üstteki dizin yığınına dir ekler ve sanki cd yerleşiğine argüman olarak sağlanmış gibi onu yeni geçerli çalışma dizini yapar.

pushd komutu başarılı olursa, bir dirs de gerçekleştirilir. İlk form kullanılırsa, cd'den dir'e başarısız olmadıkça pushd 0 değerini döndürür. İkinci formda, pushd, dizin yığını boş olmadığı, var olmayan bir dizin yığını öğesi belirtilmediği veya belirtilen yeni geçerli dizine yapılan dizin değişikliği başarısız olmadığı sürece 0 döndürür.

pwd [-LP]

Geçerli çalışma dizininin mutlak yol adını yazdırın. -P seçeneği sağlanırsa veya set yerleşik komutu için -o fiziksel seçeneği etkinleştirilirse, yazdırılan yol adı hiçbir sembolik bağlantı içermez. -L seçeneği kullanılırsa, yazdırılan yol adı sembolik bağlantılar içerebilir. Geçerli dizinin adı okunurken bir hata oluşmadığı veya geçersiz bir seçenek sağlanmadığı sürece dönüş durumu 0'dır.

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

Standart girdiden veya -u seçeneğine bağımsız değişken olarak sağlanan fd dosya tanıtıcısından bir satır okunur, yukarıda Word altında açıklandığı gibi sözcüklere bölünür Bölme, ve ilk kelime birinci ad'a, ikinci kelime ikinci ad'a vb. atanır. İsimden daha fazla kelime varsa, kalan kelimeler ve bunların araya giren sınırlayıcıları soyadına atanır ad. Girdi akışından adlardan daha az sözcük okunursa, kalan adlara boş değerler atanır. IFS'deki karakterler, kabuğun genişletme için kullandığı kuralların aynısını kullanarak satırı sözcüklere bölmek için kullanılır (yukarıda Kelime Bölme başlığı altında açıklanmıştır). Ters eğik çizgi karakteri ( \) okunan bir sonraki karakter için herhangi bir özel anlamı kaldırmak ve satır devamı için kullanılabilir. Sağlanmışsa seçenekler aşağıdaki anlamlara gelir:

-a aname

Sözcükler, aname dizi değişkeninin 0'dan başlayarak sıralı dizinlerine atanır. Herhangi bir yeni değer atanmadan önce aname ayarlanmaz. Diğer name bağımsız değişkenleri dikkate alınmaz.

-d delim

Giriş satırını sonlandırmak için yeni satır yerine delim'in ilk karakteri kullanılır. delim boş dizeyse, read bir NUL karakteri okuduğunda bir satırı sonlandırır.

-e

Standart giriş bir terminalden geliyorsa, satırı elde etmek için readline (yukarıdaki READLINE'a bakın) kullanılır. Readline geçerli (veya satır düzenleme daha önce etkin değilse varsayılan) düzenleme ayarlarını kullanır, ancak Readline'ın varsayılan dosya adı tamamlamasını kullanır.

-i text

Satırı okumak için readline kullanılıyorsa, düzenleme başlamadan önce metin düzenleme arabelleğine yerleştirilir.

-n nchars

read, tam bir giriş satırı beklemek yerine nchars karakterleri okuduktan sonra geri döner, ancak sınırlayıcıdan önce nchars karakterden daha az karakter okunursa sınırlayıcıyı dikkate alır.

-N nchars

EOF ile karşılaşılmadığı veya okuma zaman aşımı olmadığı sürece, tam bir giriş satırı beklemek yerine nkarakterleri karakterleri tam olarak okuduktan sonra okuma geri döner. Girişte karşılaşılan sınırlayıcı karakterler özel olarak ele alınmaz ve read'in nchars karakterler okunana kadar döndürülmesine neden olmaz. Sonuç IFS'deki karakterlere bölünmez; amaç, değişkene tam olarak okunan karakterlerin atanmasıdır (ters eğik çizgi hariç; aşağıdaki -r seçeneğine bakın).

-p prompt

Herhangi bir girişi okumaya çalışmadan önce istemi standart hatada, sonunda yeni satır olmadan görüntüleyin. Bilgi istemi yalnızca giriş bir terminalden geliyorsa görüntülenir.

-r

Ters eğik çizgi bir kaçış karakteri gibi davranmaz. Ters eğik çizgi çizginin bir parçası olarak kabul edilir. Özellikle, bir ters eğik çizgi-yeni satır çifti, bir satır devamı olarak kullanılamaz.

-s

Sessiz mod. Giriş bir terminalden geliyorsa, karakterler yankılanmaz.

-t timeout

Girişin tam bir satırının (veya belirli sayıda karakterin) zaman aşımı saniye içinde okunmaması durumunda zaman aşımına uğramasına ve hata döndürmesine neden olur. zaman aşımı, ondalık noktadan sonra kesirli kısmı olan bir ondalık sayı olabilir. Bu seçenek yalnızca okuma bir uçbirimden, kanaldan veya başka bir özel dosyadan gelen girdiyi okuyorsa etkilidir; normal dosyalardan okurken hiçbir etkisi yoktur. Okuma zaman aşımına uğrarsa, okuma, okunan herhangi bir kısmi girdiyi belirtilen name değişkenine kaydeder. zaman aşımı 0 ise, okuma herhangi bir veri okumaya çalışmadan hemen geri döner. Belirtilen dosya tanıtıcıda giriş varsa çıkış durumu 0'dır, aksi takdirde sıfır değildir. Zaman aşımı aşılırsa çıkış durumu 128'den büyüktür.

-u fd

fd dosya tanıtıcısından girdiyi okuyun.

Hiçbir isim sağlanmazsa, okunan satır, bitiş sınırlayıcı olmadan ancak başka şekilde değiştirilmeden REPLY değişkenine atanır. Dosya sonuyla karşılaşılmadıkça, okuma zaman aşımına uğramadıkça (bu durumda durum 128'den büyükse), bir değişken atama hatası (salt okunur bir değişkene atama gibi) meydana gelmedikçe veya -u'ya argüman olarak geçersiz bir dosya tanıtıcı sağlanmadıkça çıkış durumu sıfırdır.

readonly [-aAf] [-p] [name[=word] ...]

Verilen isimler salt okunur olarak işaretlenir; bu adların değerleri sonraki atamayla değiştirilemez. -f seçeneği sağlanırsa, adlara karşılık gelen işlevler bu şekilde işaretlenir. -a seçeneği, değişkenleri dizinlenmiş dizilerle sınırlar; -A seçeneği, değişkenleri ilişkisel dizilerle sınırlar. Her iki seçenek de sağlanmışsa, -A öncelik kazanır. Hiçbir ad bağımsız değişkeni verilmezse veya -p seçeneği sağlanırsa, tüm salt okunur adların bir listesi yazdırılır. Diğer seçenekler, çıktıyı salt okunur adlar kümesinin bir alt kümesiyle sınırlamak için kullanılabilir. -p seçeneği, çıktının girdi olarak yeniden kullanılabilecek bir biçimde görüntülenmesine neden olur. Bir değişken adının ardından =word geliyorsa, değişkenin değeri word olarak ayarlanır. Geçersiz bir seçenekle karşılaşılmadıkça, adlardan biri geçerli bir kabuk değişkeni adı değilse veya -f işlev olmayan bir ad ile sağlanmadıkça dönüş durumu 0'dır.

return [n]

Bir işlevin yürütmeyi durdurmasına ve n tarafından belirtilen değeri çağırana döndürmesine neden olur. n atlanırsa, dönüş durumu işlev gövdesinde yürütülen son komutun durumudur. dönüş bir tuzak işleyici tarafından yürütülürse, durumu belirlemek için kullanılan son komut, tuzak işleyiciden önce yürütülen son komuttur. Dönüş bir DEBUG tuzağı sırasında yürütülürse, durumu belirlemek için kullanılan son komut tuzak işleyicisi tarafından dönüş çağrılmadan önce yürütülen son komuttur. bir işlevin dışında kullanılır, ancak . (kaynak) komutu tarafından bir betiğin yürütülmesi sırasında, kabuğun bu betiği yürütmeyi durdurmasına neden olur ve ikisinden birini döndürür n veya komut dosyası içinde yürütülen son komutun çıkış durumu, komut dosyasının çıkış durumu olarak. n sağlanırsa, dönüş değeri en önemsiz 8 bittir. return sayısal olmayan bir bağımsız değişken olarak sağlanırsa veya tarafından bir komut dosyasının yürütülmesi sırasında değil, bir işlevin dışında kullanılırsa dönüş durumu sıfır değildir. veya kaynak. RETURN tuzağıyla ilişkili herhangi bir komut, işlev veya komut dosyasından sonra yürütme devam etmeden önce yürütülür.

set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...]
set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]

Seçenekler olmadan, her bir kabuk değişkeninin adı ve değeri, halihazırda ayarlanmış olan değişkenleri ayarlamak veya sıfırlamak için girdi olarak yeniden kullanılabilecek bir formatta görüntülenir. Salt okunur değişkenler sıfırlanamaz. posix modunda yalnızca kabuk değişkenleri listelenir. Çıktı, geçerli yerel ayara göre sıralanır. Seçenekler belirtildiğinde, kabuk özniteliklerini ayarlar veya ayarlarlarını kaldırırlar. Seçenek işlemeden sonra kalan bağımsız değişkenler, konumsal parametreler için değerler olarak ele alınır ve sırasıyla $1, $2, ... $n'e atanır. Seçenekler, belirtilirse, aşağıdaki anlamlara gelir:

-a

Oluşturulan veya değiştirilen her değişkene veya işleve, dışa aktarma niteliği verilir ve sonraki komutların ortamına dışa aktarılmak üzere işaretlenir.

-b

Sonlandırılan arka plan işlerinin durumunu bir sonraki birincil bilgi isteminden önce değil hemen bildirin. Bu, yalnızca iş kontrolü etkinleştirildiğinde etkilidir.

-e

Bir iş hattı (tek bir basit komut içerebilir), bir liste varsa hemen çıkın , veya bir bileşik komut (yukarıdaki SHELL GRAMMAR'a bakın), sıfırdan farklı bir durumla çıkar. Başarısız olan komut, komut listesinin bir while veya until anahtar sözcüğünden hemen sonra, testin if'den sonraki parçasıysa kabuktan çıkılmaz. güçlü> veya elif ayrılmış sözcükler, && veya || listesinde yürütülen herhangi bir komutun parçası, son &&'den sonraki komut hariç veya ||, bir işlem hattındaki son komut dışında herhangi bir komut veya komutun dönüş değeri ! ile ters çevriliyorsa. -e göz ardı edilirken bir komut başarısız olduğu için alt kabuk dışındaki bir bileşik komut sıfırdan farklı bir durum döndürürse, kabuk çıkmaz. Ayarlanmışsa, ERR üzerinde bir tuzak kabuk çıkmadan önce yürütülür. Bu seçenek, kabuk ortamı ve her bir alt kabuk ortamı için ayrı ayrı geçerlidir (bkz.

KOMUT YÜRÜTME ORTAMI) ve alt kabuktaki tüm komutları yürütmeden önce alt kabukların çıkmasına neden olabilir.

Bir bileşik komut veya kabuk işlevi, -e'nin yok sayıldığı bir bağlamda yürütülürse, bileşik komut veya işlev gövdesi içinde yürütülen komutların hiçbiri -e ayarından etkilenmez. -e ayarlanırsa ve bir komut bir başarısızlık durumu döndürür. Bir bileşik komut veya kabuk işlevi, -e'nin yok sayıldığı bir bağlamda yürütülürken -e'yi ayarlarsa, bu ayarın, bileşik komut veya şunu içeren komut gerçekleşene kadar herhangi bir etkisi olmaz işlev çağrısı tamamlanır.

-f

Yol adı genişletmeyi devre dışı bırakın.

-h

Yürütme için arandıklarında komutların konumunu hatırlayın. Bu, varsayılan olarak etkindir.

-k

Yalnızca komut adından önce gelenler değil, atama ifadeleri biçimindeki tüm bağımsız değişkenler bir komut için ortama yerleştirilir.

-m

İzleme modu. İş kontrolü etkinleştirildi. Bu seçenek, onu destekleyen sistemlerdeki etkileşimli kabuklar için varsayılan olarak açıktır (yukarıdaki İŞ KONTROLÜ'ne bakın). Tüm işlemler ayrı bir işlem grubunda çalışır. Bir arka plan işi tamamlandığında, kabuk, çıkış durumunu içeren bir satır yazdırır.

-n

Komutları okuyun ama yürütmeyin. Bu, sözdizimi hataları için bir kabuk betiğini kontrol etmek için kullanılabilir. Bu, etkileşimli kabuklar tarafından göz ardı edilir.

-o option-name

seçenek-adı aşağıdakilerden biri olabilir:

allexport

-a ile aynı.

braceexpand

-B ile aynı.

emacs

Emacs tarzı bir komut satırı düzenleme arabirimi kullanın. Bu, kabuk --noediting seçeneğiyle başlatılmadığı sürece, kabuk etkileşimli olduğunda varsayılan olarak etkindir. Bu, read -e için kullanılan düzenleme arayüzünü de etkiler.

errexit

-e ile aynı.

errtrace

-E ile aynı.

functrace

-T ile aynı.

hashall

-h ile aynı.

histexpand

-H ile aynı.

history

Yukarıda GEÇMİŞ altında açıklandığı gibi komut geçmişini etkinleştirin. Bu seçenek, etkileşimli mermilerde varsayılan olarak açıktır.

ignoreeof

Etki, ``IGNOREEOF=10'' kabuk komutu yürütülmüş gibidir (yukarıdaki Kabuk Değişkenlerine bakın).

keyword

-k ile aynı.

monitor

-m ile aynı.

noclobber

-C ile aynı.

noexec

-n ile aynı.

noglob

-f ile aynı.

nolog

Şu anda göz ardı edildi.

notify

-b ile aynı.

nounset

-u ile aynı.

onecmd

-t ile aynı.

physical

-P ile aynı.

pipefail

Ayarlanırsa, bir boru hattının dönüş değeri, sıfır olmayan bir durumla çıkmak için son (en sağdaki) komutun değeri veya boru hattındaki tüm komutlar başarılı bir şekilde çıkarsa sıfırdır. Bu seçenek varsayılan olarak devre dışıdır.

posix

Varsayılan işlemin standartla (posix modu) eşleşmesi için POSIX standardından farklı olduğu durumlarda bash'ın davranışını değiştirin. posix modunun bash davranışını nasıl etkilediğini ayrıntılarıyla açıklayan bir belgeye referans için aşağıdaki AYRICA BAKIN'a bakın.

privileged

-p ile aynı.

verbose

-v ile aynı.

vi

Vi stili bir komut satırı düzenleme arabirimi kullanın. Bu, read -e için kullanılan düzenleme arayüzünü de etkiler.

xtrace

-x ile aynı.

-o, seçenek-adı olmadan sağlanırsa, mevcut seçeneklerin değerleri yazdırılır. +o, seçenek adı olmadan sağlanırsa, standart çıktıda geçerli seçenek ayarlarını yeniden oluşturmak için bir dizi set komutu görüntülenir.

-p

Ayrıcalıklı modunu açın. Bu modda, $ENV ve $BASH_ENV dosyaları işlenmez, kabuk işlevleri ortamdan miras alınmaz ve SHELLOPTS, BASHOPTS, CDPATH ve GLOBIGNORE değişkenleri ortamda görünürlerse yoksayılır. Kabuk, gerçek kullanıcı (grup) kimliğine eşit olmayan etkin kullanıcı (grup) kimliğiyle başlatılırsa ve -p seçeneği sağlanmazsa, bu işlemler yapılır ve etkin kullanıcı kimliği, gerçek kullanıcı kimliğine ayarlanır. Başlangıçta -p seçeneği sağlanırsa, etkin kullanıcı kimliği sıfırlanmaz. Bu seçeneğin kapatılması, etkin kullanıcı ve grup kimliklerinin gerçek kullanıcı ve grup kimliklerine ayarlanmasına neden olur.

-t

Bir komutu okuyup yürüttükten sonra çıkın.

-u

Parametre genişletmeyi gerçekleştirirken "@" ve "*" özel parametreleri dışındaki ayarlanmamış değişkenleri ve parametreleri bir hata olarak kabul edin. Ayarlanmamış bir değişken veya parametre üzerinde genişletme denenirse, kabuk bir hata mesajı yazdırır ve etkileşimli değilse, sıfır olmayan bir durumla çıkar.

-v

Okundukları gibi kabuk giriş satırlarını yazdırın.

-x

Her bir basit komutu, komut, vaka komutu, seçme komutu veya aritmetik komut için genişlettikten sonra, genişletilmiş değerini görüntüleyin< PS4, ardından komut ve genişletilmiş bağımsız değişkenleri veya ilişkili kelime listesi.

-B

Kabuk küme ayracı genişletmesi gerçekleştirir (yukarıdaki Brace Genişletme'ye bakın). Bu, varsayılan olarak açıktır.

-C

Ayarlanırsa, bash, >, >& ve <> yönlendirme işleçleriyle mevcut bir dosyanın üzerine yazmaz. Bu, çıktı dosyaları oluşturulurken > yerine >| yeniden yönlendirme işleci kullanılarak geçersiz kılınabilir.

-E

Ayarlanırsa, ERR'deki herhangi bir tuzak, kabuk işlevleri, komut ikameleri ve bir alt kabuk ortamında yürütülen komutlar tarafından devralınır. ERR tuzağı normalde bu tür durumlarda miras alınmaz.

-H

Stil geçmişi değiştirmeyi ! etkinleştirin. Kabuk etkileşimli olduğunda bu seçenek varsayılan olarak açıktır.

-P

Ayarlanırsa kabuk, geçerli çalışma dizinini değiştiren cd gibi komutları yürütürken sembolik bağları çözmez. Bunun yerine fiziksel dizin yapısını kullanır. Varsayılan olarak, bash geçerli dizini değiştiren komutları gerçekleştirirken mantıksal dizin zincirini izler.

-T

Ayarlanırsa, DEBUG ve RETURN üzerindeki tüm tuzaklar, kabuk işlevleri, komut ikameleri ve bir alt kabuk ortamında yürütülen komutlar tarafından devralınır. Bu tür durumlarda DEBUG ve RETURN tuzakları normalde miras alınmaz.

--

Bu seçeneği izleyen hiçbir bağımsız değişken yoksa, konumsal parametreler ayarlanmaz. Aksi takdirde, konum parametreleri, bazıları bir - ile başlasa bile arg olarak ayarlanır.

-

Seçeneklerin sonunu işaretle, kalan tüm arg'lerin konumsal parametrelere atanmasına neden olur. -x ve -v seçenekleri kapatılır. arg yoksa, konum parametreleri değişmeden kalır.

Aksi belirtilmedikçe seçenekler varsayılan olarak kapalıdır. - yerine + kullanılması bu seçeneklerin kapatılmasına neden olur. Seçenekler, kabuğun çağrılması için bağımsız değişkenler olarak da belirtilebilir. Mevcut seçenekler grubu $- içinde bulunabilir. Geçersiz bir seçenekle karşılaşılmadıkça dönüş durumu her zaman doğrudur.

shift [n]

n+1 ... öğesindeki konum parametreleri $1 ... olarak yeniden adlandırıldı. $# ile $#-n+1 arasındaki sayılar ayarlanmamıştır. n $# değerinden küçük veya ona eşit negatif olmayan bir sayı olmalıdır. n 0 ise, hiçbir parametre değiştirilmez. n verilmezse, 1 olduğu varsayılır. n, $# değerinden büyükse, konum parametreleri değişmez. n, $# değerinden büyük veya sıfırdan küçükse dönüş durumu sıfırdan büyüktür; Aksi takdirde 0.

shopt [-pqsu] [-o] [optname ...]

İsteğe bağlı kabuk davranışını kontrol eden ayarların değerlerini değiştirin. Ayarlar, aşağıda listelenenler veya -o seçeneği kullanılıyorsa, set yerleşik komutunda -o seçeneğiyle kullanılabilenler olabilir.< Seçenek olmadan veya -p seçeneğiyle, her birinin ayarlanıp ayarlanmadığını gösteren bir gösterge ile tüm ayarlanabilir seçeneklerin bir listesi görüntülenir; optnames sağlanırsa, çıktı bu seçeneklerle sınırlandırılır. -p seçeneği, çıktının yeniden kullanılabilecek bir biçimde görüntülenmesine neden olur girdi olarak. Diğer seçenekler aşağıdaki anlamlara sahiptir:

-s

Her seçenek adını etkinleştirin (ayarlayın).

-u

Her seçenek adını devre dışı bırakın (ayarlamayı kaldırın).

-q

Normal çıkışı bastırır (sessiz mod); dönüş durumu, optname öğesinin ayarlanıp ayarlanmadığını gösterir. Birden fazla optname bağımsız değişkeni ile verilirse -q, tüm seçenek adları etkinleştirildiyse dönüş durumu sıfırdır; aksi takdirde sıfır olmayan.

-o

optname değerlerini, set yerleşiğindeki -o seçeneği için tanımlanan değerlerle sınırlar.

optname bağımsız değişkenleri olmadan -s veya -u kullanılırsa, shopt yalnızca sırasıyla ayarlanmış veya ayarlanmamış seçenekleri gösterir. Aksi belirtilmedikçe, mağaza seçenekleri varsayılan olarak devre dışıdır (ayarlanmamıştır).

Tüm optnames etkinleştirildiyse, seçenekleri listelerken dönüş durumu sıfırdır, aksi takdirde sıfır değildir. Seçenekleri ayarlarken veya iptal ederken, bir seçenek adı geçerli bir kabuk seçeneği olmadığı sürece dönüş durumu sıfırdır.

Mağaza seçeneklerinin listesi:

assoc_expand_once

Ayarlanırsa kabuk, aritmetik ifade değerlendirmesi sırasında, değişken atamaları gerçekleştirebilen yerleşikleri yürütürken ve dizi başvurusunu kaldıran yerleşikleri yürütürken ilişkisel dizi alt simgelerinin çoklu değerlendirmesini bastırır.

autocd

Ayarlanırsa, bir dizinin adı olan bir komut adı, cd komutunun argümanıymış gibi yürütülür. Bu seçenek yalnızca etkileşimli kabuklar tarafından kullanılır.

cdable_vars

Ayarlanırsa, bir dizin olmayan cd yerleşik komutuna yönelik bir argümanın, değeri değiştirilecek dizin olan bir değişkenin adı olduğu varsayılır.

cdspell

Ayarlanırsa, bir cd komutundaki bir dizin bileşeninin yazımındaki küçük hatalar düzeltilecektir. Kontrol edilen hatalar, yer değiştiren karakterler, eksik bir karakter ve bir karakterin çok fazla olmasıdır. Bir düzeltme bulunursa, düzeltilen dosya adı yazdırılır ve komut devam eder. Bu seçenek yalnızca etkileşimli kabuklar tarafından kullanılır.

checkhash

Ayarlanırsa, bash, çalıştırmayı denemeden önce karma tablosunda bulunan bir komutun var olup olmadığını kontrol eder. Karma bir komut artık mevcut değilse, normal bir yol araması gerçekleştirilir.

checkjobs

Ayarlanırsa, bash, etkileşimli bir kabuktan çıkmadan önce durdurulan ve çalışan tüm işlerin durumunu listeler. Herhangi bir iş çalışıyorsa, bu durum, araya giren bir komut olmadan ikinci bir çıkış denenene kadar çıkışın ertelenmesine neden olur (yukarıdaki İŞ KONTROLÜ'ne bakın). Herhangi bir iş durdurulursa kabuk her zaman çıkışı erteler.

checkwinsize

Ayarlanırsa, bash her harici (yerleşik olmayan) komuttan sonra pencere boyutunu kontrol eder ve gerekirse LINES ve COLUMNS değerlerini günceller. Bu seçenek varsayılan olarak etkindir.

cmdhist

Ayarlanırsa, bash çok satırlı bir komutun tüm satırlarını aynı geçmiş girişine kaydetmeye çalışır. Bu, çok satırlı komutların kolayca yeniden düzenlenmesini sağlar. Bu seçenek varsayılan olarak etkindir, ancak yukarıda GEÇMİŞ altında açıklandığı gibi yalnızca komut geçmişi etkinleştirildiğinde etkili olur.

compat31
compat32
compat40
compat41
compat42
compat43
compat44

Bunlar, kabuğun uyumluluk modunun özelliklerini kontrol eder (aşağıdaki SHELL UYUMLULUK MODU'na bakın).

complete_fullquote

Ayarlanırsa, bash tamamlama gerçekleştirirken dosya adları ve dizin adlarındaki tüm kabuk metakarakterlerini tırnak içine alır. Ayarlanmazsa, bash, dolar işareti gibi meta karakterleri, bu meta karakterler tamamlanacak sözcüklerdeki kabuk değişken referanslarında göründüğünde tamamlanmış dosya adlarında alıntılanacak karakter kümesinden kaldırır. Bu, dizinlere genişleyen değişken adlarındaki dolar işaretlerinin alıntılanmayacağı anlamına gelir; ancak, dosya adlarında görünen herhangi bir dolar işareti de alıntılanmayacaktır. Bu, yalnızca bash tamamlanmış dosya adlarını alıntılamak için ters eğik çizgi kullandığında etkindir. Bu değişken varsayılan olarak ayarlanmıştır ve bu, 4.2'den sonraki sürümlerde varsayılan bash davranışıdır.

direxpand

Ayarlanırsa, bash, dosya adı tamamlaması yapılırken dizin adlarını sözcük genişletmenin sonuçlarıyla değiştirir. Bu, okuma satırı düzenleme arabelleğinin içeriğini değiştirir. Ayarlanmazsa, bash kullanıcının yazdıklarını korumaya çalışır.

dirspell

Ayarlanırsa, başlangıçta sağlanan dizin adı yoksa, bash sözcük tamamlama sırasında dizin adlarında yazım düzeltmesi yapmaya çalışır.

dotglob

Ayarlanırsa, bash `.' ile başlayan dosya adlarını içerir. yol adı genişletme sonuçlarında. `.'' ve ``..'' dosya adları, dotglob ayarlanmış olsa bile her zaman açıkça eşleştirilmelidir.

execfail

Ayarlanırsa, exec yerleşik komutuna bağımsız değişken olarak belirtilen dosyayı yürütemezse, etkileşimli olmayan bir kabuk çıkmayacaktır. exec başarısız olursa etkileşimli bir kabuktan çıkılmaz.

expand_aliases

Ayarlanırsa, takma adlar yukarıda ALIASES altında açıklandığı gibi genişletilir. Bu seçenek, etkileşimli kabuklar için varsayılan olarak etkindir.

extdebug

Kabuk çağrısında veya bir kabuk başlangıç dosyasında ayarlanırsa, --debugger seçeneği ile aynı şekilde, hata ayıklayıcı profilini kabuk başlamadan önce yürütecek şekilde düzenleyin. Çağırmadan sonra ayarlanırsa, hata ayıklayıcılar tarafından kullanılması amaçlanan davranış etkin:

1.

Deklarasyon yerleşiğindeki -F seçeneği, kaynak dosya adını ve bağımsız değişken olarak sağlanan her işlev adına karşılık gelen satır numarasını görüntüler.

2.

DEBUG tuzağı tarafından çalıştırılan komut sıfırdan farklı bir değer döndürürse sonraki komut atlanır ve yürütülmez.

3.

DEBUG tuzağı tarafından çalıştırılan komut 2 değerini döndürürse ve kabuk bir alt programda (bir kabuk işlevi veya . veya kaynak yerleşikleri tarafından yürütülen bir kabuk betiği) yürütülüyorsa, Shell bir dönüş çağrısını simüle eder.

4.

BASH_ARGC ve BASH_ARGV, yukarıdaki açıklamalarında açıklandığı şekilde güncellenir.

5.

İşlev izleme etkin: komut değiştirme, kabuk işlevleri ve ( command ) ile çağrılan alt kabuklar, DEBUG ve RETURN tuzaklarını devralır.

6.

Hata izleme etkinleştirildi: komut değiştirme, kabuk işlevleri ve ( command ) ile çağrılan alt kabuklar ERR tuzağını devralır.

extglob

Ayarlanırsa, yukarıda Yol Adı Genişletme altında açıklanan genişletilmiş kalıp eşleştirme özellikleri etkinleştirilir.

extquote

Ayarlanırsa, $'string' ve $"string" alıntılama gerçekleştirilir çift tırnak içine alınmış $ {parameter} genişletmeleri içinde. Bu seçenek varsayılan olarak etkindir.

failglob

Ayarlanırsa, yol adı genişletmesi sırasında dosya adlarıyla eşleşmeyen kalıplar genişletme hatasına neden olur.

force_fignore

Ayarlanırsa, FIGNORE kabuk değişkeni tarafından belirtilen son ekler, yok sayılan sözcükler olası tamamlamalar olsa bile sözcük tamamlama gerçekleştirilirken sözcüklerin yok sayılmasına neden olur. FIGNORE açıklaması için yukarıdaki SHELL DEĞİŞKENLERİ'ne bakın. Bu seçenek varsayılan olarak etkindir.

globasciiranges

Ayarlanırsa, kalıp eşleştirme parantez ifadelerinde (yukarıdaki Kalıp Eşleştirme'ye bakın) kullanılan aralık ifadeleri, karşılaştırmalar yapılırken geleneksel C yerel ayarındaymış gibi davranır. Yani, geçerli yerel ayarın harmanlama sırası dikkate alınmaz, dolayısıyla b, A ve B arasında ve büyük harf ve küçük harfli ASCII karakterleri birlikte harmanlanır.

globstar

Ayarlanırsa, ** bir yol adı genişletme bağlamında kullanılan kalıp tüm dosyalarla ve sıfır veya daha fazla dizin ve alt dizinle eşleşir. Kalıbın ardından bir / geliyorsa, yalnızca dizinler ve alt dizinler eşleşir.

gnu_errfmt

Ayarlanırsa, kabuk hata mesajları standart GNU hata mesajı formatında yazılır.

histappend

Ayarlanırsa geçmiş listesi, kabuk çıktığında dosyanın üzerine yazmak yerine HISTFILE değişkeninin değeriyle adlandırılan dosyaya eklenir.

histreedit

Ayarlanırsa ve readline kullanılıyorsa, kullanıcıya başarısız bir geçmiş değişikliğini yeniden düzenleme fırsatı verilir.

histverify

Ayarlanırsa ve readline kullanılıyorsa, geçmiş değiştirmenin sonuçları hemen kabuk ayrıştırıcısına iletilmez. Bunun yerine, ortaya çıkan satır readline düzenleme arabelleğine yüklenerek daha fazla değişiklik yapılmasına izin verilir.

hostcomplete

Ayarlanırsa ve readline kullanılıyorsa, bash, @ içeren bir sözcük tamamlanırken ana bilgisayar adını tamamlamayı dener (yukarıdaki READLINE altındaki Tamamlama'ya bakın). Bu, varsayılan olarak etkindir.

huponexit

Ayarlanırsa, etkileşimli bir oturum açma kabuğundan çıkıldığında bash tüm işlere SIGHUP gönderir.

inherit_errexit

Ayarlanırsa, komut değiştirme, alt kabuk ortamında ayarını kaldırmak yerine errexit seçeneğinin değerini devralır. Bu seçenek, posix modu etkinleştirildiğinde etkinleştirilir.

interactive_comments

Ayarlanırsa, # ile başlayan bir kelimenin, o kelimenin ve o satırda kalan tüm karakterlerin etkileşimli bir kabukta yok sayılmasına neden olmasına izin verin (yukarıdaki YORUMLAR'a bakın). Bu seçenek varsayılan olarak etkindir.

lastpipe

Ayarlanırsa ve iş denetimi etkin değilse kabuk, geçerli kabuk ortamında arka planda yürütülmeyen bir boru hattının son komutunu çalıştırır.

lithist

Ayarlanırsa ve cmdhist seçeneği etkinleştirilirse, çok satırlı komutlar, mümkün olduğunda noktalı virgül ayırıcılar kullanmak yerine katıştırılmış yeni satırlarla geçmişe kaydedilir.

localvar_inherit

Ayarlanırsa, yerel değişkenler, herhangi bir yeni değer atanmadan önce önceki kapsamda var olan aynı ada sahip bir değişkenin değerini ve niteliklerini devralır. nameref özniteliği miras alınmaz.

localvar_unset

Ayarlanırsa, önceki işlev kapsamlarındaki yerel değişkenlerde unset çağrılması onları işaretler, böylece sonraki aramalar, o işlev dönene kadar onları ayarsız bulur. Bu, geçerli işlev kapsamındaki yerel değişkenlerin ayarını kaldırma davranışıyla aynıdır.

login_shell

Kabuk, bir oturum açma kabuğu olarak başlatılırsa bu seçeneği ayarlar (yukarıdaki INVOCATION'a bakın). Değer değiştirilemez.

mailwarn

Ayarlanırsa ve bash'ın postayı kontrol ettiği bir dosyaya son kontrol edildiğinden beri erişildiyse, ``Posta posta dosyasında okundu'' mesajı görüntülenir.

no_empty_cmd_completion

Ayarlanırsa ve readline kullanılıyorsa, boş bir satırda tamamlama denendiğinde bash olası tamamlamalar için PATH'i aramaya çalışmaz.

nocaseglob

Ayarlanırsa, bash, yol adı genişletmesi gerçekleştirirken dosya adlarını büyük/küçük harfe duyarlı olmayacak şekilde eşleştirir (yukarıdaki Yol Adı Genişletmesi'ne bakın).

nocasematch

Ayarlanırsa, bash, case veya [[ koşullu komutları yürütürken eşleştirme gerçekleştirirken, kalıp değiştirme kelime genişletmeleri gerçekleştirirken veya olası tamamlamaları filtrelerken kalıpları büyük/küçük harfe duyarlı olmayacak şekilde eşleştirir programlanabilir tamamlamanın bir parçası olarak.

nullglob

Ayarlanırsa, bash hiçbir dosyayla eşleşmeyen kalıpların (yukarıdaki Yol Adı Genişletmesi'ne bakın) kendileri yerine boş bir dizeye genişlemesine izin verir.

progcomp

Ayarlanırsa, programlanabilir tamamlama araçları (yukarıdaki Programlanabilir Tamamlama bölümüne bakın) etkinleştirilir. Bu seçenek, varsayılan olarak etkindir.

progcomp_alias

Ayarlanırsa ve programlanabilir tamamlama etkinleştirilirse, bash herhangi bir tamamlamaya sahip olmayan bir komut adını olası takma ad olarak ele alır ve takma adı genişletmeye çalışır. Bir takma adı varsa, bash, genişletilmiş takma addan kaynaklanan komut kelimesini kullanarak programlanabilir tamamlamayı dener.

promptvars

Ayarlanırsa bilgi istemi dizeleri, yukarıdaki PROMPTING bölümünde açıklandığı gibi genişletildikten sonra parametre genişletme, komut değiştirme, aritmetik genişletme ve alıntı kaldırma işlemlerine tabi tutulur. Bu seçenek varsayılan olarak etkindir.

restricted_shell

Kabuk, kısıtlı modda başlatılırsa bu seçeneği ayarlar (aşağıdaki KISITLI KABUK'a bakın). Değer değiştirilemez. Bu, başlangıç dosyaları yürütüldüğünde sıfırlanmaz ve başlangıç dosyalarının bir kabuğun kısıtlanıp kısıtlanmadığını keşfetmesine izin verir.

shift_verbose

Ayarlanırsa, shift yerleşiği, kaydırma sayısı konumsal parametre sayısını aştığında bir hata mesajı yazdırır.

sourcepath

Ayarlanırsa, source (.) yerleşiği, bağımsız değişken olarak sağlanan dosyayı içeren dizini bulmak için PATH değerini kullanır. Bu seçenek varsayılan olarak etkindir.

xpg_echo

Ayarlanırsa, varsayılan olarak echo yerleşiği ters eğik çizgi-kaçış dizilerini genişletir.

suspend [-f]

Bir SIGCONT sinyali alana kadar bu kabuğun yürütülmesini askıya alın. Bir oturum açma kabuğu askıya alınamaz; -f seçeneği bunu geçersiz kılmak ve askıya almayı zorlamak için kullanılabilir. Kabuk bir oturum açma kabuğu olmadıkça ve -f sağlanmadıkça veya iş kontrolü etkinleştirilmedikçe dönüş durumu 0'dır.

test expr
[ expr ]

ifade koşullu ifadesinin değerlendirilmesine bağlı olarak 0 (doğru) veya 1 (yanlış) durumu döndürür. Her işleç ve işlenen ayrı bir bağımsız değişken olmalıdır.

KOŞULLU İFADELER. test hiçbir seçeneği kabul etmez ve bir -- seçeneklerin sonunu belirten bir bağımsız değişkeni kabul etmez ve yok saymaz.

İfadeler, azalan öncelik sırasına göre listelenen aşağıdaki işleçler kullanılarak birleştirilebilir. Değerlendirme, argüman sayısına bağlıdır; aşağıya bakınız. Operatör önceliği, beş veya daha fazla bağımsız değişken olduğunda kullanılır.

! expr

ifade yanlışsa doğrudur.

( expr )

ifade değerini döndürür. Bu, işleçlerin normal önceliğini geçersiz kılmak için kullanılabilir.

expr1 -a expr2

Hem ifade1 hem de ifade2 doğruysa doğrudur.

expr1 -o expr2

ifade1 veya ifade2 doğruysa doğrudur.

Bağımsız değişken sayısına bağlı olarak bir dizi kural kullanarak koşullu ifadeleri test edin ve [ değerlendirin.

0 arguments

İfade yanlıştır.

1 argument

İfade, ancak ve ancak bağımsız değişken boş değilse doğrudur.

2 arguments

İlk bağımsız değişken ! ise, ifade yalnızca ikinci bağımsız değişken boşsa ve doğrudur. İlk bağımsız değişken, yukarıda KOŞULLU İFADELER altında listelenen tekli koşul işleçlerinden biriyse, tekli test doğruysa ifade de doğrudur. İlk bağımsız değişken geçerli bir tekli koşul işleci değilse, ifade yanlıştır.

3 arguments

Aşağıdaki koşullar listelenen sırayla uygulanır. İkinci bağımsız değişken, yukarıda KOŞULLU İFADELER altında listelenen ikili koşul işleçlerinden biriyse, ifadenin sonucu, birinci ve üçüncü bağımsız değişkenleri işlenenler olarak kullanan ikili testin sonucudur. -a ve -o işleçleri, üç bağımsız değişken olduğunda ikili işleçler olarak kabul edilir. İlk bağımsız değişken ! ise, değer, ikinci ve üçüncü bağımsız değişkenleri kullanan iki bağımsız değişkenli testin olumsuzlanmasıdır. İlk bağımsız değişken tam olarak ( ve üçüncü bağımsız değişken tam olarak ise), sonuç, ikinci bağımsız değişkenin tek bağımsız değişkenli testidir. Aksi takdirde, ifade yanlıştır.

4 arguments

İlk bağımsız değişken ! ise sonuç, kalan bağımsız değişkenlerden oluşan üç bağımsız değişkenli ifadenin olumsuzlanmasıdır. Aksi takdirde, ifade yukarıda listelenen kurallar kullanılarak önceliğe göre ayrıştırılır ve değerlendirilir.

5 or more arguments

İfade, yukarıda listelenen kurallar kullanılarak önceliğe göre ayrıştırılır ve değerlendirilir.

test veya [ ile kullanıldığında, < ve > operatörleri ASCII sıralamasını kullanarak sözlüksel olarak sıralar.

times

Kabuk ve kabuktan yürütülen işlemler için birikmiş kullanıcı ve sistem sürelerini yazdırın. Dönüş durumu 0'dır.

trap [-lp] [[arg] sigspec ...]

arg komutu, kabuk sigspec sinyal(ler)ini aldığında okunacak ve yürütülecektir. arg yoksa (ve tek bir sigspec varsa) veya - varsa, belirtilen her sinyal kendi değerine sıfırlanır orijinal eğilim (kabuğa girişte sahip olduğu değer). arg boş dize ise, her sigspec tarafından belirtilen sinyal kabuk ve onun çağırdığı komutlar tarafından yoksayılır. arg mevcut değilse ve -p sağlanmışsa, her bir sigspec ile ilişkili tuzak komutları görüntülenir. Hiçbir bağımsız değişken sağlanmazsa veya yalnızca -p verilirse, trap her sinyalle ilişkili komutların listesini yazdırır. -l seçeneği, kabuğun sinyal adlarının ve bunlara karşılık gelen sayıların bir listesini yazdırmasına neden olur. Her sigspec, <signal.h> içinde tanımlanan bir sinyal adı veya bir sinyal numarasıdır. Sinyal adları büyük/küçük harf duyarlı değildir ve SIG öneki isteğe bağlıdır.

Bir sigspec, EXIT (0) ise, kabuktan çıkışta arg komutu yürütülür. Bir sigspec DEBUG ise, arg komutu her basit komut, for komutu, case komutu, select komutu, her aritmetik for komutu ve bir kabuk işlevindeki ilk komutlardan önce yürütülür (bkz. yukarıda güçlü>SHELL GRAMMAR). DEBUG tuzağı üzerindeki etkisinin ayrıntıları için shopt yerleşiğindeki extdebug seçeneğinin açıklamasına bakın. Bir sigspec RETURN ise, arg komutu ile her bir kabuk işlevi veya komut dosyası yürütüldüğünde yürütülür. veya kaynak yerleşikler çalışmayı bitirir.

Bir sigspec, ERR ise, arg komutu, bir ardışık düzen (tek bir basit komuttan oluşabilir), bir liste veya bir bileşik komut sıfır olmayan bir çıkış durumu döndürdüğünde, aşağıdaki koşullara tabi olarak yürütülür. ERR tuzağı, başarısız olan komut, while veya until anahtar kelimesinden hemen sonra gelen komut listesinin bir parçasıysa, bir if ifadesindeki testin bir parçasıysa, && veya || listesinde yürütülen bir komutun parçasıysa, son && veya || komutundan sonraki komut dışında, ardışık düzende sonuncusu dışında herhangi bir komut varsa veya komutun dönüş değeri içindeyse ERR tuzağı yürütülmez. ! kullanılarak çevrildi. Bunlar, errexit (-e) seçeneğinin uyduğu koşullarla aynıdır.

Kabuğa girişte göz ardı edilen sinyaller yakalanamaz veya sıfırlanamaz. Yok sayılmayan kapana kısılmış sinyaller, bir alt kabuk veya alt kabuk ortamında oluşturulduğunda orijinal değerlerine sıfırlanır. Herhangi bir sigspec geçersizse dönüş durumu yanlıştır; aksi takdirde tuzak değeri true değerini döndürür.

type [-aftpP] name [name ...]

Hiçbir seçenek olmadan, her adın bir komut adı olarak kullanıldığında nasıl yorumlanacağını belirtin. -t seçeneği kullanılırsa, type, alias, keyword, işlev, yerleşik veya dosya adı bir takma ad, kabuk ayrılmış sözcük, işlev, yerleşik veya disk dosyasıysa, sırasıyla. name bulunamazsa hiçbir şey yazdırılmaz ve false çıkış durumu döndürülür. -p seçeneği kullanılırsa, type, komut adı olarak name belirtilirse yürütülecek disk dosyasının adını döndürür. veya ``type -t name'' dosya döndürmezse hiçbir şey. -P seçeneği, ``type -t name'' olsa bile her name için PATH aramasını zorunlu kılar. dosya döndürmez. Bir komut hashing uygulanmışsa, -p ve -P hashing değerini yazdırır, bu mutlaka PATH içinde ilk görünen dosya olması gerekmez. -a seçeneği kullanılırsa, type, name adlı bir yürütülebilir dosya içeren tüm yerleri yazdırır. Bu, takma adları ve işlevleri içerir, ancak ve ancak -p seçeneği de kullanılmazsa. -a kullanılırken karma komutlar tablosuna başvurulmaz. -f seçeneği, command yerleşiğinde olduğu gibi, kabuk işlevi aramasını bastırır. type, tüm bağımsız değişkenler bulunursa true, varsa false döndürür. bulunmaz.

ulimit [-HS] -a
ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [limit]]

Kabuğun kullanabileceği kaynaklar ve kabuk tarafından başlatılan işlemler üzerinde, bu tür bir denetime izin veren sistemler üzerinde denetim sağlar. -H ve -S seçenekleri, verilen kaynak için sabit veya esnek sınırın ayarlandığını belirtir. Sabit bir limit, ayarlandıktan sonra root olmayan bir kullanıcı tarafından artırılamaz; esnek limit, sert limit değerine kadar arttırılabilir. -H veya -S belirtilmezse, hem yumuşak hem de katı sınırlar ayarlanır. limit değeri, kaynak için belirtilen birimdeki bir sayı veya sırasıyla mevcut sabit limit, mevcut esnek limit ve limitsiz anlamına gelen hard, soft veya unlimited özel değerlerinden biri olabilir. limit atlanırsa, -H seçeneği verilmedikçe kaynağın esnek sınırının geçerli değeri yazdırılır. Birden fazla kaynak belirtildiğinde, değerden önce limit adı ve uygunsa birim yazdırılır. Diğer seçenekler şu şekilde yorumlanır:

-a

Mevcut tüm limitler raporlanır; hiçbir sınır belirlenmedi

-b

Maksimum soket tampon boyutu

-c

Oluşturulan çekirdek dosyaların maksimum boyutu

-d

Bir işlemin veri segmentinin maksimum boyutu

-e

Maksimum zamanlama önceliği ("güzel")

-f

Kabuk ve çocukları tarafından yazılan maksimum dosya boyutu

-i

Maksimum bekleyen sinyal sayısı

-k

Tahsis edilebilecek maksimum kqueu sayısı

-l

Belleğe kilitlenebilecek maksimum boyut

-m

Maksimum yerleşik set boyutu (birçok sistem bu limite uymaz)

-n

Maksimum açık dosya tanımlayıcı sayısı (çoğu sistem bu değerin ayarlanmasına izin vermez)

-p

512 baytlık bloklardaki boru boyutu (bu ayarlanmamış olabilir)

-q

POSIX ileti kuyruklarındaki maksimum bayt sayısı

-r

Maksimum gerçek zamanlı zamanlama önceliği

-s

Maksimum yığın boyutu

-t

Saniye cinsinden maksimum işlemci süresi miktarı

-u

Tek bir kullanıcının kullanabileceği maksimum işlem sayısı

-v

Kabuğun ve bazı sistemlerde alt öğelerinin kullanabileceği maksimum sanal bellek miktarı

-x

Maksimum dosya kilidi sayısı

-P

Maksimum sözde terminal sayısı

-R

Gerçek zamanlı bir işlemin engellemeden önce çalışabileceği maksimum süre, mikrosaniye cinsinden

-T

Maksimum iş parçacığı sayısı

limit verilirse ve -a seçeneği kullanılmazsa, limit belirtilen kaynağın yeni değeridir. Hiçbir seçenek verilmezse -f olduğu varsayılır. Saniye cinsinden olan -t dışında değerler 1024 baytlık artışlarla verilmiştir; -R, mikrosaniye cinsindendir; 512 baytlık blok birimlerinde olan -p; ölçeklenmemiş değerler olan -P, -T, -b, -k, -n ve -u; ve posix modundayken, 512 baytlık artışlarla -c ve -f. Geçersiz bir seçenek veya bağımsız değişken sağlanmadıkça veya yeni bir sınır belirlenirken bir hata oluşmadıkça dönüş durumu 0'dır.

umask [-p] [-S] [mode]

Kullanıcı dosyası oluşturma maskesi modu olarak ayarlandı. mode bir rakamla başlıyorsa, sekizli bir sayı olarak yorumlanır; aksi halde chmod(1) tarafından kabul edilene benzer bir sembolik kip maskesi olarak yorumlanır. mode atlanırsa, maskenin geçerli değeri yazdırılır. -S seçeneği, maskenin sembolik biçimde yazdırılmasına neden olur; varsayılan çıktı sekizlik bir sayıdır. -p seçeneği sağlanırsa ve mode atlanırsa, çıktı, girdi olarak yeniden kullanılabilecek bir biçimdedir. Mod başarıyla değiştirildiyse veya hiçbir mode bağımsız değişkeni sağlanmadıysa dönüş durumu 0'dır, aksi halde false'tur.

unalias [-a] [name ...]

Tanımlanan diğer adlar listesinden her bir adı kaldırın. -a sağlanırsa, tüm takma ad tanımları kaldırılır. Sağlanan bir ad tanımlanmış bir takma ad olmadığı sürece dönüş değeri doğrudur.

unset [-fv] [-n] [name ...]

Her ad için karşılık gelen değişkeni veya işlevi kaldırın. -v seçeneği verilirse, her name bir kabuk değişkenine atıfta bulunur ve bu değişken kaldırılır. Salt okunur değişkenler ayarlanmamış olabilir. -f belirtilirse, her ad bir kabuk işlevine başvurur ve işlev tanımı kaldırılır. -n seçeneği sağlanırsa ve name, nameref özelliğine sahip bir değişkense, name başvuruda bulunduğu değişken yerine ayarlanmaz. -f seçeneği sağlanırsa -n'nin hiçbir etkisi olmaz.

Hiçbir seçenek sağlanmazsa, her ad bir değişkene başvurur; bu ada sahip bir değişken yoksa, varsa bu ada sahip bir işlev ayarlanmamıştır. Ayarlanmayan her değişken veya işlev, sonraki komutlara iletilen ortamdan kaldırılır. BASH_ALIASES, BASH_ARGV0, BASH_CMDS, BASH_COMMAND, BASH_SUBSHELL, >BASHPID, COMP_WORDBREAKS, DIRSTACK, EPOCHREALTIME, EPOCHSECONDS, FUNCNAME >, GROUPS, HISTCMD, LINENO, RANDOM, SECONDS veya >SRANDOM ayarlanmaz, daha sonra sıfırlansalar bile özel özelliklerini kaybederler.

Bir ad salt okunur olmadığı sürece çıkış durumu doğrudur.

wait [-fn] [-p varname] [id ...]

Belirtilen her alt işlemi bekleyin ve sonlandırma durumunu döndürün. Her id, bir işlem kimliği veya bir iş özelliği olabilir; bir iş özelliği verilirse, o işin ardışık düzenindeki tüm işlemler beklenir. id verilmezse, işlem kimliği $! ile aynıysa ve dönüş durumu sıfırsa wait, çalışan tüm arka plan işlerini ve son yürütülen işlem ikamesini bekler. -n seçeneği sağlanırsa, wait, id listesinden tek bir işin veya id sağlanmazsa herhangi bir işin tamamlanmasını bekler ve çıkış durumunu döndürür. Sağlanan bağımsız değişkenlerden hiçbiri kabuğun alt öğesi değilse veya hiçbir bağımsız değişken sağlanmazsa ve kabuğun beklenmeyen çocuğu yoksa, çıkış durumu 127'dir. -p seçeneği sağlanırsa, çıkış durumunun döndürüldüğü işin işlem veya iş tanımlayıcısı, seçenek bağımsız değişkeni tarafından adlandırılan varname değişkenine atanır. Değişken başlangıçta, herhangi bir atamadan önce ayarlanacaktır. Bu, yalnızca -n seçeneği sağlandığında kullanışlıdır. -f seçeneğinin sağlanması, iş denetimi etkinleştirildiğinde, durum değiştiğinde geri dönmek yerine, wait to wait to id'in durumunu döndürmeden önce sonlandırılmasını zorlar. id mevcut olmayan bir işlem veya işi belirtirse dönüş durumu 127'dir. Aksi takdirde dönüş durumu, beklenen son işlem veya işin çıkış durumudur.

KABUK UYUMLULUK MODU

Bash-4.0, shopt yerleşik compat31, compat32, compat40 için bir dizi seçenek olarak belirtilen bir "kabuk uyumluluk düzeyi" kavramını tanıttı. , compat41 vb.). Yalnızca bir geçerli uyumluluk düzeyi vardır; her seçenek birbirini dışlar. Uyumluluk düzeyi, kullanıcıların mevcut özellikleri ve davranışı kullanmak için betikleri taşırken daha yeni sürümlerle uyumsuz olan önceki sürümlerden davranış seçmesine izin vermek için tasarlanmıştır. Geçici bir çözüm olması amaçlanmıştır.

Bu bölüm, belirli bir sürüm için standart olan davranıştan bahsetmez (örneğin, compat32'yi ayarlamak, normal ifade eşleştirme operatörünün rhs'sini alıntılamanın, bash-3.2 ve sonraki sürümlerde varsayılan davranış olan kelimedeki özel normal ifade karakterlerini tırnak içine alması anlamına gelir).

Bir kullanıcı, örneğin compat32'yi etkinleştirirse, mevcut uyumluluk düzeyi dahil olmak üzere diğer uyumluluk düzeylerinin davranışını etkileyebilir. Buradaki fikir, her uyumluluk düzeyinin bash'ın o sürümünde değişen davranışı kontrol etmesidir, ancak bu davranış önceki sürümlerde mevcut olabilir. Örneğin, [[ komutuyla yerel ayar tabanlı karşılaştırmaları kullanma değişikliği bash-4.1'de geldi ve önceki sürümler ASCII tabanlı karşılaştırmalar kullandı, bu nedenle compat32'yi etkinleştirmek ASCII tabanlı karşılaştırmaları etkinleştirir ayrıca. Bu ayrıntı düzeyi tüm kullanımlar için yeterli olmayabilir ve sonuç olarak kullanıcılar uyumluluk düzeylerini dikkatli bir şekilde kullanmalıdır. Geçerli davranışı öğrenmek için belirli bir özelliğin belgelerini okuyun.

Bash-4.3 yeni bir kabuk değişkeni tanıttı:

BASH_COMPAT. Bu değişkene atanan değer (4.2 gibi bir ondalık sürüm numarası veya 42 gibi compatNN seçeneğine karşılık gelen bir tamsayı) uyumluluk seviyesi.

Bash-4.4'ten itibaren Bash, eski uyumluluk düzeylerini kullanımdan kaldırmaya başladı. Sonunda, seçenekler BASH_COMPAT lehine kaldırılacaktır.

Bash-5.0, önceki sürüm için ayrı bir alışveriş seçeneğinin olacağı son sürümdür. Kullanıcılar bash-5.0 ve sonraki sürümlerde BASH_COMPAT kullanmalıdır.

Aşağıdaki tabloda, her bir uyumluluk düzeyi ayarı tarafından kontrol edilen davranış değişiklikleri açıklanmaktadır. compatNN etiketi, uyumluluk düzeyini NN olarak ayarlamak için kısayol olarak kullanılır. aşağıdaki mekanizmalar. bash-5.0'dan önceki sürümler için uyumluluk düzeyi, karşılık gelen compatNN shopt seçeneği kullanılarak ayarlanabilir. bash-4.3 ve sonraki sürümler için BASH_COMPAT değişkeni tercih edilir ve bash-5.1 ve sonraki sürümler için gereklidir.

compat31
  • [[ komutun normal ifade eşleştirme operatörünün (=~) rhs'sini alıntılamanın özel bir etkisi yoktur

compat32
  • "a ; b ; c" gibi bir komut listesini kesmek, listedeki bir sonraki komutun yürütülmesine neden olur (bash-4.0 ve sonraki sürümlerde, kabuk kesmeyi almış gibi davranır, bu nedenle bir listedeki bir komutun kesilmesi iptal olur. tüm listenin yürütülmesi)

compat40
  • [[ komutunun < ve > işleçleri, dizeleri karşılaştırırken geçerli yerel ayarı dikkate almaz; ASCII sıralamasını kullanırlar. bash-4.1'den önceki Bash sürümleri, ASCII harmanlamasını ve strcmp(3)'ü kullanır; bash-4.1 ve üstü, geçerli yerel ayarın harmanlama sırasını ve strcoll(3)'ü kullanır.

compat41
  • posix kipinde, zamanı seçenekler takip edebilir ve yine de ayrılmış bir sözcük olarak tanınabilir (bu, POSIX yorumu 267'dir)

  • posix modunda, ayrıştırıcı, çift tırnaklı bir metnin kelime bölümünde çift sayıda tekli tırnak bulunmasını gerektirir Strong> parametresini genişletir ve bunları özel olarak ele alır, böylece tek tırnak içindeki karakterler alıntı olarak kabul edilir (bu, POSIX yorumu 221'dir)

compat42
  • bash-4.2'den sonraki sürümlerde olduğu gibi, çift tırnaklı kalıp değiştirmedeki değiştirme dizesi alıntı kaldırma işlemine tabi tutulmaz.

  • posix modunda, tek tırnaklar kelime çift tırnaklı parametre genişletmesinin bölümünü genişletirken özel kabul edilir ve bir kapatma parantezini veya başka bir özel karakteri alıntılamak için kullanılabilir (bu, POSIX yorumlama 221'in bir parçasıdır); sonraki sürümlerde, tek tırnak çift tırnaklı sözcük genişletmelerinde özel değildir

compat43
  • Bildirmek için bir bağımsız değişken olarak alıntılanmış bir bileşik atama kullanılmaya çalışılırsa, kabuk bir uyarı iletisi yazdırmaz (declare -a foo='(1 2)'). Sonraki sürümler, bu kullanımın kullanımdan kaldırıldığı konusunda uyarıyor

  • kelime genişletme hataları, posix modunda bile mevcut komutun başarısız olmasına neden olan ölümcül olmayan hatalar olarak kabul edilir (varsayılan davranış, onları kabuğun çıkmasına neden olan ölümcül hatalar yapmaktır)

  • bir kabuk işlevi yürütülürken, döngü durumu (while/until/etc.) sıfırlanmaz, bu nedenle bu işlevdeki break veya continue, çağıran bağlamdaki döngüleri keser veya devam ettirir. Bash-4.4 ve sonrası, bunu önlemek için döngü durumunu sıfırlar

compat44
  • kabuk, BASH_ARGV ve BASH_ARGC tarafından kullanılan değerleri ayarlar, böylece genişletilmiş hata ayıklama modu etkin olmasa bile kabuğun konumsal parametrelerine genişleyebilirler

  • bir alt kabuk, döngüleri üst bağlamından devralır, dolayısıyla break veya continue, alt kabuğun çıkmasına neden olur. Bash-5.0 ve sonraki sürümler, çıkışı önlemek için döngü durumunu sıfırlar

  • öznitelikleri ayarlayan export and readonly gibi yerleşiklerden önceki değişken atamaları, kabuk posix modunda olmasa bile çağıran ortamda aynı ada sahip değişkenleri etkilemeye devam eder

compat50
  • Bash-5.1, biraz daha fazla rastgelelik sağlamak için $RANDOM'un oluşturulma şeklini değiştirdi. Kabuk uyumluluk düzeyi 50 veya altına ayarlanırsa, bash-5.0 ve önceki sürümlerdeki yönteme geri döner, bu nedenle < RANDOM'a bir değer atayarak rasgele sayı oluşturucuyu tohumlamak, bash-5.0/p> ile aynı diziyi üretecektir.

  • Komut hash tablosu boşsa, bash-5.1'den önceki bash sürümleri, girdi olarak yeniden kullanılabilecek çıktı üretirken bile bu etki için bir bilgi mesajı yazdırdı. Bash-5.1, -l seçeneği sağlandığında bu mesajı bastırır.

KISITLI KABUK

bash, rbash adıyla başlatılırsa veya çağrı sırasında -r seçeneği sağlanırsa, kabuk kısıtlanır. Kısıtlanmış bir kabuk, standart kabuktan daha kontrollü bir ortam oluşturmak için kullanılır. Aşağıdakilere izin verilmemesi veya gerçekleştirilmemesi dışında bash ile aynı şekilde davranır:

  • cd ile dizin değiştirme

  • SHELL, PATH, HISTFILE, ENV veya BASH_ENV değerlerinin ayarlanması veya ayarının kaldırılması

  • / içeren komut adlarını belirtme

  • . yerleşik komutuna bağımsız değişken olarak / içeren bir dosya adı belirtme

  • history yerleşik komutuna bağımsız değişken olarak eğik çizgi içeren bir dosya adı belirtme

  • hash yerleşik komutunun -p seçeneğinin argümanı olarak eğik çizgi içeren bir dosya adı belirtme

  • başlangıçta kabuk ortamından işlev tanımlarını içe aktarma

  • başlangıçta kabuk ortamından SHELLOPTS değerinin ayrıştırılması

  • >, >|, <>, >&, &> ve >> yeniden yönlendirme işleçlerini kullanarak çıktıyı yeniden yönlendirme

  • kabuğu başka bir komutla değiştirmek için yerleşik exec komutunu kullanma

  • yerleşik komutları enable yerleşik komutuna -f ve -d seçenekleriyle ekleme veya silme

  • devre dışı bırakılmış kabuk yerleşiklerini etkinleştirmek için yerleşik etkinleştirme komutunu kullanma

  • command yerleşik komutuna -p seçeneğinin belirtilmesi

  • +r'yi ayarla veya +o'yu kısıtlı ayarla ile kısıtlı modu kapatma.

Bu kısıtlamalar, herhangi bir başlangıç dosyası okunduktan sonra uygulanır.

rbash, komut dosyasını yürütmek için oluşturulan kabuktaki tüm kısıtlamaları kapatır.

AYRICA BAKINIZ

Bash Reference Manual, Brian Fox and Chet Ramey
The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
Portable Operating System Interface (POSIX) Part 2: Shell and Utilities, IEEE --

http://pubs.opengroup.org/onlinepubs/9699919799/

http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
sh(1), ksh(1), csh(1)
emacs(1), vi(1)
readline(3)

DOSYALAR

 /bin/bash 

yürütülebilir bash dosyası

 /etc/profile 

Oturum açma kabukları için yürütülen sistem çapında başlatma dosyası

 ~/.bash_profile 

Oturum açma kabukları için yürütülen kişisel başlatma dosyası

 ~/.bashrc 

Bireysel etkileşimli kabuk başlangıç dosyası

 ~/.bash_logout 

Bir oturum açma kabuğundan çıkıldığında yürütülen bireysel oturum açma kabuğu temizleme dosyası

 ~/.inputrc 

Bireysel readline başlatma dosyası

YAZARLAR

Brian Fox, Özgür Yazılım Vakfı
bfox@gnu.org

Chet Ramey, Case Western Reserve Üniversitesi
chet.ramey@case.edu

HATA RAPORLARI

bash'ta bir hata bulursanız, bunu bildirmelisiniz. Ama önce bunun gerçekten bir hata olduğundan ve bash'ın en son sürümünde göründüğünden emin olmalısınız. En son sürüme her zaman ftp://ftp.gnu.org/pub/gnu/bash/ adresinden ulaşılabilir.

Bir hatanın gerçekten var olduğunu belirledikten sonra, bir hata raporu göndermek için bashbug komutunu kullanın. Bir düzeltmeniz varsa, onu da postalamanız önerilir! Öneriler ve "felsefi" hata raporları bug-bash@gnu.org adresine veya Usenet haber grubu gnu.bash.bug'a gönderilebilir. .

TÜM hata raporları şunları içermelidir:

The version number of bash
The hardware and operating system
The compiler used to compile
A description of the bug behaviour
A short script or `recipe' which exercises the bug

bashbug ilk üç öğeyi bir hata raporu doldurmak için sağladığı şablona otomatik olarak ekler.

Bu kılavuz sayfasıyla ilgili yorumlar ve hata raporları chet.ramey@case.edu adresine yönlendirilmelidir.

HATALAR

Çok büyük ve çok yavaş.

bash ile geleneksel sh sürümleri arasında, çoğunlukla POSIX belirtimi nedeniyle bazı ince farklar vardır.

Takma adlar bazı kullanımlarda kafa karıştırıcıdır.

Kabuk yerleşik komutları ve işlevleri durdurulamaz/yeniden başlatılamaz.

`a biçimindeki bileşik komutlar ve komut dizileri; B ; İşlem askıya alınmaya çalışıldığında c' incelikle işlenmez. Bir işlem durdurulduğunda, kabuk sıradaki bir sonraki komutu hemen yürütür. Bir birim olarak durdurulabilen bir alt kabuğa zorlamak için komut dizisini parantezler arasına yerleştirmek yeterlidir.

Dizi değişkenleri (henüz) dışa aktarılmamış olabilir.

Aynı anda yalnızca bir etkin yardımcı işlem olabilir.

Tüm hakları saklıdır. © LinuxOS.Info • 2023