Ash - Linux Buyruq - Unix Buyruq

NAME

sh - buyruq tarjimoni ( shell )

SYNOPSIS

sh [- / + aCefnuvxIimqsVEbc ] [- u longname ] -words [ maqsad ... ]

DESCRIPTION

Sh - bu tizim uchun standart komanda tarjimoni. Sh ning joriy versiyasi qobiq uchun POSIX 1003.2 va 1003.2a spetsifikatsiyalariga mos kelish uchun o'zgartirish jarayonida. Ushbu versiyada Korn qobig'ining ba'zi jihatlariga o'xshash ko'rinadigan ko'plab xususiyatlari mavjud, biroq bu Korn shell kloni emas (ksh (1) ga qarang). Faqat POSIX va Berkeley kengaytmalari tomonidan belgilangan xususiyatlar ushbu qobiqga kiritilgan. Biz POSIX muvofiqligini 4.4 USD bo'shatilgan vaqtga kutamiz. Ushbu odam sahifasi o'rgatuvchi yoki qobiqning to'liq tavsifi bo'lishi mumkin emas.

Umumiy nuqtai

Kabuk, fayl yoki terminaldan satrlarni o'qiydi, ularni izohlaydi va odatda boshqa buyruqlar ijro etadi. Ushbu dastur foydalanuvchi tizimga kirganda ishlaydigan dasturdir (garchi foydalanuvchi chsh (1) buyrug'i bilan boshqa qobiqni tanlashi mumkin). Qobiq oqim nazorat tuzilmalariga ega bo'lgan tilni, shu bilan birga, ma'lumotlarni saqlashga qo'shimcha ravishda turli xil xususiyatlarni ta'minlaydigan va tarix va yo'nalishlarni tahrir qilish qobiliyatlari bilan jihozlangan bir makonni amalga oshiradi. Interaktiv foydalanishga yordam berish uchun ko'plab xususiyatlarni o'z ichiga oladi va interpretatsiya tili interaktiv va interaktiv bo'lmagan (kabuk skriptlari) uchun umumiy bo'lgan afzalliklarga ega. Boshqacha aytganda, buyruqlar to'g'ridan-to'g'ri ishlaydigan qobiqga yozilishi yoki faylga kiritilishi mumkin va fayl to'g'ridan-to'g'ri qobiqdan bajarilishi mumkin.

Chaqiruv

Agar args mavjud bo'lmasa va qobiqning standart usuli terminalga ulangan bo'lsa (yoki - i belgisi o'rnatilgan bo'lsa) va - c parametri bo'lmasa, qobiq interaktiv qobiq hisoblanadi . Interaktiv qobiq odatda har bir buyruq oldidan talab qiladi va dasturiy va buyruqlar xatolarini boshqacha (quyida ta'riflanganidek) boshqaradi. Birinchi marta ishga tushirilganda, qobiq argument 0ni tekshiradi va agar u bir chiziq bilan boshlansa, - qobiq ham kirish qobig'i hisoblanadi. Odatiy ravishda tizim avtomatik ravishda tizimga kirganida foydalanuvchi birinchi kiradi. Kirish kabuksi avval fayllarni / etc / profile va .profile fayllaridan buyruqlarni o'qiydi. Agar ENV atrof-muhit o'zgaruvchisi qobiqqa kirishda o'rnatilsa yoki login panelining .profilida o'rnatilsa, qobiq keyingi ENV nomli fayldan buyruqlarni o'qiydi. Shuning uchun foydalanuvchi faqatgina bajarilishi kerak bo'lgan buyruqlar .profile faylida kirish vaqti va ENV faylidagi har bir qobiq uchun bajarilgan buyruqlar. ENV o'zgaruvchisini ba'zi bir faylga sozlash uchun, quyidagi qatorni o'zingizning uy katalogingizning .profiliga joylashtiring

ENV = $ HOME / .shinit; eksport ENV

".shinit" siz xohlagan fayl nomini o'zgartirish uchun. ENV fayli shell skriptlari va interaktiv bo'lmagan qobiqlarni o'z ichiga olgan qobiqning har bir chaqirig'i uchun o'qilganligi uchun quyidagi paradigma ENV fayliidagi buyruqlarni interaktiv chaqiruvlarga cheklash uchun foydalidir. Quyidagi `` `case '' va'` esac '' buyruqlaridagi buyruqlar joylashtiring (ushbu buyruqlar keyinchalik tavsiflanadi):

case $ - in * i *)

# faqat interaktiv foydalanish uchun buyruqlar

...

Esac

Agar parametrlardan tashqari buyruqlar satri argumentlari aniqlansa, qobiq birinchi dalilni buyruqlarni o'qish uchun bir fayl nomini (qobiqli skript) va qolgan argumentlarni qobiqning joylashuv parametrlari sifatida belgilab qo'yadi ($ 1 , $ 2, va hokazo). Aks holda, qobiq standart kirish buyruqlar o'qiydi.

Argumentlar ro'yxati ishlovi

Bitta harfli variantlarning barchasi - u parametriga argument sifatida ishlatilishi mumkin bo'lgan tegishli nomga ega. To'siq - u nomi quyidagi ta'rifda bitta harf variantining yonida taqdim etiladi. '' '' '-' 'belgilari belgilab, opsiyani yoqadi, ortiqcha `` + `' dan foydalanish parametrni o'chiradi. Quyidagi variantlar buyruq satridan yoki (1) o'rnatilgan (keyinroq tasvirlangan) bilan o'rnatilishi mumkin.

- allexport

Barcha tayinlangan parametrlarni eksport qilish. (4.4alfa uchun UNIMPLEMENTED)

-c

Buyruqlar satridan buyruqlarni o'qing. Standart kiritishda hech qanday buyruqlar o'qilmaydi.

-C noclobber

Mavjud fayllarni `` `` `bilan yozib qo'yma (4.4alfa uchun UNIMPLEMENTED)

- erektsit

Interaktiv bo'lmasa, tekshirilmagan test buyrug'i bajarilmasa darhol chiqing. Buyruqlar komandasining chiqish holati, agar buyruq agar yoki "yoki" yoki "` "operatorining chap qo'li bo'lsa yoki buyruqni bajarish uchun ishlatilsa, ochiq usulda tekshiriladi.

-f noglob

Pathname kengaytirishni o'chirib qo'yish.

-n noexec

Interaktiv bo'lmasa, buyruqlarni o'qing, lekin ularni bajarmang. Bu shell skriptlari sintaksisini tekshirish uchun foydalidir.

-Uzuning

Belgilangan bo'lmagan o'zgarmaydiganni kengaytirishga harakat qilganda standart xatoga xat yozing va agar qobiq interaktiv bo'lmasa darhol chiqing. (4.4alfa uchun UNIMPLEMENTED)

-v

Qobiq o'qilganidek, uning kiritilishini standart xatoga yozadi. Disk raskadrovka uchun foydalidir.

-x xtrace

