Ash - Linux Command - Unix Command

NAME

sh - komanda tərcüməçi ( qabıq )

SYNOPSIS

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ target ... ]

TƏSVİRİ

Ş sistem üçün standart komanda tərcüməçisidir. Sh'nin mövcud versiyası kabuk üçün POSIX 1003.2 və 1003.2a spesifikasiyalarına uyğundur. Bu versiya Korn qabığına bəzi hallarda bənzər görünən bir çox funksiyaya malikdir, lakin Korn qabığının klonu deyil (ksh (1) -ə baxın). Yalnız POSIX plus bir neçə Berkeley uzantıları ilə təyin olunan xüsusiyyətlər bu qabığa daxil edilir. POSIX uyğunluğu 4.4 BSD sərbəst buraxılmasını gözləyirik. Bu adamın səhifəsi bir helikopter və yaxud qabığın tam dəqiqləşdirilməsi üçün nəzərdə tutulmur.

Baxış

Kabuk, bir faylın və ya terminalın xəttlərini oxuyan, onları şərh edən və ümumiyyətlə digər əmrləri yerinə yetirən bir əmrdir . Bir istifadəçi sistemə daxil olduqda (hər hansı bir istifadəçi chsh (1) əmri ilə fərqli bir qabıq seçə olsa da) çalışan proqramdır. Kabuk, axın nəzarət konstruksiyaları olan bir dili tətbiq edir, tarix və satır editing imkanları ilə birlikdə, məlumatların saxlanmasına əlavə olaraq müxtəlif xüsusiyyətləri təmin edən bir makro təsisi. İnteraktiv istifadə üçün kömək etmək üçün bir çox xüsusiyyətləri özündə birləşdirir və interpretasiya dilinin həm interaktiv, həm də interaktiv olmayan istifadə üçün (kabuk skriptləri) ümumi olduğu üstünlüyə malikdir. Yəni əmrlər birbaşa qaçış kabuğuna yazıla bilər və ya bir faylya yerləşdirilə bilər və fayl birbaşa kabukla icra edilə bilər.

Dəvət

Əgər args mövcud deyildir və qabığın standart girdisi bir terminalə (və ya - i bayrağı quraşdırılmışdırsa) və - c parametrinə aid deyilsə, qabıq interaktiv qabıq sayılır. Interaktiv qabıq, ümumiyyətlə, hər əmrdən önəm verir və proqramlaşdırma və komanda səhvlərini (aşağıda göstərildiyi kimi) fərqlidir. İlk başlayan zaman, kabuk 0 arqumentini yoxlayır və əgər bir dash ilə başlayırsa - 'qabıq da bir giriş kabuğu hesab olunur. Bir istifadəçi ilk girişdə sistem normal olaraq avtomatik olaraq edilir. Giriş kabuğu, əvvəlcə faylları / etc / profile və .profile varsa əmrləri oxuyur. ENV ətraf mühitə dəyişən ENV bir kabuk daxilində müəyyən edilirsə və ya bir giriş kabuğunun .profilində müəyyən edilirsə, qabaqcadan sonra ENV adlı fayldan əmrləri oxuyur. Buna görə, bir istifadəçi yalnız, .profil faylında giriş vaxtı və ENV faylının içərisində hər bir qabıq üçün icra edilən əmrlər. ENV dəyişənini müəyyən bir faylya qurmaq üçün, ev dizinizin .profile-də aşağıdakı satırı yerləşdirin

ENV = $ HOME / .shinit; ixrac ENV

'.shinit' 'istədiyiniz hər hansı bir fayl adı əvəz. ENV faylı shell skriptləri və qeyri-interaktiv cəbhələr də daxil olmaqla shell hər çağırış üçün oxunduğundan, aşağıdakı paradiqma ENV faylında əmrləri interaktiv çağırışlara məhdudlaşdırmaq üçün faydalıdır. Aşağıdakı `` halda '' və '' esac '' əmrləri əmr edin (bu əmrlər daha sonra təsvir olunur):

halda $ - in * i *)

# yalnız interaktiv istifadə üçün əmrlər

...

esac

Seçimlərdən başqa command line argumentləri müəyyən edildikdə, shell ilk dəlilləri əmrləri oxumaq üçün bir adın adı (bir shell script) və qalan arqumentlər qabığın mövqeləri parametrləri ($ 1 , $ 2, və s.). Əks halda, kabuk, standart girişdən əmrləri oxuyur.

Arqument siyahısı prosesi

Tək məktub variantlarının hamısı - o variantına bir arqument kimi istifadə edilə bilən bir ad var. Set- o adı aşağıda təsvir edilən tək məktub seçimi ilə təmin edilir. `` `` '' Adlı bir xətt təyin edərkən opsiyanı işarələyir, plus `` + '' istifadə edərək seçimini ləğv edir. Aşağıdakı variantlar komanda xəttindən və ya (1) quraşdırılmış (daha sonra təsvir olunmuş) təyin edilə bilər.

- allexport

Verilən bütün dəyişənləri ixrac edin. (4.4a üçün AÇIQLANIB)

-c

Komanda xəttindən əmrləri oxuyun. Standart girişdən heç bir əmr oxunmur.

-C noclobber

Mövcud olan faylları'`> '' ilə əvəz etmə (4.4alfa üçün UNIMPLEMENTED)

- errexit

Etkileşimli deyilsə, hər hansı bir sınaqdan keçməmiş komanda uğursuz olarsa dərhal çıxış edin. Bir komandanın exit statusu, əmr bir və ya qədər və ya əmr bir `` və & '' və ya`` | | 'operatorunun sol işarəsidir.

-f noglob

Pathname genişləndirilməsi aradan.

-n noexec

Etkileşmemişse, əmrləri oxuyun, amma bunları icra etməyin. Bu, kabuk skriptlərinin sintaksisini yoxlamaq üçün faydalıdır.

-u nounset

Ayarlanmayan bir dəyişənin genişləndirilməsinə cəhd edərkən və qəfəs interaktiv deyilsə, dərhal çıxın. (4.4a üçün AÇIQLANIB)

-v verbose

Kabuk, oxunduğu kimi standart xətaya girişini yazır. Debugging üçün faydalı.

-x xtrace

Hər komandanın standart səhvlərə yazılması (yerinə əvvəl "+" əvvəli).

-q sakit profilli

- V və ya - x variantları müəyyən edildikdə, başlanğıc fayllarını oxuduğunuzda, bunları / etc / profile .profile və ENV ətraf mühiti dəyişən tərəfindən göstərilən fayl oxumaqda tətbiq etməyin.

- Məni inkar etmirəm

İnteraktiv olduqda EOF-nun girişindən əl çəkməyin.

interaktivdir

Qabığın interaktiv davranması üçün gücləndirin.

-m monitor

İşə nəzarət etmək (interaktiv olduqda avtomatik olaraq təyin olun).

-s stdin

Standart girişdən əmrləri oxumaq (heç bir fayl arqumenti olmadıqda avtomatik olaraq təyin edilir). Bu variant qabığın artıq işə düşdükdən sonra təyin olunduqda heç bir təsiri yoxdur (yəni set (1) ilə).

-V vi

Daxili vi (1) əmr satırı redaktoru aktivləşdir (işə salındıqda - E əgər).

-E emacs

Daxili emacs (1) command line redaktorunu aktivləşdir (söndürüldükdə - V ).

-b bildir

Arxa fonunda işin tamamlanmasından asinxronlaşdırma bildirişini aktivləşdirin. (4.4a üçün AÇIQLANIB)