Har bir buyruqni standart xatoga yozing (oldindan "+" bajarilganidan oldin.

-q tinchlik yutuqlari

- V yoki - x parametrlari o'rnatilgan bo'lsa, ularni ishga tushirish uchun boshlang'ich fayllarni o'qing, ular / etc / profile .profile va ENV muhit o'zgaruvchisi tomonidan belgilangan fayl.

- Ha, bilmayman

Interfaol holatlarda EOF ning kirishdan e'tiborsizlik qiling.

interaktiv

Qobiqni interaktiv tarzda bajarishga majbur qilish.

-m monitor

Ishni boshqarishni yoqing (interfaol holatda avtomatik ravishda o'rnatiladi).

- Stdin

Standart kirishdan buyruqlarni o'qing (agar biron bir fayl argumenti mavjud bo'lmasa, avtomatik ravishda o'rnatiladi). Bu parametr qobiq ishga tushirilgandan keyin o'rnatilganda (masalan, to'siq (1) bilan) ta'siri yo'q.

-V vi

O'rnatilgan vi (1) buyruqlar qatorini muharririni yoqish (o'chirilgan - agar u o'rnatilgan bo'lsa).

-E emacs

O'rnatilgan emacs (1) buyruqlar qatorini muharririni yoqish (o'chirilgan - V belgilangan bo'lsa).

-b xabar bering

Orqa fon vazifasini bajarish haqida mos kelmaydigan xabarnomani yoqish. (4.4alfa uchun UNIMPLEMENTED)

Lexik tuzilish

Qobiq fayllardan satrlarni kiritish uchun o'qiydi va bo'sh joylarda so'zlarni (bo'shliqlar va yorliqlar) buzib tashlaydi va qobiq uchun maxsus bo'lgan "operatorlar" deb nomlangan belgilar ketma-ketligida ikkita operator mavjud: nazorat operatorlari va qayta yo'naltirish operatorlari (ularning mazmuni keyinroq muhokama qilinadi). Quyida operatorlarning ro'yxati keltirilgan:

"Nazorat qiluvchi operatorlar:"

& && (); ;; | | |

"Qayta yo'naltirish operatori:"

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

Quoting

Quoting operatorlar, bo'shliqlar yoki kalit so'zlar kabi qobiqga ma'lum belgilar yoki so'zlarning maxsus ma'nosini olib tashlash uchun ishlatiladi. Uchta turdagi kotirovka mavjud: bir-biriga mos keladigan tirnoq, mos keladigan er-xotin tirnoq va chiziqcha.

Orqaga aylantirish

Aq newline tashqari, teskari egri chiziq quyidagi belgilarning tom ma'nodagi ma'nosini saqlaydi. Aq naytadan avvalgi teskari chiziq chiziq davomi sifatida qaraladi.

Bitta tirnoq

Belgilarni yagona tirnoqlardan ajratish barcha belgilarning haqiqiy ma'nosini saqlaydi (bitta tirnoqlardan tashqari, yagona tirnoqlarni bitta tirnoqli satrda qo'yish imkonsizdir).

Ikki tirnoq

Ikkala tirnoq ichida harflarni yozishni bajarish dollarign ($) backquote (`) va teskarisiz (\) tashqari barcha belgilarning tom ma'nodagi ma'nosini saqlaydi. Ikki tirnoq ichidagi teskari tarjima tarixiy jihatdan g'alati bo'lib, faqat quyidagi belgilarni ko'rsatishga xizmat qiladi:

$ `\

Aks holda, literal.

Zahiralangan so'zlar

Qo'riqlanadigan so'zlar qobiq uchun maxsus ma'noga ega bo'lgan so'zlar bo'lib, ular qatorni boshida va nazorat operatoridan keyin tan olinadi. Quyidagi so'zlar zahiralangan:

! Toki entsikida Toki Ta

Ta Ta uchun Tok, Ta {Ta}

Toki Ta Asakgacha Toki qilmoq Ta

Ularning ma'nosi keyinroq muhokama qilinadi.

Taxalluslar

Boshqa ism - taxallus (1) yordamida tuzilgan buyruqlar yordamida belgilangan nom va mos qiymat. Har qanday ajratilgan so'z paydo bo'lganda (yuqoriga qarang) va ajratilgan so'zlarni tekshirib bo'lgach, shell so'zni boshqa nom bilan mos keladimi-yo'qligini tekshiradi. Agar shunday bo'lsa, uni kirish oqimida uning qiymati bilan almashtiradi. Misol uchun, "ls -F" qiymati bilan `` lf '' deb nomlangan taxallus mavjud bo`lsa input:

foobar

bo'lar edi

l-F foobar

Takliflar soddalashtirilgan foydalanuvchilarga funktsiyalarni argumentlar bilan qanday yaratishni o'rganmasdan buyruqlar uchun sherst yaratish uchun qulay usul yaratadi. Ular, shuningdek, leksik jihatdan noaniq kod yaratish uchun ham foydalanilishi mumkin. Ushbu foydalanishdan foydalanmang.

Buyruqlar

Qobiq tilni ko'ra o'qiydigan so'zlarni sharhlaydi, uning spetsifikatsiyasi bu insonning sahifasi doirasidan tashqarida ( POSIX 1003.2 hujjatidagi BNFga qarang). Aslida, bir chiziq o'qiladi va chiziqning birinchi so'zi (yoki nazorat operatoridan keyin) ajratilgan so'z bo'lmasa, qobiq oddiy buyruqni tan oladi. Aks holda, murakkab buyruqlar yoki boshqa maxsus konstruktsiyalar tan olinishi mumkin.

Oddiy buyruqlar

Oddiy buyruqlar tan olingan bo'lsa, qobiq quyidagi ishlarni bajaradi:

  1. '`Name = value' 'shaklidagi etakchi so'zlar bekor qilinadi va oddiy buyruqning muhiti beriladi. Qayta yo'naltirish operatorlari va ularning argumentlari (quyida aytib o'tilganidek) ajratiladi va qayta ishlash uchun saqlanadi.
  2. Qolgan so'zlar "Expansions" deb nomlangan bo'limda aytib o'tilganidek kengaytirildi va qolgan birinchi so'z buyruqlar nomi va buyruqlar joylashgan deb hisoblanadi. Qolgan so'zlar buyruqning argumentlari hisoblanadi. Buyruq nomi bo'lmasa, 1-bandda tan olingan `` name = value '' o'zgarmaydigan belgilash joriy qobiqni ta'sir qiladi.
  3. Qayta yo'naltirishlar keyingi qismda ta'riflanganidek amalga oshiriladi.

Redirections

Redirections buyrug'i o'qishni o'qigan yoki uning chiqishini yuboradigan joyni o'zgartirish uchun ishlatiladi. Umuman olganda, redirections faylga mavjud havolani ochadi, yopadi yoki takrorlaydi. Yonaltiruvchi uchun ishlatiladigan umumiy format:

[n] redir-op fayli

bu erda redir-op ilgari aytib o'tilgan qayta yo'naltirish operatorlaridan biridir. Quyida mumkin bo'lgan yo'naltirishlarning ro'yxati keltirilgan. Bq n ixtiyoriy raqam bo'lib, «3» («Bq 3» emas, balki fayl identifikatoriga tegishlidir).

[n]> faylini tanlang

Standart chiqish (yoki n) faylga yo'naltirish.

[n]> | fayl

Xuddi shunday, ammo - C parametrini bekor qilish.

[n] >> faylini tanlang

Faylga standart chiqish (yoki n) qo'shing.

[n]

Fayldan standart kirishni (yoki n) yo'naltirish.

[n1] <& n2

Fayl identifikatori n2 dan standart kirishni nusxalash (yoki n1).

[n] <& -

Standart kirishni yoping (yoki n).

[n1]> & n2

N2-dan standart nusxani nusxalash (yoki n1).

[n]> & -

Standart chiqdi (yoki n) yoping.

[n] <> fayli

Standart kirish (yoki n) da o'qish va yozish uchun faylni oching.

Quyidagi qayta yo'naltirish ko'pincha "bu erda" deb ataladi.

[n] << chegarachilar

bu yerda-doc-text ...

chegarachi

Harakatsiz satrlardagi barcha matnlar chegarachiga qadar saqlanadi va standart kiritilgan buyruqlar yoki agar aniqlangan bo'lsa, fayl identifikatori bilan ta'minlanadi. Agar boshlang'ich chiziqda ko'rsatilgandek bo'linuvchi ko'rsatgich korsatilgan bo'lsa, bu erda doc-matnni to'liq ma'noga ega, aks holda matn parametrni kengaytma, komandani almashtirish va arifmetik kengayishlarga ("Expansions" bo'limida ko'rsatilganidek) ta'sir ko'rsatadi. 'Agar operator "<< -' 'o'rniga` `<<' bo'lsa, bu yerda doc-matnidagi etakchi yorliqlar o'chiriladi.

Izlash va ijro

Buyruqlar uch xil: qobiq vazifalari, o'rnatilgan buyruqlar va an'anaviy dasturlar - buyruq bu tartibda (nomi bilan) qidiriladi. Ularning har biri boshqacha tarzda ijro etiladi.

Agar qobiq vazifasi bajarilsa, qobiqning joylashuv parametrlari (o'zgarmas qolgan 0 $ dan tashqari) qobiq funksiyasining argumentlariga o'rnatiladi. Buyruqlar muhitida aniq belgilanadigan parametrlarga (funktsiya nomidan oldin ularga topshiriq berish orqali) funktsiyaga mahalliy sifatida kiritiladi va berilgan qiymatlarga o'rnatiladi. Keyin funktsiya ta'rifida berilgan buyruqlar bajariladi. Buyruq tugallangach joylashuv parametrlari asl qadriyatlariga qayta tiklanadi. Bularning hammasi joriy qobiq ichida sodir bo'ladi.

Shell-ning qurilishi ichki jarayonni yangi jarayonni yumshatmasdan bajariladi.

Aks holda, buyruqlar nomi funktsiya yoki joyga mos kelmasa, buyruq fayl tizimida an'anaviy dastur sifatida izlanadi (keyingi qismda ta'riflanganidek). Oddiy dastur amalga oshirilganda, qobiq dasturni ishga tushiradi, argumentlarni va muhitni dasturga o'tkazadi. Dastur odatiy executable fayl emas bo'lsa (ya'ni ASCII vakili "sehrli raqam" bilan boshlanmagan bo'lsa, "exe" (2) "Er ENOEXEC" ni qaytaradi) keyin qobiq dasturni sharhlaydi. subshell. Bolaning qobig'i bu holatda o'zini qayta ishga tushiradi, shuning uchun efektlar maxsus qobiq skriptini boshqarish uchun yangi qobiq chaqirilgandek bo'lib qoladi, bundan tashqari ota-onadagi qobiqdagi zaryadlangan buyruqlar o'rnini eslab qoladi. bola.

Shuni esda tutingki, ushbu hujjatning avvalgi versiyalari va manba kodi o'zini "noto'g'ri" va sehrli raqam sifatida "shell protsedurasi" sifatida noan'anaviy ravishda shell skriptiga yozib qo'yadi.

Yo'lni qidirish

Buyruqni joylashtirganda, qobiq birinchi navbatda ushbu nom bilan qobiq vazifasini bajaradimi yoki yo'qligini bilib oladi. Keyin, bu nom bilan qurilgan buyruqni qidiradi. O'rnatilgan buyruqlar topilmasa, ikkita narsadan biri amalga oshadi:

  1. Chiziqni o'z ichiga olgan buyruqlar nomlari faqat qidiruvni amalga oshirmasdan amalga oshiriladi.
  2. Qobiq buyruq uchun o'z navbatida PATH ga har bir uskuna izlaydi. PAT o'zgaruvchining qiymati ikki nuqta bilan ajratilgan bir qator yozuvlar bo'lishi kerak. Har bir yozuv bir katalog nomidan iborat. Joriy papkada bo'sh katalog nomi yoki aniq bir muddat bilan aniq ko'rsatilishi mumkin.

Buyruqning chiqish holati

Har bir buyruq boshqa qobiq komandalarining xatti-ta'siriga ta'sir qilishi mumkin bo'lgan chiqish holatiga ega. Paradigma shundan iboratki, buyruq odatiy yoki muvaffaqiyat uchun nol bilan chiqadi va noto'g'ri, xato yoki noto'g'ri ko'rsatma uchun nolga teng emas. Har bir buyruq uchun odam sahifasida turli xil chiqish kodlari va ularning ma'nosi ko'rsatilishi kerak. Bundan tashqari, o'rnatilgan buyruqlar exit kodlarini qaytaradi, chunki bajarilgan qobiq vazifasi bajariladi.

Murakkab buyruqlar

Murakkab buyruqlar oddiy buyruqlarning kombinatsiyasi bo'lib, ular nazorat operatorlari yoki ajratilgan so'zlar bilan birgalikda yanada murakkab buyruqlar yaratadi. Umumiy holda, buyruqlar quyidagilardan biri hisoblanadi:

  • oddiy buyruq
  • quvur liniyasi
  • ro'yxat yoki aralash-ro'yxat
  • aralash buyruq
  • funktsiya ta'rifi

Aks belgilanmagan bo'lsa, buyruqning chiqish holati komandaning bajargan so'nggi oddiy buyrug'idir.

Quvurlar

Bir quvur liniyasi - nazorat operatori tomonidan ajratilgan bir yoki bir necha buyruqlar ketma-ketligi. Barcha oxirgi buyruqdan standart chiqish keyingi buyruqning standart kiritilishiga bog'liq. So'nggi buyruqning standart chiqishi odatdagidek qobiqdan meros bo'lib olinadi.

Bir quvur liniyasi quyidagicha:

[!] command1 [| buyruq2 ...]

Buyruqning standart chiqishi buyruqlar2 ning standart kirishiga ulangan. Bir buyruqning standart usuli, standart chiqishi yoki har ikkalasi buyruqning bir qismi bo'lgan qayta yo'naltirish operatorlari tomonidan ko'rsatilgan qayta yo'naltirishdan oldin, quvur liniyasi tomonidan tayinlangan hisoblanadi.

Agar quvur fonida emas (keyinroq muhokama qilinadi), qobiq barcha buyruqlar bajarilishini kutadi.

Agar ajratilgan so'z! quvurdan oldingi holatga kelmasa, chiqish holati quvurda ko'rsatilgan so'nggi buyruqning chiqish holatidir. Aks holda, chiqish holati oxirgi buyruqning chiqish holatining mantiqiy emas. Ya'ni, agar oxirgi buyruq nolga qaytsa, chiqish holati 1 bo'ladi; agar oxirgi buyruq noldan katta bo'lsa, chiqish holati nol bo'ladi.

Qayta yo'naltirishdan oldin standart kirish yoki standart chiqish yoki har ikkalasini quvur belgilash jarayoni amalga oshirilganligi sababli uni qayta yo'naltirish orqali o'zgartirish mumkin. Masalan:

$ command1 2> & 1 | buyruqlar2

buyruqlar standart usuliga standart buyrug'i va standart buyrug'i1 yuboradi.

A; yoki terminator oldingi AND-OR-ro'yxatini (keyingi tavsiflangan) ketma-ket bajarilishiga olib keladi; a va oldingi AND-OR-ro'yxatning asenkron bajarilishiga olib keladi.