Leksik struktur

Kabuk bir fayldan xəttlər baxımından girdiyi oxuyur və boşluqlarda boşluqlara (boşluqlar və nişanlar) buraxır və "operatorlar" adlı kabuğa xüsusi olan simvolların müəyyən ardıcıllığında iki növ operator var: nəzarət operatorları və istiqamətləndirmə operatorları (onların mənası daha sonra müzakirə olunur). Aşağıda operatorların siyahısı göstərilir:

"Nəzarət operatorları:"

& && (); ;; | ||

"Yenidən istiqamətləndirici operator:"

<>> | << >> <&> & << - <>

Qiymətləndirmə

Quoting, operatorlar, boşluq və ya açar sözlər kimi kabuğa müəyyən simvol və ya sözlərin xüsusi mənasını çıxarmaq üçün istifadə olunur. Üç istinad növü var: eşleşen tek tırnak, eşleşen ikili tırnak və ters eğik çizgi.

Backslash

Aq newline istisna olmaqla, backslash aşağıdakı xarakterli tam mənasını qoruyur. Aq newline əvvəldən tərs düşən bir xətt davamı kimi qəbul edilir.

Tək təkliflər

Tək quotes olan simvolların qeydə alınması bütün simvolların sözün mənasını saxlayır (tək quotes istisna olmaqla, tək quotes qoymaq qeyri-mümkündür).

Əlaqələr

İki sətir içərisində simvolların qorunması, dollarign ($) backquote (`) və terslik (\) xaricindəki bütün simvolların literal mənasını saxlayır. İki tirajın içərisində terslik tarixi qəribədir və yalnız aşağıdakı simvolları göstərməyə xidmət edir:

$ `\

Əks təqdirdə əvəzsiz olaraq qalır.

Qorunan sözlər

Qorunan sözlər qabığa xüsusi məna olan sözlərdir və bir xəttin başında və bir nəzarət operatorundan sonra tanınır. Aşağıdakı sözlər qorunur:

!! Ta elif Ta Ta Ta Ta halda

Ta Ta üçün Ta Ta Ta Ta Ta

TA Ta Ta Tae qədər Ta Ta Ta

Onların mənası daha sonra müzakirə edilir.

Aliaslar

Bir alias, alias (1) builtin komutunu istifadə edərək, bir ad və uyğun dəyərdir. Qorunan bir söz meydana gəldiyi zaman (yuxarıda bax) və qorunan sözlər üçün yoxlanıldıqdan sonra, kabuk, bir takma adla uyğun olub olmadığını görmək üçün sözü yoxlayır. Əgər varsa, giriş axınında onun dəyəri ilə əvəz edir. Məsələn, 'lf-F' dəyəri ilə `lf 'adlı bir alias varsa, giriş:

Foobar

olacaq

ls -F foobar

Aliaslar, sadəlövh istifadəçilərə əmrlər üçün funksiyalar yaratmaq öyrənmədən əmrlər üçün şəffaflıq yaratmaq üçün rahat bir yol təqdim edir. Onlar da lexically qaranlıq kod yaratmaq üçün istifadə edilə bilər. Bu istifadədən çəkinməyin.

Komanda

Kabuk, sözügedən sözləri bir dilə uyğun olaraq şərh edir, onun dəqiqləşdirilməsi bu man səhifəsinin əhatəsindən kənarda ( POSIX 1003.2 sənədində BNF-ə baxın). Əslində, bir xətt oxunur və xəttin ilk sözü (və ya bir nəzarət operatorundan sonra) ehtiyatlı bir söz deyilsə, qəfəs sadə əmri tanıyır. Əks halda, kompleks bir komanda və ya başqa bir xüsusi quruluş tanınmış ola bilər.

Sadə əmrlər

Sadə bir əmr tanınsa, qabıq aşağıdakı hərəkətləri yerinə yetirir:

  1. '`Name = value' 'şəklində aparıcı sözlər sökülür və sadə komanda mühitinə verilir. Redirection operatorları və onların arqumentləri (aşağıda göstərildiyi kimi) ləğv edilir və emal üçün saxlanılır.
  2. Qalan sözlər "Expansions" adlı bölmədə təsvir edildiyi kimi genişlənir və ilk qalan söz komanda adı və əmr olaraq qəbul edilir. Qalan sözlər komandanın arqumentləri hesab edilir. Heç bir komanda adı nəticə vermədikdə, 1-ci maddədə tanınan 'name = value' 'dəyişən tapşırıqlar cari kabuğa təsir göstərir.
  3. Redirections növbəti bölmədə göstərildiyi kimi həyata keçirilir.

Redirections

Redirections, bir komutun girişini oxuduğu və ya çıxışını göndərdiyi yerləri dəyişdirmək üçün istifadə olunur. Ümumiyyətlə, redirections faylın mövcud istinadını açır, bağlayır və ya dublikat verir. Yenidən göndərmə üçün istifadə edilən ümumi format:

[n] redir-op faylı

redir-op əvvəllər qeyd olunan redirectction operatorlarından biridir. Aşağıdakı mümkün redirections bir siyahısı. Bq n '3' (bir fayl descriptoruna istinad edən 'Bq 3' deyil) kimi isteğe bağlı bir rəqəmdir.

[n]> fayl

Standart çıxış (və ya n) faylına yönləndirin.

[n]> | fayl

Eyni, lakin - C seçimini ləğv edin.

[n] >> fayl

Fayl üçün standart çıxış (və ya n) əlavə edin.

[n]

Fayldan standart girişi (və ya n) yönləndirin.

[n1] <& n2

Fayl təsvirçisi n2-dən standart girişin (və ya n1) dublikatı.

[n] <& -

Standart girişi bağla (və ya n).

[n1]> & n2

N2-dən standart çıxışı (və ya n1) dublikat.

[n]> & -

Standart çıxışını (və ya n) bağlayın.

[n] <> fayl

Standart girişdə (və ya n) oxumaq və yazmaq üçün fayl açın.

Aşağıdakı redirection tez-tez "burada-sənəd" adlanır

[n] << kəsici

burada-doc-mətn ...

bölücü

Ardıcıl satırdakı bütün mətn məhdudlaşdırıcıya qədər saxlanılır və standart girişdə və ya göstərildiyi təqdirdə fayl təsvirçisinə verilir. Başlanğıc xəttdə göstərildiyi kimi məhdudlaşdırıcı varsa, buradakı doc-mətn tam mənası ilə müalicə olunur, əks halda mətn parametr genişləndirilməsinə, komanda əvəzinə və aritmetik genişlənməyə ("Expansions" bölməsində təsvir olunduğu kimi) məruz qalır. 'Əgər operator'`` << <<' yerinə qoyulursa, burada buradakı doc-mətnin aparıcı sekmeleri ləğv edilir.

Axtarış və icra

Üç əmr növü vardır: shell funksiyaları, yerleşik əmrlər və normal proqramlar - və bu əmr üçün (adı ilə) əmr edilir. Hər biri ayrı bir şəkildə icra edilir.

Bir qabıq funksiyası yerinə yetirildikdə, shell funksional parametrlərinin hamısı ($ 0-dan başqa, dəyişməz olaraq qalır) shell funksiyasının arqumentlərinə təyin olunur. Komanda ətrafında açıq şəkildə yerləşdirilən dəyişənlər (funksiyaların adından əvvəl onlara tapşırıqlar qoymaqla) funksiyaya lokal olaraq verilir və verilən dəyərlərə təyin olunur. Sonra funksiya tərifində verilən əmr yerinə yetirilir. Komanda başa çatdıqda mövqelər parametrləri orijinal dəyərlərinə bərpa olunur. Bütün bunlar cari kabuğun içindədir.

Shell yerleşimleri yeni bir prosesi yumurtlamadan qabığa daxili olaraq icra edilir.

Əks təqdirdə, komanda adı funksiyaya və ya yerə uyğun gəlmirsə, komanda fayl sistemində normal bir proqram kimi axtarış edilir (növbəti bölmədə təsvir olunduğu kimi). Normal bir proqram yerinə yetirildikdə, proqram, proqramı arqumentləri və mühiti keçərək, qabığını işə salır. Proqram normal bir yürütülebilir fayl deyilsə (məsələn, ASCII nümayəndəliyi "#!" Olduğu "sehrli sayı" ilə başlamaması halında, execve (2) Er ENOEXEC'i qaytarırsa) kabuk proqramı subshell. Uşaq qabığı bu vəziyyətdə özünü yenidən bərpa edər, beləliklə təsiri, yeni bir qövsün ad hoc kabuk skriptini idarə etmək üçün çağırıldığı kimi olacaq, istisna deyil ki, ana qabığındakı hashed əmrləri yerini xatırlayacaqsınız uşaq.

Qeyd edək ki, bu sənədin əvvəlki versiyaları və qaynaq kodunun özü yanıltıcı şəkildə və səmərəli bir şəkildə "kabuk proseduru" kimi sehrli bir sayı olmayan bir kabuk skriptinə istinad edir.

Yol Axtarış

Bir əmri yerləşdirərkən, qabığın ilk adı ilə bir qövs funksiyası olub olmadığını görür. Sonra o adı ilə inşa edilmiş bir əmr axtarır. Yerli bir əmr tapılmadıqda, iki şeydən biri baş verir:

  1. Çatma olan komanda adları sadəcə axtarış etmədən yerinə yetirilir.
  2. Kabuğu hər bir əmri PATH -də əmr üçün növbədə axtarış edir. PATH dəyişəninin dəyəri birləşmələrlə ayrılmış bir sıra giriş olmalıdır. Hər bir giriş bir kataloq adından ibarətdir. Mövcud kataloq boş bir kataloq adı ilə ya da açıq bir müddətlə açıq şəkildə göstərilə bilər.

Command Exit Status

Hər komanda digər kabuk əmrlərinin davranışına təsir göstərə bilən bir çıxış statusuna malikdir. Paradiqma əmr normal və ya müvəffəqiyyət üçün sıfır ilə çıxır və səhv, səhv və ya yanlış göstərilmək üçün sıfır deyil. Hər komanda üçün adam səhifəsi müxtəlif çıxış kodlarını və onların nə demək olduğunu göstərməlidir. Bundan əlavə, inşa edilmiş əmrlər çıxış kodlarını qaytarır, məsələn, yerinə yetirilmiş bir mərtəbə funksiyası.

Kompleks Komutlar

Kompleks əmrlər nəzarət operatorları və ya qorunan sözlər ilə sadə əmrlərin birləşməsidir, birlikdə böyük bir mürəkkəb əmr yaratır. Daha ümumiyyətlə, bir əmr aşağıdakılardan biridir:

  • sadə komanda
  • boru kəməri
  • siyahısı və ya mürəkkəb siyahısı
  • mürəkkəb komanda
  • funksiya tərifi

Başqa sözlə göstərilməmiş halda, komandanın çıxış vəziyyəti komanda tərəfindən yerinə yetirilən son sadə əmrdir.

Boru kəmərləri

Boru kəməri nəzarət operator tərəfindən ayrılmış bir və ya bir neçə əmrin bir ardıcıllığıdır. Son əmrdən başqa bütün standart çıxış növbəti komanda standart girişinə bağlıdır. Son komandanın standart çıxışı adi hallarda qövsdən miras alınır.

Boru kəmərinin forması:

[!] command1 [| komanda2 ...]

Command1'in standart çıxış əmri2 standart girişinə bağlıdır. Komandanın bir hissəsi olan standartlaşdırma operatorları tərəfindən göstərilən hər hansı bir redirection əvvəl standart giriş, standart çıxış və ya hər ikisi bir boru kəməri tərəfindən təyin edilir.

Boru kəməri arxa planda yoxdursa (daha sonra müzakirə edilirsə), bütün əmrlərin tamamlanması üçün qabıq gözləyir.

Zəruri söz varsa! boru kəmərindən əvvəl deyil, çıxış vəziyyəti boru kəmərində göstərilən sonuncu əmrin exit statusudur. Əks halda, çıxış vəziyyəti son komandanın çıxış vəziyyətinin məntiqi deyil. Yəni, son əmr sıfır qaytarırsa, çıxış vəziyyəti 1dir; son əmr sıfırdan böyük olduqda, çıxış statusu sıfırdır.

Standart girişi və ya standart çıxış və ya hər ikisinin boru kəmərinin ötürülməsindən əvvəl yerinə yetirildiyi üçün redirection ilə dəyişdirilə bilər. Misal üçün:

$ command1 2> & 1 | komanda2

komanda2 standart girişinə və əmsalın standart səhvinə komanda2 standart girişinə göndərir.

A; və ya terminator əvvəlki AND-OR-siyahısına (sonrakı təsvir) ardıcıl olaraq icra edilməsinə səbəb olur; a & əvvəlki AND-OR-siyahısının asinxron icrasına səbəb olur.

Qeyd edək ki, bəzi digər mərmilərdən fərqli olaraq, boru kəmərindəki hər bir proses çökmə qabığının bir uşağıdır (əgər o, bir mərtəbə tikilməmişsə, bu halda o, hazırkı qabıqda yerinə yetirilir - ancaq ətrafdakı hər hansı bir təsir silinir).

Ümumi məlumatlar -

Bir əmr nəzarət operatoru ampersand (&) tərəfindən ləğv edildikdə, əmr əmrini asynchronously yerinə yetirir, yəni əmr əmrini əvvəlki komanda yerinə yetirməkdən qabaq gözləmir.

Arxa fonda əmr üçün format:

command1 & [command2 & ...]

Kabuk interaktiv deyilsə, asynchronous əmri standart girişi / dev / null olaraq təyin edilir

Siyahıları - Ümumiyyətlə danışır

Siyahısı yeni xəttlər, nöqtəli vergüllər və ya ampersandlar ilə ayrılmış sıfır və ya daha çox əmrlərin ardıcıllığıdır və bu üç simvoldan biri tərəfindən isteğe bağlı olaraq ləğv edilir. Siyahıda olan əmrlər yazılı qaydada yerinə yetirilir. Komanda bir ampersand təqib edildikdə, kabuk komandanlığa başlanır və dərhal növbəti komanda üzərinə aparılır; əks halda növbəti komandaya keçməzdən əvvəl əmrinin dayandırılmasını gözləyir.

Qısamüddətli siyahı operatorları

`` && '' və `` || '' AND-OR siyahı operatorlarıdır. '&&' 'ilk əmrini yerinə yetirir və ilk əmrin exit statusu sıfırdırsa ikinci əmri yerinə yetirir. `` || '' oxşardır, lakin birinci əmrin exit statusu sıfır deyilsə, ikinci əmri yerinə yetirir. `` && '' və `` || '' həm də eyni prioritetə ​​malikdir.

Flow-Control Constructs - halda, halda, halda

If komutunun sintaksisidir

siyahısı varsa
sonra siyahısı
[elif siyahısı
sonra siyahısı] ...
[başqa siyahısı]
fi

Zaman əmrinin sintaksisidir

siyahısında isə
siyahısı yoxdur
həyata keçirilir

İlk siyahıdakı çıxış vəziyyəti sıfır ikən iki siyahı dəfələrlə icra edilir. Əmr qədər oxşardır, amma sözü sözü sözügedən yerə qədərdir və bu, ilk siyahıdakı çıxış statusu sıfıra qədər təkrarlanmasına səbəb olur.

Komanda üçün sintaksis

Sözdə dəyişən üçün ...
siyahısı yoxdur
həyata keçirilir

Sözlər genişlənir və sonra siyahı dəyişən hər sözü öz növbəsində hər dəfə təkrarlanır. '' {'' və '`' 'ilə əvəz edilə bilər.

Mətnin sintaksis və davam komutu

ara [num]
davam edin [num]

Break nöqtələr üçün və ya loops isə en innermost sonlandırır. Devam etmə, ən kiçik döngünün növbəti təkrarlanması ilə davam edir. Bunlar yerleşik əmrlər olaraq həyata keçirilir.

Case komutunun sintaksisidir

sözcük sözcüğü
nümunə) siyahısı ;;
...
esac

Nümunə, həqiqətən, bir və ya daha çox nümunə ola bilər (daha sonra təsvir Shell Nümunələrinə bax), `` 'simvolları ilə ayrılmışdır.

Birlikdə əmrləri qruplaşdırma

Komutlar ya yazılı şəkildə qruplaşdırıla bilər

(siyahı)

və ya

{siyahısı;

Bunlardan birincisi, bir subshelldə əmrləri yerinə yetirir. Bir (siyahı) qruplaşdırılmış komanda əmrləri cari kabuğu təsir etmir. İkinci forma başqa bir qabığa çatmaz, belə ki, bir az daha səmərəlidir. Birlikdə əmrləri bir araya toplayaraq, onların çıxışlarını bir proqram olduqları kimi yönləndirməyə imkan verir:

{printf hello; printf dünya \ n ";> salamlama

Funksiyalar

Bir funksiyanın sintaksisidir

adı () əmri

Bir funksiya tərifi bir icra edilən bəyanatdır; icra edildikdə adı adlanan bir funksiyanı quraşdırır və sıfırdan çıxma vəziyyətini qaytarır. Komanda adətən '{' 'və' `` '' arasındakı bir siyahıdır

Dəyişənlər yerli funksiyanı istifadə edərək funksiyaya yerli olaraq elan edilə bilər. Bu bir funksiyanın ilk ifadəsi kimi görünməlidir və sözdizimdir

yerli [dəyişən | -] ...

Yerli bir komanda olaraq həyata keçirilir.

Bir dəyişən yerli edildikdə, başlanğıc dəyərini devralır və bir varsa, ixracatın və ətraf mühitdə eyni adı ilə dəyişəndən oxunan bayraqları oxuyur. Əks təqdirdə, dəyişən əvvəlcədən müəyyənləşdirilmir. Cədvəl dinamik miqyaslı istifadə edir, beləliklə, x funksiyasını f funksiyasını yerinə yetirmək üçün x funksiyasını yerinə yetirirsinizsə, g funksiyasını çağırır, g içindəki dəyişən x-ə istinadlar x adlanan x dəyişən x .

Lokal olaraq edilə bilən yeganə xüsusi parametr: `- '' funksiyanı qaytararkən öz funksiyalarına qaytarılacaq funksiyaya daxil edilmiş komanda vasitəsilə dəyişdirilən hər hansı bir qıvrma variantını yerli təşkil etməkdir.

Dönüş əmrinin sintaksisidir

geri dön [exitstatus

Hal-hazırda icra funksiyasını ləğv edir. Qaytarılmış bir əmr olaraq həyata keçirilir.

Dəyişənlər və parametrlər

Shell bir sıra parametrlər saxlayır. Bir ad tərəfindən göstərilən parametrə dəyişən adlanır. Başladığınızda, qabığın bütün dəyişənləri kabuk değişkenlerine çevirir. Yeni dəyişənlər forma istifadə edilə bilər

adı = dəyər

İstifadəçi tərəfindən təyin olunan dəyişənlər yalnız əlifba, ədədi və alt çərçivələrdən ibarət ad olmalıdır - birincisi sayısal olmamalıdır. Parametr də aşağıda izah edilən bir sıra və ya xüsusi bir xarakterlə göstərilə bilər.

Konumsal parametrlər

Konumsal parametr bir sıra (n> 0) ilə göstərilən parametrdir. Kabuk, bunları əvvəlcə kabuk skriptinin adını təqib edən komut satırı argümanlarının dəyərlərinə təyin edir. Setin (1) yerini qurmaq və ya yenidən qurmaq üçün də istifadə edilə bilər.

Xüsusi parametrlər

Xüsusi parametr aşağıdakı xüsusi simvollardan biri ilə göstərilən parametrdir. Parametrin dəyəri onun xarakterinin yanında verilmişdir.

*

Birindən başlayaraq mövqelər parametrlərinə genişlənir. Genişləmə, ikiqat qiymətli bir dize içərisində meydana gəldikdə, IFS dəyişəninin ilk xarakteri ilə ayrılmış hər bir parametrin dəyəri ilə və IFS unset halda bir ilə bir sahəyə genişlənir.

@

Birindən başlayaraq mövqelər parametrlərinə genişlənir. Genişləmə ikiqat tirajlar içərisində meydana gəldikdə, hər bir mövqelər parametri ayrı bir arqument kimi genişlənir. Heç bir mövqelər parametrləri olmadıqda, @ genişləndirilməsi sıfır arqumentləri meydana gətirir, hətta @ ikiqat qiymətlidir. Bunun əsas səbəbi, məsələn, $ 1 "abc" və $ 2 isə "def ghi", sonra Qq $ @ iki arqumentə genişlənir:

abc def ghi

#

Positional parametrlərin sayına qədər genişlənir.

?

Ən yeni boru kəmərinin çıxış vəziyyətinə genişlənir.

- (Hiphen.)

Mövcud variant bayrağına (bir harfli birləşdirilmiş simvol adları) çağırışda göstərildiyi kimi, quraşdırılmış komanda ilə və ya örtük şəkildə qabığa qədər genişləndirir.

$

Çağırılmış qabığın proses kimliyinə genişləndirir. Bir subshell, valideyn kimi $ dəyərini saxlayır.

!!

Cari kabuğun icra etdiyi ən son arka plan əmrinin proses kimliyinə genişlənir. Bir boru kəməri üçün proses kimliyi boru kəmərindəki son əmrdir.

0 (Sıfır.)

Shell və ya kabuk skriptinin adını genişləndirir.

Word Expansions

Bu bənddə sözlərlə yerinə yetirilən müxtəlif genişliklər təsvir edilir. Daha sonra açıqlandığı kimi, bütün sözlər hər bir sözlə yerinə yetirilmir.

Tilde genişlənmələri, parametr genişlənmələri, komanda əvəzləri, aritmetik genişlənmələr və tək bir söz içərisində baş verən sitat çıxarmaları bir sahədə genişlənir. Yalnız bir sözdən birdən çox sahə yarada bilən sahə parçalanması və ya yolun adı genişlənməsidir. Bu qayda üçün yeganə istisnadır yuxarıda təsvir olunduğu kimi, cüt tirajlılar içərisində @ xüsusi parametrinin genişləndirilməsidir.

Söz genişləndirilməsi qaydası:

  1. Tilde genişləndirilməsi, Parametr genişləndirilməsi, Command Substitution, Aritmetik genişləndirilməsi (bunlar hamısı eyni anda baş verir).
  2. IFS dəyişənləri null olmadıqda, sahə bölmələri addım (1) tərəfindən yaradılan sahələr üzrə aparılır.
  3. Pathname genişləndirilməsi (set - f olmadığı təqdirdə).
  4. Sitatın çıxarılması.

$ Karakter, parametr genişləndirilməsi, komanda əvəzi və ya aritmetik qiymətləndirmə tətbiq etmək üçün istifadə olunur.

Tilde genişləndirilməsi (bir istifadəçinin ev kataloqunun əvəzlənməsi)

Səssiz tilde xarakterindən (~) başlayan söz tilde genişlənməyə məruz qalır. Çizgi (/) və ya sözün sonuna qədər olan bütün simvollar bir istifadəçi adı kimi qəbul edilir və istifadəçinin ev qovluğu ilə əvəz olunur. İstifadəçi adı eksik (~ / foobar'da olduğu kimi) tilde HOME dəyişəninin (mövcud istifadəçinin ev qovluğu) dəyəri ilə əvəz olunur.

Parametr genişləndirilməsi

Parametr genişləndirilməsi üçün format aşağıdakılardır:

hər bir simvoldan ibarət olan hər bir simvoldan ibarətdir: `` `` Hər hansı bir```` bir tersliklə qaçdıqda və ya bir dırnaq içərisində qeydə alınmışsa və əlavə aritmetik genişlənmələrdə, komanda dəyişikliklərində və dəyişən genişlənmələrdə xarakterlər, ``` uyğunlaşmaq ''

Parametr genişləndirilməsi üçün ən sadə form:

Parametrlər varsa, dəyəri dəyişdirilir.

Parametr adı və ya simvolu brauzerlərdə əlavə edilə bilər ki, bu da birdən çox rəqəmə malik parametrik parametrlər istisna olmaqla və ya parametr adın bir hissəsi kimi şərh edilə biləcək bir xarakter daşıyır. Bir cüt parametr genişləndirilməsi cüt tirnoqların içərisində olarsa:

  1. Genişləmə nəticələrinə Pathname genişləndirilməsi edilmir.
  2. Alan istismarı @ istisna olmaqla, genişlənmənin nəticəsi ilə həyata keçirilmir.

Bundan əlavə, parametr genişləndirilməsi aşağıdakı formatlardan birini istifadə edərək dəyişdirilə bilər.

Varsa dəyərlərdən istifadə edin. Parametr qoyulmamış və ya null olduqda, sözün genişlənməsi əvəz edilir; əks halda parametrin dəyəri əvəz olunur.

Varsa dəyərləri təyin edin. Parametr qoyulmamış və ya null olarsa, sözün genişləndirilməsi parametr təyin edilir. Bütün hallarda parametrlərin yekun dəyəri əvəz olunur. Bu şəkildə yalnız dəyişənlər, mövqelər parametrləri və ya xüsusi parametrlər təyin edilə bilməz.

Null və ya Unset əgər səhv göstər. Parametr qoyulmadıqda və ya null olarsa, sözün (və ya sözü silinməmiş halda göstərilən mesaj silinməyəcəkdir) standart xətaya yazılır və qabıq qeyri-zona çıxışı statusu ilə çıxır. Əks halda parametr dəyəri əvəz olunur. İnteraktiv qabığın çıxmaması lazımdır.

Alternativ dəyərdən istifadə edin. Parametr qoyulmamış və ya null olduqda, null əvəz edilmişdir; əksinə, sözün genişlənməsi əvəz olunur.

Daha əvvəl göstərilən parametr genişlənmələrində formatda kolondan istifadə edilməmiş bir parametr üçün yoxlanılır və ya null; koloniyanın pozulması yalnız müəyyən edilməmiş bir parametr üçün bir testdə nəticələr verir.

String Length. Parametr dəyərinin simvollarında uzunluq.

Aşağıdakı dörd növ parametr genişləndirilməsi substring emal üçün təmin edir. Nümunələri qiymətləndirmək üçün hər halda, naxış eşleme qeydləri (Shell Nümunələrinə baxın), müntəzəm ifadə ifadəindən çox istifadə olunur. Parametr * və ya @ varsa, genişlənmənin nəticəsi dəqiqləşdirilmir. Tam parametr genişləndirici simli cüt tirnoqlarda yerləşdirmək aşağıdakı dörd növ desen simvolunun cədvəlinə səbəb olmur, bracesda olan simvolların alınması isə bu effektə malikdir.

Ən kiçik Suffix Pattern çıxarın. Söz bir nümunə çıxarmaq üçün genişlənir. Parametr genişləndirilməsi parametr ilə nəticələnir, nümunə ilə uyğunlaşdırılmış sonuncu ən kiçik hissəsi silinir.

Ən böyük Suffix Pattern çıxarın. Söz bir nümunə çıxarmaq üçün genişlənir. Parametr genişləndirilməsi parametr ilə nəticələnir, nümunə ilə uyğunlaşdırılmış sonuncu ən böyük hissəsi silinir.

Kiçik Prefiks Nümunəsini Sil. Söz bir nümunə çıxarmaq üçün genişlənir. Parametr genişləndirilməsi parametr ilə nəticələnir, nümunə ilə uyğunlaşdırılan prefikrin ən kiçik hissəsi silinir.

Ən böyük Prefix Pattern sil. Söz bir nümunə çıxarmaq üçün genişlənir. Parametr genişləndirilməsi parametr ilə nəticələnir, ön nümunənin ən böyük hissəsi nümunə ilə silinir.

Command Substitution

Komanda əvəzi əmr adının öz yerinə yerini əvəz etmək üçün bir komandanın çıxışını təmin edir. Komanda əvəzi əmr aşağıdakı kimi əlavə olunduqda baş verir:

$ (əmr)

və ya Po `` backquoted '' versiyası Pc:

'əmr'

Kabuk, subhell mühitdə komandanızı yerinə yetirərək əmr əvəzini əmr əvəzini yerinə yetirərək əmr əvəzini komanda əvəzini genişləndirir, əvəzin sonunda bir və ya bir neçə yeni satırın seriallarını çıxarır. (Buraxılmış s çıxış bitməzdən əvvəl silinmir, lakin sahədə bölünmə zamanı onlar IFS dəyərinə və fəaliyyətə istinadən s-ə çevrilə bilərlər.)

Aritmetik genişləndirilməsi

Aritmetik genişlənmə bir aritmetik ifadənin qiymətləndirilməsi və dəyərinin əvəzlənməsi üçün bir mexanizm təmin edir. Aritmetik genişləndirilməsi üçün format aşağıdakılardır:

$ ((ifadə))

İfadə ifadəsi ikiqat sütun şəklində olduğu kimi qəbul edilir, istisna daxilində ikiqat sitat xüsusi olaraq müalicə edilməməlidir. Shell, parametr genişləndirilməsi, komanda əvəzi və quote çıxarılması üçün ifadədə bütün ayələrini genişləndirir.

Sonra, qabıq bunu bir aritmetik ifadə kimi qəbul edir və ifadənin dəyərini əvəz edir.

Ağ boşluğun parçalanması (sahənin parçalanması)

Parametr genişləndirilməsi, komanda əvəzetmə və aritmetik genişləndirilmə sonrasında, qabığın sahə parçalanması üçün cüt tirnoqlarda baş verməmiş genişlənmələrin və əvəzedicilərin nəticələrini tarar və birdən çox sahədə nəticələnə bilər.

Kabuk, IFS'nin hər bir xarakterini məhdudlaşdırıcı kimi qiymətləndirir və sahələrə parametr genişləndirilməsi və komanda əvəzinin nəticələrini bölmək üçün məhdudlaşdırıcıları istifadə edir.

Pathname Genişləndirilməsi (Fayl Adı Generation)

- F bayrağının müəyyən edilmədiyi halda söz bölməsinin tamamlanmasından sonra fayl adı nəsil edilir. Hər bir söz slashes ilə ayrılmış bir sıra nümunələri kimi göstərilir. Genişlənmə prosesi sözü adları, hər bir nümunəni müəyyən edilmiş naxışa uyğun bir simli ilə əvəz etməklə yaradılan bütün mövcud faylların adları ilə əvəz olunur. Bununla bağlı iki məhdudiyyət var: birincisi, bir nümunə bir çırpma olan bir simli uyğun gəlmir, ikincisi, nümunə bir nümunə bir dövrlə başlana bilməz və nümunənin birinci xarakteri bir müddət deyildir. Növbəti bölmə, Pathname Expansion və case (1) əmrində istifadə olunan nümunələri təsvir edir.

Shell naxışları

Bir nümunə özləri ilə uyğun olan normal simvollardan və meta-simvollardan ibarətdir. Meta karakterlər ``! '' `` `* ''` `` '' 'Və `` `' 'Bu simvollar sitatlı olduqda xüsusi mənasını itirirlər. Komanda və ya dəyişən əvəz edildikdə və dolların işarəsi və ya geri qiymətləri ikiqat deyil, komanda əmrinin dəyişəninin və ya əmrinin dəyəri bu simvollar üçün taranır və meta-karakterə çevrilir.

Bir asterisk (`` * ') hər hansı simvol simvolu ilə uyğun gəlir. Bir sual işarəsi hər hansı bir xarakterə uyğun gəlir. Sol bir bracket (`` ['') bir xarakter sinfi təqdim edir. Xarakter sinifinin sonu (`` `'') ilə göstərilirsə,` `` '' itkin olduqda `` ['' xarakter sinifini təqdim etmək əvəzinə '' ['' '' ilə uyğun gəlir. Bir xarakter sinfi kvadrat mötərizələr arasındakı simvollardan birini tutur. Bir sıra simvol ekssiyyət əlaməti ilə müəyyən edilə bilər. Xarakter sinifinə xarakter sinifinin ilk xarakterini nişan nöqtəsi edərək tamamlaya bilər.

Bir xarakter sinifində bir `` '' daxil etmək üçün siyahıda ilk xarakterli olun (əgər varsa``` sonra ''). Eksi bir əlaməti daxil etmək üçün, sadalanan ilk və ya sonuncu xarakterli olun

Builtins

Bu bölmə, ayrı bir proseslə yerinə yetirə bilməyən bəzi əməliyyatları yerinə yetirmək lazımdır, çünki tikilmiş tikilmiş əmrləri siyahıya alır. Bununla yanaşı səmərəliliyi üçün bir neçə digər əmrlər də var (məsələn, yankı 1).

:

0 (true) çıxış dəyərini qaytaran null komanda.

. fayl

Göstərilən fayldakı əmrlər qabıq tərəfindən oxunur və yerinə yetirilir.

alias [ name [ = string ... ]]

Adı = string göstərildiyi halda, kabuk alias adını dəyər düsturu ilə təyin edir. Yalnız ad göstərildiyi halda, alias adının dəyəri yazdırılır. Heç bir argümanı olmayan, alias yerleşik , bütün müəyyən edilmiş takma adların adlarını və dəyərlərini yazır ( unalias bax )

bg [ iş] ...

Arxa planda göstərilən işlərə (ya da heç bir iş verildikdə cari işə) davam edin.

komanda əmri arg ...

Belirtilen daxili komutunu icra et. (Yerli bir komanda ilə eyni adı ilə bir cədvəl funksiyası olduqda bu faydalıdır.)

cd [ kataloq ]

Göstərilən qovluğa keçid (default $ HOME) CDPATH üçün giriş cd əmri və ya qabıq dəyişən CDPATH mühitində görünürsə və qovluq adı bir çırpma ilə başlamasa, CDPATH siyahısında göstərilən qovluqlar axtarılacaq göstərilən kataloq üçün. CDPATH formatı PATH ilə eynidır. Interaktiv qabıqda, cd əmri, istifadəçi tərəfindən verilən addan fərqlənirsə, əslində açdığınız qovluğun adını yazdırır. Bunlar CDPATH mexanizmindən istifadə edildiyi və ya simvolik bir keçid keçdiyi üçün fərqli ola bilər.

eval string ...

Bütün arqumentləri boşluqlarla birləşdirin. Sonra əmrini yenidən təhlil edin və yerinə yetirin.

exec [ komanda arg ... ]

Komanda istisna edilməmiş halda, qabıq prosesi müəyyən bir proqramla əvəzlənir (bir real proqram olmalı, bir qəfəs yerə və ya funksiyaya deyil). Exec əmrinə dair hər hansı redirections daimi olaraq qeyd olunur, exec əmri tamamlandıqda geri alınmazlar .

exit [ exitstatus ]

Qabıq prosesini dayandırın. Exitstatus verildiyində, bu qabığın çıxma vəziyyəti kimi istifadə olunur; əks halda əvvəlki əmrdən çıxış vəziyyəti istifadə olunur.

ixrac adı ...

ixrac -p

Göstərilən adlar sonrakı əmrlər mühitində görünəcək şəkildə ixrac olunur. Bir dəyişən ixrac etmənin yeganə yolu onu həll etməkdir. Kabuk, bir dəyişənin dəyərinin yazılı şəkildə ixrac edildiyi anda eyni zamanda təyin edilməsinə imkan verir

ixrac adı = dəyər

İxrac əmri heç bir argümanı olmayan bütün ixrac edilən dəyişənlərin adlarını siyahıya alır. - P seçimi ilə çıxış çıxışda qeyri-interaktiv istifadə üçün düzgün biçimlendirilecektir.

fc [- e redaktor ] [ ilk [ son ]]

fc -l [- nr ] [ ilk [ son ]]

fc -s [ old = yeni ] [ ilk ]

İnteraktiv qabığa əvvəlcədən daxil olan siyahılar, və ya düzəlişlər və yenidən yerinə yetirirlər.

- redaktoru

Komutları redaktə etmək üçün redaktor tərəfindən adlandırılan redaktoru istifadə edin. Redaktor dizesi PATH dəyişənləri ilə axtarışa tabe olan bir komanda adıdır. FCEDIT dəyişəninin dəyəri - e qeyd edilmədiyində default kimi istifadə olunur. FCEDIT null və ya unset halda, EDITOR dəyişəninin dəyəri istifadə olunur. EDITOR null və ya unset, ed (1) redaktoru kimi istifadə olunur.

-l (ell)

Komandirləri onlara bir redaktoru çağırmaq yerinə qoyun. Komutlar, komanda nömrəsinin önündəki hər bir komanda ilə təsirləndiyi üçün, birinci və son əmrlər göstərilən ardıcıllıqla yazılır.

-n

-l ilə qeyd edərkən komanda nömrələrini basdırın.

-r

Listedeki əmrlərin sırasını ters çevirmək ( l - ya və ya redaktə edilmiş (nə ilə - ya - s)

-s

Redaktoru çağırmadan əmrini yenidən yerinə yetirin.

birincisi

sonuncu

Siyahı və ya redaktə etmək üçün əmrləri seçin. Erişilə biləcək əvvəlki əmrlərin sayı HISTSIZE dəyişəninin dəyəri ilə müəyyən edilir. İlk və ya sonuncu və ya hər ikisinin dəyəri aşağıdakılardan biridir:

[+] nömrə

Komanda nömrəsini təmsil edən müsbət sayı; komanda nömrələri - l seçimi ilə göstərilə bilər.

sayı

Əvvəllər əmr sayını yerinə yetirən komandanı təmsil edən mənfi bir decimal sayı. Məsələn, -1 əvvəlki əmrdir.

simli

Bu dize ilə başlayan ən yaxın komanda əmrini göstərən simli. Köhnə = yeni işlənmə ilə də göstərilmirsə - ilk operandın simli forması gömülü bərabər bir işarə içər ki bilməz.

Aşağıdakı mühit dəyişənləri fc-nin icrasına təsir göstərir:

FCEDIT

Istifadə ediləcək redaktoru adı.

HISTSIZE

Əlçatan əvvəlki əmrlərin sayı.

fg [ ]

Göstərilən işi və ya hazırkı işi ön plana keçin.

getopts optstring var

POSIX getopts əmri, Bell Labs-ilə qəbul edilməməsi üçün getopt (1) ilə qarışdırılmamalıdır.

İlk arqument bir sıra məktub olmalıdır, hər birinin isteğe bağlı olaraq, bir seçicinin təqlid edəcəyi ehtimalını ifadə etmək üçün bir vasitədir. Belirtilen değişken, ayrıştırılmış seçeneğe ayarlanır.

Getopts komandası boşluqlar olan argümanların idarə olunması səbəbindən köhnə getopt (1) proqramını köhnəlmişdir.

Seçilən getopts variantları və onların parametrləri parametrlər siyahısından əldə etmək üçün istifadə edilə bilər. Çağırıldıqda , getopts , var tərəfindən göstərilən cədvəl dəyişənində siyahıdakı seçim dizisindəki növbəti seçim dəyərini yerləşdirir və bu, qapalı dəyişəndə OPTIND indeksini göstərə bilər. Qablıcağın çağırılması zamanı OPTIND 1-ə start verilir . bir arqument, qurulan getopts opsiv dəyişən OPTARG yerləşdirəcəkdir. Optstrinqdə bir seçim icazə verilmirsə, OPTARG unset olacaq.

optstrinq tanınmış seçilmiş məktubların bir simasıdır . Bir məktub bir kolon tərəfindən təqlid edildikdə, seçimin ağ məkandan ayrılması və ya ayrılmaması üçün bir arqument var. Bir seçim xarakteri gözlənildiyi yerdə tapılmadıqda, getopts '`` `' ' ə qədər dəyişən parametrləri təyin edəcək, sonra OPTARG'yi açar və çıxışları standart səhvlərə yaza bilir. Bütün səhvləri gözdən keçirmək üçün ilk xarakter kimi bir kolon ifadə edərək, nəzərə alınmayacaq.

Son seçimə çatdıqdan sonra sıfır olmayan bir dəyər qaytarılır. Qalan sübutlar olmadıqda , " getopts " xüsusi varianta "var" təyin edərsə, başqa bir halda "var"

Aşağıdakı kod parçası bir argümanı tələb edən [a] və [b] variantlarını və [c] variantını ala biləcək bir əmr üçün dəlilləri necə işlədə biləcəyini göstərir.

getopts abc: f
etmək
vəziyyət $ f in
a | b) bayraq = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; çıxış 1 ;;
esac
həyata keçirilir
'$ OPTIND - 1' köçürməsindən keçin

Bu kod aşağıdakılardan hər hansı birini qəbul edir:

cmd -acarg fayl faylı
cmd -a -c arg fayl faylı
cmd -carg -a fayl faylı
cmd -a -carg - fayl faylı

hash -rv komanda ...

Kabuk, əmr yerlərini xatırladan bir hash masası saxlayır. Heç bir arqument yoxsa, hash əmri bu cədvəlin məzmununu yazır. Son cd əmrindən bəri baxılmayan yazılar bir asterisklə qeyd olunur; bu girişlərin etibarsız olması mümkündür.

Arqumentlər ilə, hash əmri göstərilən əmrləri hash masasından çıxarır (funksiyalar olmadıqda) və sonra onları tapır. - V seçimi ilə, hash əmrlərin yerlərini tapdığı yerləri yazır. - r seçimi, hash komutunun funksiyaları istisna olmaqla, hash masa içindəki bütün girişləri silməsinə səbəb olur.

jobid [ ]

Iş prosesindəki proses idlərini yazdırın. İş arqumenti çıxarılsa, cari iş istifadə olunur.

iş yerləri

Bu əmr cari qövs prosesinin uşaqları olan bütün fon prosedurlarını əks etdirir.

pwd

Mövcud kataloq yazdırın. Daxili komut həmin adın proqramından fərqlənə bilər, çünki tikilmiş komanda mövcud kataloqu hər dəfə yenidən qiymətləndirmədən daha çox yadda saxlayır. Bu, daha sürətli edir. Halbuki, cari dizinin adı dəyişdirildikdə, pwd'in daxili versiyası kataloqun köhnə adını yazmağa davam edəcək.

oxuyun [- p istemi ] [- r ] dəyişən ...

İstiqamət - p variantının müəyyən edildiyi və standart giriş bir terminal olduqda çap olunur. Sonra standart girişdən bir satır oxunur. Ardıcıl yeni xətt satırdan silinir və xətt yuxarıdakı söz bölməsində bölmədə təsvir olunduğu kimi bölünür və ədəd dəyişənlərə təyin olunur. Ən azı bir dəyişən müəyyən edilməlidir. Değişkenlerden daha çox parça varsa, qalan parçalar (IFS'teki simgelerle birlikte ayrılmış) son değişkene atanır. Parçalardan daha çox dəyişən varsa, qalan dəyişənlərə null simli təyin edilir. EOF girişdə rast gəlinməmiş halda oxumaq yerin müvəffəqiyyətini göstərəcəkdir.

'' - r '' seçimi olmadığı təqdirdə, '' `'' ters eğik çizgisi bir qaçış xarakteri kimi davranır ve aşağıdakı karakterin tam anlamıyla ele alınmasına neden olur. Bir tersliklə yeni bir satır təqib edildikdə, terslik və yeni satır silinəcəkdir.

Readonly adı ...

oxumaq -p

Göstərilən adlar yalnız oxunan kimi qeyd olunur, beləliklə, sonradan dəyişdirilə və ya açılmır. Kabuk, dəyişənin dəyərinin eyni zamanda yazılmaqla oxunduğu kimi qeyd edilməsinə imkan verir

readonly name = dəyər

Heç bir argümanı olmayan oxunan komanda bütün oxunan dəyişənlərin adlarını siyahıya alır. - P seçimi ilə çıxış çıxışda qeyri-interaktiv istifadə üçün düzgün biçimlendirilecektir.

[[- variantları | + variantları | - arg ... ]

Set əmri üç müxtəlif funksiyanı yerinə yetirir.

Heç bir arqumentlə, bütün qabığın dəyişənlərinin dəyərlərini sıraladı.

Seçimlər verildikdə, müəyyən variant bayraqları müəyyən edir və ya Sx Argument siyahısı Siyahısı adlı bölmədə təsvir olunduğu kimi təmizləyir.

Set əmrinin üçüncü istifadəsi qabığın mövqeləri parametrlərinin göstərilən args-a təyin etməkdir. Hər hansı bir variant dəyişdirmədən mövqeləri parametrləri dəyişdirmək üçün, qurmaq üçün ilk arqument kimi `` `- istifadə edin. Əgər args mövcud deyilsə, müəyyən komanda bütün mövqelər parametrlərini (' shift $ #.' '

dəyişən dəyər

Değişkenlere değer atar. (Ümumi olaraq parametrlər kimi qəbul edilən dəyişənlərə dəyər verən funksiyalarda istifadə üçün nəzərdə tutulmuşdur).

shift [ n ]

Konumsal parametrləri n dəfə dəyişə bilərsiniz. Keçid $ 1 dəyərini $ 2 dəyərinə $ 2 dəyərini 3 $ dəyərinə və daha birinə bərabərləşdirərək $ # dəyərini bir də azaldır. N, mövqelər parametrlərinin sayından çox olduqda, shift bir səhv mesajı verəcək və dönüş statusu 2 ilə çıxış edəcək.

dəfə

Kabuk üçün yığılmış istifadəçi və sistem müddətlərini və işlədilən proseslər üçün qabığa yazdırın. Dönüş statusu 0'dır.

tələyə hərəkət siqnalı ...

Müəyyən sinyallerin hər hansı birinin qəbul edildiyi zaman qəfildən ayrıştırılmalı və hərəkət etməlidir. Siqnallar siqnal nömrəsi ilə müəyyən edilir. Siqnal 0 olarsa, qabarma çıxdıqda hərəkət yerinə yetirilir. hərəkət null və ya `- '' köhnə göstərilən siqnal nəzərə alınmır və sonuncu default tədbirin alınmasına səbəb olur. Qabıq bir alt quyruqdan çölə çıxdıqda, əmələ gələn hərəkətə tələf olan (lakin göz ardı edilməmiş) siqnalları sıfırlar. Tuzaq əmri qabığa girişdə nəzərə alınmayan siqnallara heç bir təsir göstərmir.

yazın [ ad ... ]

Hər bir adını komanda olaraq şərh edin və əmr axtarışının qətnaməsini çap edin. Mümkün qətnamələr: shell açar söz, alias, shell yerleşik , əmr, izlənilmiş alias və tapılmadı. Təqvimlər üçün alias genişləndirilməsi basılır; əmrlər və izlənilmiş takma adlar üçün komandanın tam yol adı yazdırılır.

ulimit [- H-S ] [- a-tfdscmlpn [ dəyər ]]

Proseduralara dair sərt və ya yumşaq məhdudiyyətləri soruşun və ya müəyyənləşdirin və ya yeni məhdudiyyətlər qoyun. Sərt sərhəd arasındakı seçim (heç bir prosesin pozulmasına yol veriləcəyi və bir dəfə aşağı endirdikdən sonra qaldırıla bilməyəcəyi) və yumşaq limit (bu proseslər siqnal veriləcək, lakin mütləq öldürülməyəcək və qaldırıla biləcək səbəblər) arasında seçim edilir bu bayraqlar:

-H

sərt məhdudiyyətlər qoyduqda və ya soruşurlar

-S

Yumşaq məhdudiyyətlər müəyyənləşdirin və ya soruşun. Heç nə - H və ya S göstərilməyibsə, yumşaq limit göstərilir və ya hər iki limit müəyyən edilir. Hər ikisi müəyyən edilirsə, sonuncu qalib gəlir.

Sualı və ya təyin olunacaq məhdudiyyət bu bayraqların hər hansı birini göstərməklə seçilir:

-a

bütün mövcud limitləri göstərir

-t

göstərmək və ya CPU müddətinə (saniyədə)

-f

göstərmək və ya yarada biləcək ən böyük fayl üzərində limit təyin etmək (512 baytlı bloklarda)

-d

bir prosesin data seqmentinin ölçüsünə göstərmək və ya məhdudlaşdırmaq (kilobayt)

-s

bir prosesin yığın ölçüsündə limit göstərmək və ya müəyyən etmək (kilobayt)

-c

göstərmək və ya istehsal edilə biləcək ən böyük çekirdekli döküntü ölçüsünü (512 bayt bloklarında)

-m

bir prosesdə istifadə edilə bilən ümumi fiziki yaddaşa göstərmək və ya məhdudlaşdırmaq (kilobaytlarda)

-l

göstərmək və ya bir prosesin mlock (2) ( kilobayt )

-p

göstərmək və ya bu istifadəçinin bir zamanda ola biləcəyi proseslərin sayını məhdudlaşdırmaq

-n

bir müddətin bir dəfə aça biləcəyini göstərmək və ya nömrənin fayllarına limit qoymaq

Əgər bunlardan heç biri göstərilməyibsə, göstərilən və ya müəyyən edilmiş fayl ölçüsündə olan məhdudiyyətdir. Məbləğ müəyyən edildikdə, məhdudiyyət həmin nömrəyə təyin edilir; əks halda mövcud limit göstərilir.

Kefi bir prosesin limitləri sysctl (8) proqramından istifadə edərək göstərilə və ya müəyyən edilə bilər.

umask [ maska ]

Umask dəyərini təyin edin (bax umask (2)) göstərilən sekizlik dəyərinə. Mübahisənin qəbul edilmədiyi halda, umask dəyəri yazılır.

unalias [- a ] [ adı ]

Adı göstərildiyi halda, kabuk bu takma adı aradan qaldırır. A - müəyyən edilirsə, bütün takma adlar silinir.

unset adı ...

Göstərilən dəyişənlər və funksiyalar unset və unexported olunur. Belirli bir ism həm dəyişən, həm də funksiyaya cavab verirsə, həm dəyişən, həm də funksiya müəyyənləşdirilmir.

gözləyin [ ]

İşdə son prosesin çıxış vəziyyətini tamamlamaq və qaytarmaq üçün göstərilən işi gözləyin. Arqument atlansa, bütün işlərin tamamlanmasını və sıfırdan çıxma vəziyyətini qaytarmasını gözləyin.

Command Line Editing

Sh bir terminaldan interaktiv olaraq istifadə edildikdə, mövcud əmr və komanda tarixçəsi (Sx Builtins-də fc -ə baxın) vi-mode komanda-line redaktoru ilə redaktə edilə bilər. Bu rejim vi men səhifəsində təsvir olunanların alt hissəsinə bənzər bir şəkildə aşağıda təsvir olunan əmrlərdən istifadə edir. 'Set' -o vi əmri vizual rejimi redaktə etməyə və yerləşdirmə rejiminə daxil etməyə imkan verir. Vi rejimi effektiv olduqda, sh daxil rejimi və komanda rejimi arasında keçid edilə bilər. Redaktor burada tam olaraq təsvir edilmir, lakin sonrakı bir sənəddə olacaq. Bu vi ilə bənzərdir: Aq ESC yazaraq, sizi VI əmri komanda rejiminə atacaq. Komanda rejimində Aq qaytarılması istiqamətində xətt qabığa keçəcək.

Mühüm: Şəxsi kompüterinizdə bir komanda necə istifadə edildiyini görmək üçün man komutunu ( % man ) istifadə edin.