Ba'zi bir chig'anoqlardan farqli o'laroq, quvur liniyasidagi har bir operatsiya qobiqning chaqalog'idir (agar u qobiq qurilgan bo'lsa, u holda u hozirgi qobiqda ishlaydi, lekin uning atrofidagi ta'siri o'chiriladi).

Muzika buyruqlari -

Buyruq ampersand (&) buyrug'i tomonidan tugatilgan bo'lsa, qobiq buyruqlar mos kelmaydigan tarzda bajaradi, ya'ni qobiq buyruqni keyingi buyruqni bajarishdan oldin tugatish uchun kutmaydi.

Orqa fonda buyruqni bajarish formati:

command1 & [buyruqlar2 & ...]

Agar qobiq interaktiv bo'lmasa, mos kelmaydigan buyruqning standart usuli / dev / null ga o'rnatiladi

Ro'yxat - umuman gapirish

Ro'yxat yangi qatorlar, nuqta-vergullar yoki ampersandlar bilan ajratilgan nol yoki undan ortiq buyruqlar ketma-ketligi va ixtiyoriy ravishda ushbu uchta belgidan biri bilan tugatilgan. Ro'yxatdagi buyruqlar yozib qo'yilgan tartibda amalga oshiriladi. Agar buyruq ampersand tomonidan bajarilsa, qobiq buyruqni ishga tushiradi va darhol keyingi komandaga o'tadi; aks holda, keyingi buyruqqa o'tishdan oldin buyruqlar bekor qilishini kutadi.

Qisqa o'chiruvchi ro'yxat operatorlari

`` && '' va `` || '' AND-OR list operatorlari. `` && '' Birinchi buyruqni bajaradi va keyin ikkinchi buyruqni bajaradi, agar birinchi buyruqning chiqish holati nol bo'lsa. `` | '', shunga o'xshash, lekin ikkinchi buyruqni bajaradi, agar birinchi buyruqning chiqish holati nolga teng bo'lsa. `` va \ '' va `` || '' ikkalasining ham bir xil ustunlikka ega.

Flow-Control Constructs - agar bo'lsa, ish uchun

If komutining sintaksisi

agar ro'yxat bo'lsa
keyin ro'yxat
[elif ro'yxati
keyin ro'yxat] ...
[boshqa ro'yxat]
fi

Vaqt buyrug'i sintaksisi

ro'yxatida
ro'yxatni bajaring
bajarildi

Birinchi ro'yxatning chiqish holati nol bo'lsa, ikkala ro'yxat bir necha marta bajariladi. Buyruq shunga o'xshash qadar, lekin so'z o'rniga qadar bo'lgan vaqtgacha davom etadi, bu birinchi ro'yxatning chiqish holati nolga qadar takrorlanishiga olib keladi.

Buyruqning sintaksisi

so'zda o'zgaruvchan ...
ro'yxatni bajaring
bajarildi

So'zlar kengaytirildi va keyin ro'yxat har bir so'zga o'zgaruvchan o'zgarmaydigan bilan ketma-ket amalga oshiriladi. bajarish va bajarish `` {`'va` `}' 'bilan almashtirilishi mumkin.

Tanaffus va davom etish buyrug'i sintaksisi

sindirish [num]
davom [num]

Ortingizga aylantirilganda, yoki raqamni o'chirish uchun eng raqamni yakunlanadi. Davomiy davom etuvchi pastadirning keyingi iteratsiyasi bilan davom eting. Ular qurilgan buyruqlar sifatida qo'llaniladi.

Ilova buyrug'i sintaksisi

Ijobiy so'z
naqsh ro'yxati);
...
Esac

Chizma, aslida, bir yoki bir nechta naqsh bo'lishi mumkin (keyinchalik tasvirlangan "Shell naqshlari" ga qarang).

Birgalikda buyruqlarni guruhlash

Buyruqlar ham yozilishi bilan guruhlangan bo'lishi mumkin

(ro'yxat)

yoki

{ro'yxat;

Ularning birinchisi pastki qismdagi buyruqlarni bajaradi. (Ro'yxatga) guruhlangan tuzilgan buyruqlar joriy qobiqga ta'sir qilmaydi. Ikkinchi shakl boshqa bir qobiqni urish emas, shuning uchun biroz samarali bo'ladi. Birgalikda buyruqlarni guruhlash, ular o'zlarining chiqishlarini bir dastur bo'lib, ularga yo'naltirishga imkon beradi:

{printf salom; printf dunyosi \ n ";}> tabriklash

Vazifalar

Funktsiyaning ta'rifi sintaksisi

name () buyrug'iga qarang

Funktsiya ta'rifi - bajariladigan so'z; bajarilganida u ism nomidagi funksiyani o'rnatadi va noldan chiqish holatini qaytaradi. Buyruq odatda "{" va "` "} orasida

Argumentlar mahalliy funktsiyadan foydalanib funksiyaga mahalliy deb e'lon qilinishi mumkin. Bu funksiyaning birinchi ifodasi bo'lib ko'rinishi kerak va sintaksisi bu

mahalliy [o'zgarmaydigan | -] ...

Mahalliy tuzilgan buyruq sifatida qo'llaniladi.

O'zgaruvchini lokal deb hisoblaganingizda, u boshlang'ich qiymatni egallaydi va agar mavjud bo'lsa, atrofdagi maydonda bir xil nomdagi o'zgaruvchidan chetlatilgan va o'qiladi bayroqlarni belgilaydi. Aks holda, o'zgaruvchilar dastlab o'rnatilmaydi. Qobiq dinamik miqyosni qo'llaydi, shuning uchun funktsiyani x funktsiyasi funktsiyasini f funksiyasini bajaradigan funktsiyaga aylantirsa, u holda g funktsiyasini g deb ataydi, x ichida joylashgan x o'zgaruvchiga havolalar x f ichida e'lon qilingan o'zgaruvchining x .

Funktsiya qaytarilganda funktsiyadagi o'rnatilgan funktsiyani dastlabki qiymatlariga qaytarish uchun o'zgartiriladigan "-" "mahalliy" har qanday qobiqning tanlovini amalga oshirish mumkin.

Qaytaring buyrug'i sintaksisi

qaytish [exitstatus

Joriy ijro etuvchi funktsiyani tugatadi. Qaytish ichki buyruqlar sifatida amalga oshiriladi.

Argumentlar va parametrlar

Qobiq bir qator parametrlarni saqlaydi. Ism bilan ko'rsatilgan parametrga o'zgaruvchi deyiladi. Ishga tushganda, qobiq barcha muhit o'zgaruvchilarini qobiqli o'zgaruvchiga aylantiradi. Yangi o'zgaruvchilar forma yordamida belgilanishi mumkin

name = qiymat

Foydalanuvchilar tomonidan belgilanadigan o'zgaruvchilar faqat alifbo, sonlar va pastki chiziqlardan tashkil topgan ismga ega bo'lishi kerak, ulardan birinchisi soni bo'lmasligi kerak. Parametrni shuningdek, quyida ko'rsatilganidek, raqam yoki maxsus belgilar bilan belgilash mumkin.

Joylashgan parametrlar

Joylashtiruvchi parametr raqam (n> 0) bilan belgilangan parametrdir. Qobiq bularni dastlabki buyruq qatori argumentlarining qadriyatlariga qo'yadi. O'rnatilgan (1) o'rnatilgan yoki ularni o'rnatish uchun ham foydalanish mumkin.

Maxsus parametrlar

Maxsus parametr - quyidagi maxsus belgilar bilan ko'rsatilgan parametr. Parametrning qiymati uning belgisining yonida berilgan.

*

Joylashtiruvchi parametrlarga birdan boshlanib, kengaytiriladi. Kengayish er-xotin tirnoqli satrda sodir bo'lganda, IFS o'zgaruvchining birinchi belgisi bilan ajratilgan har bir parametr qiymati yoki IFS o'rnatilmagan bo'lsa, bilan bitta maydonga kengayadi.

@

Joylashtiruvchi parametrlarga birdan boshlanib, kengaytiriladi. Kengayish er-xotin tirnoq ichida sodir bo'lganda, har bir pozitsiya parametri alohida argument sifatida kengayadi. Agar joylashuv parametrlari bo'lmasa, @ ning kengayishi, hatto ikkala tirnoqli bo'lsa ham, nolinchi argumentlar hosil qiladi. Buning asosiy sababi, masalan, agar $ 1 "abc" va $ 2 "def ghi" bo'lsa, Qq $ @ ikkita argumentlarga kengaytiriladi:

abc dd ghi

#

Joylashtiruvchi parametrlar soniga qarab kengayadi.

?

Eng yangi quvur liniyasining chiqish holatini kengaytiradi.

- (Hyphen.)

Joriy variant bayroqlarini (bitta harfli variant nomlari mag'lubiyatga biriktirilgan) chaqiruvda ko'rsatilgandek, o'rnatilgan ichki buyruq yoki katak tomonidan yopiq tarzda kengaytiradi.

$

So'ralgan qobiqning jarayon identifikatoriga kengayadi. Subhell parvarish qiymati ota-ona sifatida saqlanadi.

!

Joriy qobiqdan bajarilgan so'nggi fon buyrug'ining jurnali identifikatoriga kengayadi. Bir quvur liniyasi uchun jarayon identifikatori quvur ichidagi oxirgi buyruqdir.

0 (nol.)

Shell yoki shell skript nomini kengaytiradi.

So'zlarni kengaytirish

Ushbu moddada so'zlar bilan ifodalangan turli xil kengaytmalar tasvirlangan. Keyinchalik tushuntirilgandek, barcha so'zlar har bir so'zda bajarilmaydi.

Tilde kengaytmalari, parametr kengaytmalari, buyruqlar almashtirishlari, arifmetik kengayishlar va bitta so'z bilan yuz beradigan so'zni olib tashlashlar bitta maydonga kengayadi. Faqat bitta so'zdan bir nechta maydonlar yaratishingiz mumkin bo'lgan maydonlarni ajratish yoki yo'lning nomi kengaytirilishi. Ushbu qoida uchun yagona istisno yuqorida bayon qilinganidek, ikkita tirnoq ichida @ maxsus parametrning kengaytirilishi.

So'zni kengaytirish tartibi:

  1. Tilde kengayish, parametrlarni kengaytirish, komandani o'zgartirish, arifmetik kengaytirish (ularning hammasi bir vaqtning o'zida yuzaga keladi).
  2. Yarim tanaffus IFS o'zgaruvchisi bo'sh bo'lmasa, (1) bosqichida hosil qilingan maydonlar bo'yicha amalga oshiriladi.
  3. Pathname kengayish (agar o'rnatilgan bo'lsa, - f amal qiladi).
  4. Iqtibos olib tashlash.

$ Belgisi parametrlarni kengaytirish, buyruqni almashtirish yoki arifmetik baholashni joriy qilish uchun ishlatiladi.

Tilde kengayishi (foydalanuvchi katalogini almashtirish)

Chizilgan tilde belgisidan (~) boshlangan so'z tilde kengayishiga ta'sir qiladi. Chiziqqa (/) yoki so'z oxirigacha bo'lgan barcha belgilar foydalanuvchi nomi sifatida ko'rib chiqiladi va foydalanuvchi uy katalogi bilan almashtiriladi. Agar foydalanuvchi nomi noto'g'ri bo'lsa (~ / foobar da), Tilde indeksining qiymati (joriy foydalanuvchining uy katalogi) qiymatiga almashtiriladi.

Parametrni kengaytirish

Parametrlarni kengaytirish formati quyidagicha:

'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'yoki' '' '' '' tirnash xususiyati bilan yoki qo`ldan berilgan mag`inada qo`ng'iroq qilinmaguncha va barcha arifmetik kengaytmali belgilar, buyruqlar almashinuvi va o`zgaruvchan kengaytmaguncha barcha belgilar mavjud bo`lsa, `` `` `bilan mos keladigan

Parametrlarni kengaytirish uchun eng oddiy shakl:

Parametr mavjud bo'lsa, qiymati almashtiriladi.

Parametr nomi yoki belgisi bir nechta raqamli joylashuv parametrlari yoki parametrni nomning bir qismi sifatida talqin qilinishi mumkin bo'lgan belgidan keyin ixtiyoriy bo'lgan brauzerlarda berilishi mumkin. Ikkala tirnoq ichida parametr kengayishi bo'lsa:

  1. Kengayish natijalarida pathname kengayishi amalga oshirilmaydi.
  2. Kengayish natijalari bo'yicha maydonni ajratish amalga oshirilmaydi, bundan tashqari @.

Bundan tashqari, parametrlarni kengaytirish quyidagi formatlardan biri yordamida o'zgartirilishi mumkin.

Standart qiymatlardan foydalaning. Parametr belgilanmagan yoki null bo'lsa, so'zning kengayishi o'zgaradi; aks holda, parametr qiymati o'zgaradi.

Standart qiymatlarni belgilash. Parametr belgilanmagan yoki bo'sh bo'lsa, so'zning kengayishi parametrga tayinlanadi. Barcha holatlarda parametrning yakuniy qiymati almashtiriladi. Shu tarzda faqat o'zgaruvchan parametrlar yoki maxsus parametrlarni belgilash mumkin emas.

Null yoki Unset bo'lsa xatoni ko'rsating. Agar parametr belgilansa yoki null bo'lsa, so'zning kengayishi (yoki so'z ifodalangan bo'lsa, uni o'chirib yuboradi) standart xatoga yoziladi va qobiq nolga teng bo'lmagan holatda chiqadi. Aks holda, parametr qiymati o'zgaradi. Interaktiv qobiqdan chiqish kerak emas.

Muqobil qiymatdan foydalaning. Parametr belgilanmagan yoki null bo'lsa, null o'zgaradi; Aks holda, so'z kengaytiriladi.

Oldindan ko'rsatilgan parametr kengaytmalarida, formatdagi yo'g'on ichakdan foydalanish noto'g'ri o'rnatilgan yoki null bo'lgan parametr uchun testda natijani beradi; yo'g'on ichakning etishmovchiligi faqat sozlanmagan parametrni sinovdan o'tkazadi.

Matn uzunligi. Parametr qiymatining belgilar uzunligi.

Quyidagi to'rtta parametrni kengaytirish usuli substringni qayta ishlashni ta'minlaydi. Har bir holatda, naqshlarni baholash uchun naqsh xaritasi belgisi (Shell naqshlari) muntazam ifodalangan eslatmalar o'rniga ishlatiladi. Agar parametr * yoki @ bo'lsa, kengayish natijasi aniqlanmagan. To'liq parametrni kengaytirish mag'lubiyatini ikkita tirnoq ichiga kiritish to'rtta naqshli belgilarning kvotalanishiga olib kelmasa, braxsdagi belgi-atvorda bu ta'sir ko'rsatiladi.

Kichik o'lchamdagi modelni olib tashlash. So'z naqsh chiqarish uchun kengaytirilgan. Parametrni kengaytish parametr bilan yakunlanadi, naqsh bilan o'chirilgan sonikaning eng kichik qismi o'chiriladi.

Eng katta Suffix Pattern'ni olib tashlang. So'z naqsh chiqarish uchun kengaytirilgan. Parametrni kengaytgandan so'ng, parametr bilan yakunlanadi, naqsh bilan o'chirilgan sonikaning eng katta qismi o'chiriladi.

Eng kichik prefiksdagi modelni olib tashlash. So'z naqsh chiqarish uchun kengaytirilgan. Parametrni kengaytish parametr bilan yakunlanadi, oldingi sonning eng kichik qismi naqsh bilan o'chiriladi.

Eng katta prefiks nusxasini olib tashlang. So'z naqsh chiqarish uchun kengaytirilgan. Parametrni kengaytish keyinchalik parametrga olib keladi, prefiksning eng katta qismi esa o'chirilgan naqsh bilan mos keladi.

Buyruqlarni almashtirish

Buyruqning o'rnini bosish komandaning buyrug'i nomi o'rniga qo'yiladigan komandaning chiqishi imkonini beradi. Buyruqni almashtirish buyrug'i quyidagi tarzda qo'shilsa iborat:

$ (buyruqlar)

yoki Po `` backquoted '' versiyasi Shaxsiy:

`Buyruq '

Qobiq buyruqni almashtirishni subhome muhitida bajarish va komandaning standart chiqishi bilan komandani almashtirishni almashtirish, almashtirish oxiridagi bir yoki bir necha yangi satrlarni ketma-ketligini olib tashlab kengaytiradi. (Qabul qilingan s chiqishi tugagunga qadar o'chirilmaydi, ammo maydonchani ajratish vaqtida ular IFS qiymatiga va amalda quotingga qarab sga tarjima qilinishi mumkin.)

Aritmetik kengayish

Aritmetik kengayish arifmetik ifodani baholash va uning qiymatini o'zgartirish uchun mexanizmni ta'minlaydi. Aritmetik kengaytirish formati quyidagicha:

$ ((ifoda))

So'z iborani ifodalashda alohida-alohida ko'rib chiqilmasdan, ikkilamchi tirnoqlarda bo'lgani kabi muomala qilinadi. Qobiq parametr kengaytmasi, buyruqni almashtirish va takliflarni olib tashlash uchun ifodadagi barcha belgilarni kengaytiradi.

So'ngra, qobiq bu so'zni arifmetik ifodalash deb hisoblaydi va so'zning qiymatini o'zgartiradi.

Oq bo'shliqni ajratish (maydalanish)

Parametrlarni kengaytganidan so'ng, komandani almashtirish va arifmetik kengayishdan so'ng, qobiq maydonlarni bo'linish uchun ikkita tirnoqlarda yuzaga kelmagan kengayish va almashtirish natijalarini tekshiradi va bir nechta maydonlar natija berishi mumkin.

Qobiq IFSning har bir belgi bilan chegarachi sifatida foydalanadi va parametrlarni kengaytirish va buyruqni almashtirish natijalarini maydonchalarga bo'lish uchun cheklash vositalarini qo'llaydi.

Pathname kengayishi (fayl nomi ishlab chiqarish)

- F belgisi belgilanmagan bo'lsa, so'zlarni bo'linish tugallangandan so'ng fayl nomini ishlab chiqarish amalga oshiriladi. Har bir so'z bir nechta naqshlar sifatida qaraladi, slaydlar bilan ajratiladi. Kengayish jarayoni barcha nusxalarni namunaga mos keladigan magistral bilan almashtirish yo'li bilan yaratilishi mumkin bo'lgan barcha fayllar nomlari bilan so'zni o'zgartiradi. Buning ikkita cheklovi bor: birinchi navbatda, naqsh chiziqni o'z ichiga olgan mag'lubiyatga mos kelmaydi, ikkinchidan, naqsh bir nusxadagi birinchi belgi bo'lmasa, bir davrdan boshlangan mag'lubiyatga mos kelmaydi. Keyingi qism Pathname Expansion va case (1) buyrug'i uchun ishlatiladigan naqshlarni tavsiflaydi.

Shell naqshlari

Bir naqsh o'zlarini va meta-belgilarga mos keladigan oddiy belgilarni o'z ichiga oladi. Meta-belgilar «`! »,« `», «` »,« `», «` »Va« ['' Ushbu belgilar, agar ular keltirilsa, maxsus ma'nolarini yo'qotadi. Buyruq yoki o'zgaruvchan almashtirish amalga oshirilganda va dollar belgisi yoki orqa tirnoqlari er-xotin kvotalangan bo'lmasa, buyrug'ning qiymati yoki buyrug'i chiqishi ushbu belgilar bo'yicha skanerlanadi va meta-belgilarga aylanadi.

Yulduzcha ("* *") har qanday belgi qatoriga mos keladi. Savol belgisi har qanday belgi bilan mos keladi. Chap burchakli (`` ['') belgilar sinfini tanishtiradi. Belgilar sinfining oxiri (`` `') bilan belgilanadi, agar` ``' 'nuqsonli bo'lsa, u `` [' 'belgi sinfini kiritmasdan emas, balki `` bilan mos keladi. Bir belgilar klassi kvadrat qavslar orasidagi belgilarga mos keladi. Bir qator belgi minus belgisi yordamida belgilanishi mumkin. Xarakter klassi belgilar sinfining birinchi belgi bilan ünlem belgisi bilan to'ldirilishi mumkin.

Belgilar sinfida "` `'' ni kiritish uchun uni ro'yxatdagi birinchi belgini (agar mavjud bo'lsa` ``! ') Kiriting. Kam manfiy belgilarni kiritish uchun, ro'yxatdagi birinchi yoki oxirgi belgini bajaring

Builtinlar

Ushbu bo'limda joylashtirilgan buyruqlar ro'yxati berilgan, chunki ular alohida operatsiyani bajarish mumkin bo'lmagan ba'zi operatsiyalarni bajarishi kerak. Bunga qo'shimcha ravishda, samaradorlik uchun yaratilishi mumkin bo'lgan boshqa buyruqlar ham bor (masalan, 1-yangr).

:

0 (rost) chiqish qiymatini qaytaradigan bo'sh buyruq.

. fayl

Belgilangan fayldagi buyruqlar qobiq tomonidan o'qiladi va bajariladi.

boshqa nom [ name [ = string ... ]]

Agar nom = string ko'rsatilsa, qobiq qiymat nomi bilan takrorlanadigan nomni belgilaydi Agar faqat ism belgilansa, taxallusning nomi qiymati yoziladi. Hech qanday argumentga ega bo'lmagan holda, takomillashtirilgan nomlar barcha belgilangan takomillashgan nomlarning nomlari va qiymatlarini yozishadi ( unalias- ga qarang )

bg [ ish] ...

Orqa fonda belgilangan ishlarni davom ettirish (yoki hech qanday ish berilmagan bo'lsa).

Buyruqning arg argumenti ...

Belgilangan ichki buyruqni bajarish. (Bu sizning ichki buyruqlaringiz bilan bir xil nomdagi qobiq funksiyasi mavjud bo'lganda foydalidir.)

CD [ katalog ]

Belgilangan katalogga o'tish (asl qiymati $ HOME) Agar CD buyrug'i uchun CDPATH yozuvi paydo bo'lsa yoki CDPATH qobig'i o'zgaruvchisi o'rnatilsa va katalog nomi slash bilan boshlanmasa, CDPATH da ko'rsatilgan katalog topiladi ko'rsatilgan katalog uchun. CDPATH formati PATH bilan bir xil. Interaktiv qobiqda cd buyrug'i foydalanuvchi tomonidan berilgan nomdan boshqacha bo'lsa, u aslida o'zgartirilgan katalog nomini chop etadi. Ular CDPATH mexanizmidan foydalanilgani yoki ramziy aloqa kesilganligi sababli farq qilishi mumkin.

eval string ...

Barcha argumentlarni bo'shliqlar bilan birlashtir. Keyin buyrug'i qayta ko'rib chiqiladi va amalga oshiriladi.

exec [ buyruq arg ... ]

Buyruq bajarilmasa, qobiq jarayoni belgilangan dastur bilan almashtiriladi (bu haqiqiy dastur bo'lishi kerak, qobiq qurilishi yoki funksiyasi emas). Exec buyrug'idagi har qanday yo'naltirilishlar doimiy ravishda belgilanadi, shuning uchun ular exec buyrug'i tugashi bilan tugatilmaydi.

chiqish [ exitstatus ]

Qobiq jarayonini tugatish. Exitstatus berilgan bo'lsa, u qobiqning chiqish holati sifatida ishlatiladi; aks holda oldingi buyruqning chiqish holati ishlatiladi.

eksport nomi ...

eksport-p

Ko'rsatilgan nomlar keyingi buyruqlar muhitida paydo bo'lishi uchun eksport qilinadi. O'zgaruvchini eksport qilmaslikning yagona usuli uni echishdir. Qobiq bir o'zgaruvchining qiymatini bir vaqtning o'zida yozilishi bilan eksport qilinishiga imkon beradi

eksport nomi = qiymat

Argumentlarsiz eksport buyrug'i barcha eksport qilinadigan parametrlarning nomlarini ro'yxatini ko'rsatadi. - P- parametr bilan chiqdi interaktiv bo'lmagan foydalanish uchun mos ravishda formatlanadi.

fc [- e tahrirlovchisi ] [ birinchi [ oxirgi ]]

fc -l [- nr ] [ birinchi [ so'nggi ]]

fc -s [ eski = yangi ] [ birinchi ]

Inklyuzivlar ro'yxatini tuzadi yoki o'zgartiradi va qayta ishga tushiradi, ilgari interaktiv qobiqga kiritilgan buyruqlar.

- muharriri

Buyruqlar tartibga solish uchun tahrirlovchisi tomonidan tayinlangan muharriridan foydalaning. Tahrirlash satrlari PATH o'zgaruvchisi orqali tekshirilishi kerak bo'lgan buyruqlar nomi. FCEDIT o'zgaruvchisidagi qiymat, ko'rsatilmagan bo'lsa - standart sifatida ishlatiladi. Agar FCEDIT bo'sh yoki o'rnatilmagan bo'lsa, EDITOR o'zgaruvchining qiymati ishlatiladi. Tahrirlovchining bo'shligi yoki unset bo'lsa, ed (1) tahrirlovchisi sifatida ishlatiladi.

-l (ell)

Ulardagi tahrirlovchini chaqirish o'rniga buyruqlarni yozing. Buyruqlar buyruqlar raqami oldidan har bir buyruq bilan - r bilan ta'sirlangan dastlabki va oxirgi operandlar ko'rsatilgan ketma-ketlikda yoziladi.

-n

-l bilan listelenirken buyruqlar raqamlarini bosamiz.

-r

Listedeki buyruqlar tartibini teskari (yoki - l yoki tahrirlangan (na - L - yoki - bilan )

-s

Buyruqni tahrirlovchiga taklif qilmasdan qayta bajaring.

birinchi bo'lib

oxirgi

Ro'yxat yoki tahrir qilish uchun buyruqlarni tanlang. Eriga oladigan oldingi buyruqlar soni HISTSIZE o'zgaruvchining qiymati bilan belgilanadi. Birinchi yoki oxirgi yoki har ikkalasining qiymati quyidagilardan biri hisoblanadi:

[+] son

Buyruqning raqamini ifodalovchi musbat son; Buyruq raqamlari - L parametr bilan ko'rsatilishi mumkin.

- son

Oldindan buyruqlar soni bajarilgan buyruqni bildiradigan salbiy kasr raqam. Masalan, -1 oldingi buyruq.

string

Ushbu magistral bilan boshlangan eng so'nggi kiritilgan buyruqni ko'rsatadigan satr. Eski = yangi operand bilan ham ko'rsatilmagan bo'lsa, - Birinchi operandning mag'lubiyat shakli ko'milgan teng belgini o'z ichiga olmaydi.

Quyidagi muhit o'zgaruvchilari fc bajarilishiga ta'sir qiladi:

FCEDIT

Foydalanish uchun muharrirning nomi.

Tanishing

Kirish mumkin bo'lgan oldingi buyruqlar soni.

fg [ ish ]

Belgilangan ishni yoki joriy ishni oldinga siljiting.

getopts optstring bor

Bell Labs-ga ega bo'lgan getopt (1) bilan chalkashmaslik uchun POSIX getopts buyrug'i.

Birinchi dalillar bir qator harf bo'lishi kerak, ularning har biri ixtiyoriy ravishda bitta nuqta bilan kuzatilishi mumkin va bu parametr argumentni talab qiladi. Belgilangan o'zgaruvchi ajralib qo'yilgan variantga o'rnatiladi.

Getopts buyrug'i bo'sh joyni o'z ichiga olgan argumentlarni ko'rib chiqish uchun eski getopt (1) yordam dasturini bekor qiladi.

O'rnatilgan gipotezalar parametrlarni ro'yxatidan variantlar va argumentlarni olish uchun ishlatilishi mumkin. So'rovnomada chaqirilganda oldingi variantning qiymatini var ( belgilangan varianti) ro'yxatidagi parametr mag'lubiyatidan ro'yxatga qo'yadi va uning indekslari OPTIND qobiqining o'zgaruvchisida joylashgan . Qobiq chaqirilganda OPTIND 1 ga o'rnatiladi. Agar argumentga ega bo'lsa, qo`pollarni qo`shimchani OPTARG qobig'ining o`zgaruvchisi bo`yicha joylashtiradi. Agar parametr tanlansa , OPTARG belgilanmaydi.

optstring tanlangan variantlar harflaridan iborat. Agar biror xatga nuqta qo'yilsa, parametrdan oq bo'shliq bilan ajralib turishi yoki bo'lmasligi mumkin bo'lgan argumentga ega bo'lishi kutiladi. Variantning belgisi kutilgandagina topilmasa, " getopts " o'zgaruvchining varianti "` "ga o'rnatadi, keyin esa OPTARGni ochib , chiqishni standart xatoga yo'llaydi . Barcha nuqsonlarni belgilashning birinchi xarakterini yo'g'on ichakni ko'rsatib, e'tiborga olinmaydi.

Nolga teng bo'lmagan qiymat oxirgi variantga yetganda qaytariladi. Agar qolgan argumentlar bo'lmasa, " getopts " maxsus variantga borib, "` "ni belgilaydi, aks holda u" `" ga boradi.

Quyidagi kod bo'lagi qanday qilib [a] va [b] ni tanlashi mumkin bo'lgan argumentlarni va argumentni talab qiladigan [c] variantini qanday ishlashi mumkinligini ko'rsatadi.

qotib qolganlar abc: f
qilish
holatda $ f
a | b) flag = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; chiqish 1 ;;
Esac
bajarildi
Shift '$ OPTIND - 1 ni tanlang

Ushbu kod quyidagi birini qabul qiladi:

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

hash-rv buyrug'i ...

Qobiq buyruqlarning joylarini eslab qoladigan xash jadvali saqlaydi. Hech qanday dalil bo'lmasa, hash buyrug'i ushbu jadvalning mazmunini chiqaradi. Oxirgi CD buyruqlaridan boshlab ko'rib chiqilmagan yozuvlar yulduzcha bilan belgilanadi; bu yozuvlar noto'g'ri bo'lishi mumkin.

Argumentlar bilan hash buyrug'i ko'rsatilgan funktslarni xash jadvalidan olib tashlaydi (agar ular funktsiyalar bo'lmasa) va ularni topadi. - V parametr bilan, hash buyruqlar manzillarini ularni topib yozishga undadi. - R parametr, hash buyrug'i, vazifalar tashqari, aralashgan jadvalidagi barcha yozuvlarni o'chirishga sabab bo'ladi.

jobid [ ish ]

Jarayon idlarini ishdagi jarayonlarni chop eting. Ish argumenti chiqarib yuborilsa, joriy ish ishlatiladi.

ish joylari

Ushbu buyruq, joriy qobiq jarayonining bolalari bo'lgan barcha fon jarayonlarini sanab o'tadi.

pwd

Joriy katalogni chop eting. O'rnatilgan buyruqlar bir xil dasturning dasturidan farq qilishi mumkin, chunki o'rnatilgan buyruqlar joriy katalog har safar uni qayta yozishdan ko'ra nima ekanligini eslaydi. Bu uni tezroq qiladi. Biroq, agar joriy katalog qayta nomlangan bo'lsa, pwd ning ichki versiyasi katalog uchun eski nomni chop etishda davom etadi.

[- P so'rovi ] [- r ] o'zgaruvchilarini o'qing ...

Buyruq, - p variantni belirtilmişse va standart kirish, bir terminalda bo'lsa, yazdırılır. Keyin standart kirishdan bir satr o'qiladi. Orqa chiziq chizig'i chiziqdan o'chiriladi va chiziq yuqoridagi so'zlarni ajratish bo'limida ko'rsatilganidek bo'linadi va parcha o'zgaruvchilarga tartibda beriladi. Kamida bitta o'zgaruvchi aniqlanishi kerak. O'zgaruvchilarga qaraganda ko'proq qismlar bo'lsa, qolgan qismlar (ularni ajratib turgan IFS belgilaridan tashqari) oxirgi o'zgaruvchiga tayinlanadi. Parchalarga nisbatan ko'proq o'zgaruvchilar mavjud bo'lsa, qolgan parametrlarga null satr beriladi. EOF kirishda duch kelmaguncha o'qilgan joy muvaffaqiyatga erishadi, bu holda xato qaytarilmaydi.

Odatiy bo'lib, - r variantni belirtilmediği ekan, «` », tasodifiy, bir qochish belgi sifatida harakat qiladi va quyidagi belgilar to'liq ma'noda davolash qilinadi. Agar teskari egri chiziq chizig'i chizilgan bo'lsa, teskari egri chiziqcha va chizilgan chiziq o'chiriladi.

Readonly name ...

Readonly-p

Belgilangan nomlar faqat o'qiladi deb belgilanadi, natijada ular keyinchalik o'zgartirilmaydi yoki o'rnatilmaydi. Qobiq bir o'zgaruvchining qiymatini bir vaqtning o'zida belgilashga imkon beradi, faqat o'qish bilan o'qiladi

Readonly name = qiymat

Argumentlarsiz o'qilmagan buyruqlar barcha o'qilgan parametrlarning nomlarini ro'yxatini ko'rsatadi. - P- parametr bilan chiqdi interaktiv bo'lmagan foydalanish uchun mos ravishda formatlanadi.

[{- options | + variantlar - arg ... ]

O'rnatilgan buyruq uch xil vazifani bajaradi.

Hech qanday argumentga ega bo'lmagan holda, barcha qobiqli o'zgaruvchilardan qiymatlari berilgan.

Variantlar berilgan bo'lsa, ushbu parametr bayroqlarini o'rnatadi yoki ularni Sx Argumentlar Ro'yxatga ishlov berish deb nomlangan qismda ta'riflanganidek tozalaydi.

O'rnatilgan buyrug'ning uchinchi qo'llashi qobiqning joylashuv parametrlarining qiymatlarini belgilangan arglarga o'rnatadi. Joylashtirilmagan parametrlarni biron bir variantni o'zgartirmagan holda o'zgartirish uchun birinchi parametr sifatida `` `- '' belgisini kiriting. Agar args mavjud bo'lmasa, o'rnatilgan buyruq barcha joylashish parametrlarini (" shift $ #."

o'zgaruvchan qiymat

Qiymati o'zgaruvchiga tayinlaydi. (Umuman olganda, setvar- setvarni ishlatish o'rniga o'zgarmaydigan = qiymatini yozish yaxshiroqdir, chunki nomlar parametr sifatida qabul qilingan o'zgaruvchiga qiymatlarni belgilaydi).

shift [ n ]

Joylashtirilgan parametrlarni n marta almashtirish. Shift , $ 1 qiymatini $ 2 qiymatiga $ 2 qiymatini $ 3 qiymatiga sozlang va shunga o'xshab, $ # qiymatini birma-bir kamaytiring. Agar n = joylashish parametrlari sonidan katta bo'lsa, shift xato xabari chiqaradi va qaytish holati 2 bilan chiqiladi.

marta

Qobiq uchun to'plangan foydalanuvchi va tizim vaqtlarini va qobiqdan ishlaydigan jarayonlar uchun chop eting. Qaytish holati 0 ga teng.

tuzoqqa qarshi harakat signali ...

Belgilangan signallardan har qanday vaqtda olinganligi uchun qobiqni ajratib ko'rsatish va harakatni bajarish. Signallar signal raqamlari bilan belgilanadi. Signal 0 bo'lsa, qobiq chiqqandan keyin harakat amalga oshiriladi. harakat bekor bo'lishi mumkin yoki "` - '' bo'lmasligi mumkin, chunki oldindan ko'rsatilgan signal bekor qilinishiga olib keladi va ikkinchisiga ko'rsatuv bajarilish sabab bo'ladi. Qobiq pastki qismini chetlab o'tgach , u asl holatga tuzoqqa tushirilgan (lekin e'tiborsizlanmagan) signallarni qayta tiklaydi . Tuzuvchi buyrug'i qobiqga kirishda e'tiborga olinmagan signallarga ta'sir qilmaydi.

kiriting [ nomi ... ]

Har bir ismni buyruq sifatida talqin qilib, buyruqlar qidirib topish ijozatini yozing. Mumkin bo'lgan ruxsatlar quyidagilardir: shell kalit so'z, taxallus, shell qurilgan , buyruq, kuzatilgan taxalluslar va topilmadi. Taxalluslar uchun taxalluslar kengaytiriladi; Buyruqlar va izlantirilgan taxalluslar uchun komandaning to'liq yo'l-yo'rig'i yoziladi.

ulimit [- H-S ] [- a-tfdscmlpn [ value ]]

Jarayonlarga murojaat qiling yoki qattiq yoki yumshoq limitlarni belgilang yoki yangi cheklovlarni belgilang. Qattiq chegara (hech qanday operatsiyani buzish uchun ruxsat berilmagan va uni kamaytirilgandan so'ng ko'tarilmasligi mumkin) va yumshoq chegara (bu jarayonning signalizatsiya qilinishi kerak, ammo o'ldirilmasligi kerak bo'lgan va ko'tarilishi mumkin bo'lgan) o'rtasida tanlash tanlov bilan amalga oshiriladi. bu bayroqlar:

-H

qattiq cheklovlarni belgilang yoki so'rang

-S

yumshoq cheklovlarni belgilash yoki so'roq qilish. Hech nima - H yoki - S belirtilmezse, yumshoq chegarasi ko'rsatiladi yoki har ikkala cheklov o'rnatiladi. Har ikkisi ham aniqlangan bo'lsa, oxirgi natijani oladi.

So'roq qilinadigan yoki o'rnatiladigan cheklashlar ushbu bayroqlardan har birini belgilash yo'li bilan tanlanadi:

-a

barcha mavjud limitlarni ko'rsatish

-t

protsessor vaqtini (sekundlarda) ko'rsatish yoki sozlash

-f

ko'rsatilishi yoki yaratilishi mumkin bo'lgan eng katta faylga (512 bayt bloklarda) cheklov o'rnatish

-d

jarayonning ma'lumotlar segmenti hajmiga limit qo'yish yoki ko'rsatish (kilobaytlarda)

-s

Jarayonning suyakka kattaligini ko'rsatish yoki chegaralashni o'rnatish (kilobaytlarda)

-c

ko'rsatilishi yoki ishlab chiqarilishi mumkin bo'lgan eng yirik yadro to'rttasi hajmini belgilash (512 bayt bloklarda)

-m

bir jildda ishlatilishi mumkin bo'lgan umumiy jismoniy xotirada cheklashni ko'rsatish yoki ko'rsatish (kilobaytlarda)

-l

jarayonni mlock (2) bilan kilobaytda qancha xotirada saqlashi mumkinligini ko'rsatish yoki sozlash

-p

ushbu foydalanuvchi bir vaqtning o'zida bo'lishi mumkin bo'lgan jarayonlar sonini ko'rsatish yoki cheklashni belgilash

-n

jarayonni bir vaqtning o'zida ochilishi mumkin bo'lgan raqamli fayllardagi cheklovni ko'rsatish yoki ko'rsatish

Agar ulardan hech biri aniqlanmasa, ko'rsatilgan yoki o'rnatiladigan fayl hajmi chegarasi. Agar qiymat ko'rsatilgan bo'lsa, limit o'sha raqamga o'rnatiladi; aks holda joriy limit ko'rsatiladi.

Ixtiyoriy jarayonning chegaralari sysctl (8) yordam dasturi yordamida ko'rsatilishi yoki o'rnatilishi mumkin.

umask [ maska ]

Umask qiymatini belgilang (umask (2) ga qarang), ko'rsatilgan sekundlik qiymatiga. Agar argument qoldirilmasa, umask qiymati yoziladi.

unalias [- a ] [ ism ]

Agar nom ko'rsatilgan bo'lsa, qobiq bu taxallusni olib tashlaydi. Agar - a ko'rsatilgan bo'lsa, barcha taxalluslar o'chiriladi.

nomini o'chirish ...

Belgilangan parametrlarga va funktsiyalar o'rnatilgan va unported. Agar berilgan nom o'zgarmaydigan va funktsiyaga mos keladigan bo'lsa, ham o'zgarmaydigan, ham funksiya o'rnatilmagan.

kutish [ ish ]

Belgilangan ishni bajarish uchun kutib turing va ishdagi so'nggi jarayonning chiqish holatini qaytaring. Agar argument qoldirilmasa, barcha ishlarni bajarish uchun kuting va noldan chiqish holatini qaytaring.

Buyruqni tahrirlash

Sh terminalda interaktiv tarzda foydalanilganda, joriy buyruq va buyruq tarixi (Sx Builtinsda fc- ni ko'ring) vi-mode buyruq qatorini tahrirlash yordamida tahrir qilish mumkin. Ushbu rejim vi men sahifasida tavsiflanganlarning pastki qismiga o'xshash buyruqlarni ishlatadi. "Set" -o vi buyrug'i vi-rejimda tartibga solish va "sh" ni joylashtirish rejimiga o'tish imkonini beradi. Vi-rejimi yoqilgan bo'lsa, sh-ni qo'shish tartibi va buyruq rejimi o'rtasida almashtirish mumkin. Tahrirlovchining to'liq bu erda tavsiflanmaganligi, keyinchalik esa keyingi hujjatda bo'lishi. Viy'a o'xshash: Aq ESC yozuvini buyruqni VI buyruqlar rejimiga tushiradi. Buyruq rejimida Aq ga qaytish, chiziqni qobiqqa o'tkazadi.

Muhim: shaxsiy kompyuteringizda buyruq qanday ishlatilishini ko'rish uchun man buyrug'ini ( % man ) ishlating.