Sh - Linux Command - Unix Command

NAME

bash - GNU Bourne-Again Shell

SINOPSIS

bash [options] [file]

DESKRIPSI

Bash adalah penterjemah bahasa arahan sh- serasi yang melaksanakan arahan membaca dari input standard atau dari fail. Bash juga menggabungkan ciri-ciri berguna dari shell Korn dan C ( ksh dan csh ).

Bash bertujuan untuk menjadi peneraju pelaksanaan spesifikasi Shell dan Spesifikasi Alat IEEE POSIX (Kumpulan Kerja IEEE 1003.2).

PILIHAN

Sebagai tambahan kepada opsyen shell tunggal aksara yang didokumenkan dalam perihalan perintah set builtin, bash menafsirkan pilihan berikut apabila ia digunakan:

-c string

Jika pilihan -c hadir, maka arahan dibaca daripada rentetan . Sekiranya terdapat hujah selepas rentetan , mereka ditugaskan ke parameter kedudukan, bermula dengan $ 0 .

-i

Jika pilihan -i hadir, shell adalah interaktif .

-l

Buat bash bertindak seolah-olah ia telah digunakan sebagai shell masuk (lihat INVOCATION di bawah).

-r

Jika pilihan -r hadir, shell menjadi terhad (lihat SHELL RESTRICTED di bawah).

-s

Sekiranya pilihan -s hadir, atau jika tiada hujah kekal selepas pemprosesan pilihan, maka arahan dibaca dari input standard. Pilihan ini membolehkan parameter kedudukan yang ditetapkan apabila menggunakan shell interaktif.

-D

Senarai semua rentetan rangkap berganda yang didahului oleh $ dicetak pada ouput standard. Ini adalah rentetan yang tertakluk kepada penterjemahan bahasa apabila locale semasa tidak C atau POSIX . Ini membayangkan pilihan -n ; tiada arahan akan dilaksanakan.

[- +] O [ shopt_option ]

shopt_option adalah salah satu pilihan shell yang diterima oleh shopl builtin (lihat COMMANDS SHELL BUILTIN di bawah). Jika shopt_option hadir, -O menetapkan nilai pilihan itu; + O tidak mengetepikannya. Jika shopt_option tidak dibekalkan, nama dan nilai pilihan shell yang diterima oleh shopt dicetak pada output standard. Jika pilihan penyerahan adalah + O , output dipaparkan dalam format yang boleh digunakan semula sebagai input.

A - menandakan berakhirnya pilihan dan melumpuhkan pemprosesan pilihan selanjutnya. Sebarang hujah selepas - dirawat sebagai nama fail dan hujah. Hujah - bersamaan dengan - .

Bash juga menafsirkan beberapa pilihan pelbagai aksara. Pilihan ini mesti muncul di baris arahan sebelum pilihan tunggal aksara untuk diiktiraf.

--dump-po-strings

Setaraf dengan -D , tetapi output dalam format fail GNU gettext (objek mudah alih).

--dump-string

Bersamaan dengan -D .

- membantu

Paparkan mesej penggunaan pada output standard dan keluar dengan jayanya.

- fail fail - fail

- fail failfile

Jalankan arahan dari fail dan bukan fail inisial peribadi ~ / .bashrc jika shell bersifat interaktif (lihat INVOCATION di bawah).

--log masuk

Bersamaan dengan -l .

- tidak mengendahkan

Jangan gunakan pustaka GNU readline untuk membaca baris arahan apabila shell bersifat interaktif.

--noprofile

Jangan baca sama ada fail permulaan sistem / etc / profil atau mana-mana fail permulaan peribadi ~ / .bash_profile , ~ / .bash_login , atau ~ / .profile . Secara lalai, bash membaca fail ini apabila ia digunakan sebagai shell masuk (lihat INVOCATION di bawah).

--norc

Jangan baca dan laksanakan fail pemasukan peribadi ~ / .bashrc jika shell adalah interaktif. Pilihan ini diaktifkan secara lalai jika shell dipanggil sebagai sh .

-

Tukar tingkah laku bash di mana operasi lalai berbeza daripada standard POSIX 1003.2 untuk dipadankan dengan standard ( posix mode ).

- terhad

Cangkang menjadi terhad (lihat SHELL RESTRICTED di bawah).

- memerlukan rpm

Buat senarai fail yang diperlukan untuk skrip shell untuk dijalankan. Ini bermakna '-n' dan tertakluk kepada batasan yang sama seperti pemeriksaan pemeriksaan ralat masa penyusunan; Ujian backtick, [], dan eval tidak diuraikan supaya beberapa kebergantungan mungkin terlepas. - bersamaan dengan -v .

- pengalihan

Tunjukkan maklumat versi untuk contoh ini bash pada output standard dan keluar berjaya.

ARGUMEN

Sekiranya hujah kekal selepas pemprosesan pilihan, dan tidak ada pilihan -c atau -s yang disediakan, hujah pertama dianggap sebagai nama fail yang mengandungi perintah shell. Jika bash digunakan dalam fesyen ini, $ 0 ditetapkan ke nama fail, dan parameter kedudukan ditetapkan ke hujah yang selebihnya. Bash membaca dan melaksanakan arahan dari fail ini, kemudian keluar. Status keluar Bash ialah status keluar dari arahan terakhir yang dilaksanakan dalam skrip. Sekiranya tiada arahan dilaksanakan, status keluar adalah 0. Percubaan pertama dibuat untuk membuka fail dalam direktori semasa, dan, jika tiada fail dijumpai, shell mencari direktori dalam PATH untuk skrip.

INVOKASI

Satu shell log masuk ialah karakter pertamanya yang bernombor sifar ialah - , atau yang dimulakan dengan opsyen --login .

Satu cawangan interaktif adalah satu dimulakan tanpa hujah bukan pilihan dan tanpa pilihan -c yang input dan keluaran standard disambungkan ke terminal (seperti ditentukan oleh isatty (3)), atau satu dimulakan dengan pilihan -i . PS1 ditetapkan dan $ - termasuk saya jika bash adalah interaktif, membenarkan skrip shell atau fail permulaan untuk menguji keadaan ini.

Perenggan berikut menggambarkan bagaimana bash menjalankan fail permulaannya. Jika mana-mana fail ada tetapi tidak dapat dibaca, bash melaporkan ralat. Tildes diperluas dalam nama fail seperti yang dijelaskan di bawah di bawah Pengembangan Tilde dalam bahagian EXPANSION .

Apabila bash dipanggil sebagai shell masuk interaktif, atau sebagai shell tidak interaktif dengan pilihan --login , ia pertama kali membaca dan melaksanakan arahan daripada fail / etc / profile , jika fail itu wujud. Selepas membaca fail itu, ia mencari ~ / .bash_profile , ~ / .bash_login , dan ~ / .profile , dalam perintah itu, dan membaca dan melaksanakan perintah dari yang pertama yang ada dan boleh dibaca. Opsyen --noprofile boleh digunakan apabila shell mula menghalang tingkah laku ini.

Apabila shell masuk keluar, bash membaca dan melaksanakan perintah dari fail ~ / .bash_logout , jika wujud.

Apabila sebuah shell interaktif yang bukan shell login dimulakan, bash berbunyi dan melaksanakan perintah dari ~ / .bashrc , jika file itu ada. Ini mungkin dihalang dengan menggunakan pilihan --norc . Pilihan file --file fail akan memaksa bash untuk membaca dan melaksanakan arahan daripada fail dan bukan ~ / .bashrc .

Apabila bash bermula bukan secara interaktif, untuk menjalankan skrip shell, contohnya, ia mencari pembolehubah BASH_ENV dalam persekitaran, memperluaskan nilainya jika terdapat di sana, dan menggunakan nilai diperluas sebagai nama fail untuk membaca dan melaksanakan . Bash berkelakuan seolah-olah perintah berikut telah dilaksanakan:

jika [-n "$ BASH_ENV"]; kemudian. "$ BASH_ENV"; fi

tetapi nilai pemboleh ubah PATH tidak digunakan untuk mencari nama fail.

Jika bash dipanggil dengan nama sh , ia cuba meniru tingkah laku permulaan versi sejarah sh sedapat mungkin, sambil mematuhi piawaian POSIX juga. Ketika digunakan sebagai shell masuk interaktif, atau shell tidak interaktif dengan pilihan --login , pertama kali cuba membaca dan melaksanakan perintah dari / etc / profile dan ~ / .profile , dalam urutan itu. Opsyen noprofile boleh digunakan untuk menghalang tingkah laku ini. Apabila digunakan sebagai shell interaktif dengan nama sh , bash mencari pemboleh ubah ENV , memperluas nilainya jika ditakrifkan, dan menggunakan nilai diperluas sebagai nama fail untuk dibaca dan dilaksanakan. Oleh kerana shell yang digunakan sebagai sh tidak cuba membaca dan melaksanakan arahan dari sebarang fail permulaan lain, pilihan --rcfile tidak mempunyai kesan. Cakera tidak interaktif yang dipanggil dengan nama sh tidak cuba untuk membaca sebarang fail permulaan yang lain. Apabila dipanggil sebagai sh , bash memasuki mod posix selepas fail permulaan dibaca.

Apabila bash dimulakan dalam mod posix , seperti dengan pilihan baris perintah - posix , ia mengikuti standard POSIX untuk fail permulaan. Dalam mod ini, cawangan interaktif mengembangkan pemboleh ubah ENV dan arahan dibaca dan dilaksanakan dari fail yang namanya adalah nilai diperluaskan. Tiada fail permulaan yang lain dibaca.

Percubaan Bash untuk menentukan ketika ia dijalankan oleh daemon shell jauh, biasanya rshd . Jika bash menentukan ia sedang dijalankan oleh rshd , ia membaca dan melaksanakan perintah dari ~ / .bashrc , jika fail itu ada dan boleh dibaca. Ia tidak akan melakukan ini jika dipanggil sebagai sh . Opsyen --norc boleh digunakan untuk menghalang tingkah laku ini, dan pilihan --rcfile boleh digunakan untuk memaksa fail lain untuk dibaca, tetapi rshd tidak secara umum memohon shell dengan pilihan tersebut atau membenarkannya ditentukan.

Jika shell bermula dengan id pengguna (kumpulan) yang berkesan tidak sama dengan id pengguna (kumpulan) yang sebenar, dan pilihan -p tidak dibekalkan, tiada fail permulaan dibaca, fungsi shell tidak diwarisi dari persekitaran, SHELLOPTS pembolehubah, jika ia muncul dalam persekitaran, diabaikan, dan id pengguna yang berkesan ditetapkan kepada id pengguna yang sebenar. Sekiranya pilihan -p diberikan pada penyertaan, tingkah laku permulaan adalah sama, tetapi id pengguna yang berkesan tidak ditetapkan semula.

DEFINISI

Definisi berikut digunakan sepanjang seluruh dokumen ini.

kosong

Ruang atau tab.

perkataan

Urutan aksara dianggap sebagai satu unit oleh shell. Juga dikenali sebagai token .

nama

Satu perkataan yang terdiri daripada watak-watak abjad angka dan garis bawah, dan bermula dengan aksara abjad atau garis bawah. Juga dirujuk sebagai pengecam .

metacharacter

Watak yang, apabila tidak disebutkan, memisahkan kata-kata. Salah satu perkara berikut:

| &; () <> tab ruang

pengendali kawalan

Tokoh yang melaksanakan fungsi kawalan. Ia adalah salah satu simbol berikut:

|| & &; ;; () |

PERKARA YANG BERKAITAN

Kata -kata yang disusun adalah kata -kata yang mempunyai makna khas untuk kulit. Kata-kata berikut diiktiraf sebagai dirizabkan apabila tidak disebutkan dan sama ada perkataan pertama arahan mudah (lihat SHELL GRAMMAR di bawah) atau perkataan ketiga kes atau untuk arahan:

! kes melakukan elif lain esac fi untuk fungsi jika dalam pilih kemudian sehingga semasa {} masa [[]]

SHELL GRAMMAR

Perintah mudah

Perintah mudah ialah urutan tugasan pembolehubah opsyenal diikuti dengan perkataan kosong dan peralihan kosong, dan ditamatkan oleh pengendali kawalan . Kata pertama menentukan arahan untuk dilaksanakan, dan diluluskan sebagai argumen sifar. Kata-kata yang tinggal diluluskan sebagai argumen kepada arahan yang dipanggil.

Nilai pulangan arahan mudah ialah status keluarnya, atau 128+ n jika arahan ditamatkan oleh isyarat n .

Pipelines

Pipa ialah urutan satu atau lebih arahan dipisahkan oleh aksara | . Format untuk saluran paip ialah:

[ masa [ -p ]] [! ] perintah [ | command2 ...]

Output standard perintah disambung melalui paip ke input standard perintah2 . Sambungan ini dilakukan sebelum sebarang peralihan yang ditentukan oleh arahan (lihat REDIRECTION di bawah).

Sekiranya perkataan reserved ! mendahului saluran paip, status keluar dari saluran paip itu TIDAK logik dari status keluar perintah terakhir. Jika tidak, status saluran paip adalah status keluar perintah terakhir. Cengkerang menunggu semua arahan dalam perancangan untuk menamatkan sebelum mengembalikan nilai.

Sekiranya perkataan yang dikhaskan untuk masa sebelum saluran paip, yang berlalu serta pengguna dan masa sistem yang digunakan oleh pelaksanaannya dilaporkan apabila saluran paip berakhir. Pilihan -p mengubah format output kepada yang dinyatakan oleh POSIX. Pembolehubah TIMEFORMAT boleh ditetapkan pada rentetan format yang menentukan bagaimana maklumat masa dipaparkan; lihat penerangan TIMEFORMAT di bawah Pembolehubah Shell di bawah.

Setiap arahan dalam saluran paip dijalankan sebagai proses yang berasingan (iaitu dalam subkelompok).

Senarai

Senarai adalah urutan satu atau lebih saluran paip yang dipisahkan oleh salah satu pengendali ; , & , && , atau || , dan dengan pilihannya ditamatkan oleh salah satu ; , & , atau .

Daripada senarai operator ini, && dan || mempunyai keutamaan yang sama, diikuti oleh ; dan &, yang mempunyai keutamaan yang sama.

Urutan satu atau lebih baris baru mungkin muncul dalam senarai dan bukan koma bertitik untuk membatasi perintah.

Sekiranya perintah ditamatkan oleh pengendali kawalan & , shell melaksanakan arahan di latar belakang dalam subkelompok. Cengkerang tidak menunggu perintah selesai, dan status pulangan adalah 0. Perintah yang dipisahkan oleh ; dilaksanakan secara berurutan; shell menunggu setiap perintah untuk menamatkan pada gilirannya. Status pulangan adalah status keluar perintah terakhir yang dilaksanakan.

Pengendali kawalan && dan || menandakan DAN senarai dan ATAU senarai. Senarai DAN mempunyai borang

command1 && command2

command2 dijalankan jika, dan hanya jika command1 mengembalikan status keluar sifar.

Senarai ATAU mempunyai borang

command1 || command2

command2 dijalankan jika dan hanya jika command1 mengembalikan status keluar tanpa sifar. Status pulangan senarai AND dan ATAU ialah status keluar dari arahan terakhir yang dilaksanakan dalam senarai.

Perintah Kompaun

Perintah kompaun adalah salah satu daripada berikut:

( senarai )

senarai dijalankan dalam subkelompok. Tugasan berubah dan perintah terbina yang mempengaruhi persekitaran shell tidak akan tetap berlaku setelah perintah selesai. Status pulangan adalah status keluar senarai .

senarai { list ; }

senarai hanya dilaksanakan dalam persekitaran shell semasa. senarai mesti ditamatkan dengan baris baru atau titik koma. Ini dikenali sebagai perintah kumpulan . Status pulangan adalah status keluar senarai . Perhatikan bahawa tidak seperti metakarakter ( dan ) , { dan } adalah kata - kata tersusun dan mesti berlaku di mana perkataan simpanan dibenarkan untuk diiktiraf. Oleh kerana mereka tidak menyebabkan pecah perkataan, mereka mesti dipisahkan dari senarai dengan ruang kosong.

(( ungkapan ))

Ungkapan dinilai berdasarkan peraturan yang diterangkan di bawah PENILAIAN ARITHMETIK . Sekiranya nilai ungkapan tidak sifar, status pulangan adalah 0; sebaliknya status pulangan adalah 1. Ini sama persis dengan membiarkan " ekspresi ".

[[ ungkapan ]]

Kembalikan status 0 atau 1 bergantung pada penilaian ekspresi ungkapan bersyarat. Ungkapan terdiri daripada primaries yang diterangkan di bawah di bawah EXPRESSIONS CONDITIONAL . Perkataan pemisahan kata dan laluan tidak dilakukan pada perkataan di antara [[ dan ]] ; pengembangan tilde, parameter dan pengembangan yang berubah-ubah, pengembangan aritmetik, penggantian perintah, penggantian proses, dan penyingkiran kutipan dilakukan.

Apabila operator == dan ! = Digunakan, rentetan di sebelah kanan pengendali dianggap sebagai corak dan dipadankan mengikut peraturan yang diterangkan di bawah di bawah Pencocokan Corak . Nilai pulangan adalah 0 jika rentetan sepadan atau tidak sepadan dengan corak, masing-masing, dan 1 sebaliknya. Mana-mana bahagian corak boleh dipetik untuk memaksa ia dipadankan sebagai rentetan.

Ungkapan boleh digabungkan menggunakan pengendali berikut, disenaraikan dalam susunan yang lebih rendah dari sebelumnya:

( ungkapan )

Mengembalikan nilai ungkapan . Ini boleh digunakan untuk mengatasi pendahuluan biasa pengendali.

! ungkapan

Benar jika ungkapan adalah palsu.

expression1 && expression2

Benar jika kedua-dua ungkapan dan ungkapan2 adalah benar.

expression1 || expression2 Benar jika sama ada expression1 atau expression2 adalah benar.

The && dan || pengendali tidak menilai ekspresi2 jika nilai ungkapan1 cukup untuk menentukan nilai pulangan keseluruhan ungkapan bersyarat.

untuk nama [ dalam perkataan ]; buat senarai ; dilakukan

Senarai perkataan berikut diluaskan, menghasilkan senarai item. Nama pembolehubah ditetapkan kepada setiap elemen senarai ini seterusnya, dan senarai dilaksanakan setiap kali. Sekiranya kata dalam tidak disisihkan, perintah untuk melaksanakan senarai sekali untuk setiap parameter kedudukan yang ditetapkan (lihat PARAMETERS di bawah). Status pulangan adalah status keluar perintah terakhir yang dilaksanakan. Sekiranya perluasan item yang mengikuti hasil dalam senarai kosong, tiada arahan dilaksanakan, dan status pulangan adalah 0.

untuk (( expr1 ; expr2 ; expr3 )); buat senarai ; dilakukan

Pertama, ungkapan ekspresi aritmetik dinilai berdasarkan peraturan yang diterangkan di bawah PENILAIAN ARITHMETIK . Ekspresi2 aritmetik kemudian dievaluasi secara berulang-ulang sehingga ia menilai kepada sifar. Setiap masa expr2 menilai nilai bukan sifar, senarai dilaksanakan dan ungkapan ekspresi aritmetik dinilai. Jika mana-mana ungkapan diabaikan, ia berkelakuan seolah-olah ia menilai 1. Nilai pulangan ialah status keluar perintah terakhir dalam senarai yang dilaksanakan, atau palsu jika mana-mana ungkapan tidak sah.

pilih nama [ dalam perkataan ]; buat senarai ; dilakukan

Senarai perkataan berikut diluaskan, menghasilkan senarai item. Set perkataan yang diperluas dicetak pada kesilapan standard, masing-masing didahului oleh nombor. Sekiranya perkataan tersebut diabaikan, parameter kedudukan dicetak (lihat PARAMETERS di bawah). Ganjaran PS3 kemudian dipaparkan dan baris dibaca dari input standard. Sekiranya garis terdiri daripada nombor yang sepadan dengan salah satu perkataan yang dipaparkan, maka nilai nama ditetapkan kepada perkataan tersebut. Jika garisan kosong, perkataan dan petikan dipaparkan semula. Jika EOF dibaca, perintah itu selesai. Sebarang bacaan nilai lain menyebabkan nama ditetapkan menjadi null. Garis membaca disimpan dalam pembolehubah REPLY . Senarai ini dilaksanakan selepas setiap pemilihan sehingga perintah pemutus dilaksanakan. Status exit pilih ialah status keluar perintah terakhir yang dilaksanakan dalam senarai , atau sifar jika tiada arahan telah dilaksanakan.

perkataan kes dalam [[(] corak [ | corak ]

Perintah kes mula-mula memperluaskan kata , dan cuba menyamainya dengan corak masing-masing, dengan menggunakan peraturan yang sama seperti untuk pengembangan nama laluan (lihat Pengembangan Pathname di bawah). Apabila perlawanan dijumpai, senarai yang sama akan dilaksanakan. Selepas perlawanan pertama, tiada pertandingan berikutnya dicuba. Status keluar adalah sifar jika tiada pola sepadan. Jika tidak, itu adalah status keluar arahan terakhir yang dilaksanakan dalam senarai .

jika senarai ; kemudian senarai; [ senarai elif ; kemudian senarai ; ] ... [ senarai lain ; fi

Senarai jika dilaksanakan. Jika status keluarnya sifar, senarai itu akan dilaksanakan. Jika tidak, setiap senarai elif dijalankan pada gilirannya, dan jika status exitnya adalah sifar, senarai yang sama akan dilaksanakan dan arahan selesai. Jika tidak, senarai lain dilaksanakan, jika ada. Status keluar adalah status keluar perintah terakhir yang dilaksanakan, atau sifar jika tiada keadaan diuji benar.

semasa senarai ; buat senarai ; dilakukan

sehingga senarai ; buat senarai ; dilakukan

Perintah sementara terus melaksanakan senarai do selagi arahan terakhir dalam senarai mengembalikan status keluar sifar. Perintah sehingga identik dengan perintah sementara , kecuali ujian itu ditolak; senarai lakukan dijalankan selagi arahan terakhir dalam senarai mengembalikan status keluar tanpa sifar. Status keluar sementara dan sehingga arahan adalah status keluar perintah senarai terakhir yang dilaksanakan, atau sifar jika tiada dilaksanakan.

[ fungsi ] nama () { senarai ; }

Ini mentakrifkan nama bernama fungsi. Tubuh fungsi adalah senarai arahan antara {dan}. Senarai ini dilaksanakan apabila nama ditentukan sebagai nama arahan yang mudah. Status keluar fungsi ialah status keluar dari arahan terakhir yang dilaksanakan di dalam badan. (Lihat FUNGSI di bawah.)

KOMENTAR

Dalam shell yang tidak interaktif, atau shell interaktif yang mana pilihan interaktif_comments ke gedung binaan didayakan (lihat SHELL BUILTIN COMMANDS di bawah), perkataan yang bermula dengan # menyebabkan perkataan itu dan semua aksara yang tinggal di baris itu untuk diabaikan. Cangkang interaktif tanpa pilihan interaktif berkomplikasi tidak membenarkan komen. Pilihan interaktif_comments dihidupkan secara lalai dalam cangkang interaktif.

KEPUTUSAN

Pengutipan digunakan untuk menghapus makna khas watak atau kata-kata tertentu pada cangkang. Pemfokiran boleh digunakan untuk melumpuhkan rawatan khas untuk aksara khas, untuk menghalang kata-kata tersimpan daripada dikenali sebagai sedemikian, dan untuk mencegah pengembangan parameter.

Setiap metakarakter yang disenaraikan di atas di bawah DEFINISI mempunyai makna khas untuk shell dan mesti dipetik jika ia mewakili dirinya sendiri.

Apabila kemudahan pengembangan sejarah arahan digunakan, watak pengembangan sejarah , biasanya ! , mesti dipetik untuk mencegah pengembangan sejarah.

Terdapat tiga mekanisme yang memetik: watak pelarian , petikan tunggal, dan petikan berganda.

Backslash tidak disebutkan ( \ ) adalah watak pelarian . Ia mengekalkan nilai literal watak seterusnya yang berikut, dengan pengecualian . Jika pasangan \ muncul, dan garis belakang tidak dikutip sendiri, \ dianggap sebagai sambungan baris (iaitu, ia dikeluarkan dari aliran input dan diabaikan dengan berkesan).

Menerapkan aksara dalam petikan tunggal mengekalkan nilai literal setiap aksara dalam petikan. Satu petikan tunggal tidak boleh berlaku di antara petikan tunggal, walaupun sebelum didahului oleh garis belakang.

Menutup aksara dalam petikan berganda mengekalkan nilai literal semua aksara dalam petikan, dengan pengecualian $ , ` , dan \ . Aksara $ dan ` mengekalkan maksud khas mereka dalam petikan berganda. Backslash mengekalkan erti khasnya hanya apabila diikuti oleh salah satu daripada aksara berikut: $ , ` , " , \ , atau . Satu petikan berganda boleh dipetik dalam sebut harga berganda dengan mendahului dengan backslash.

Parameter khas * dan @ mempunyai makna istimewa ketika dalam petikan berganda (lihat PARAMETERS di bawah).

Kata-kata bentuk $ ' string ' diperlakukan secara khusus. Perkataan itu mengembang kepada rentetan , dengan watak backslash-melarikan diri diganti seperti yang ditentukan oleh standard ANSI C. Urutan melarikan diri backslash, jika ada, diterangkan seperti berikut:

\ a

amaran (loceng)

\ b

backspace

\ e

watak melarikan diri

\ f

borang suapan

\ n

baris baru

\ r

pulangan kereta

\ t

tab mendatar

\ v

tab menegak

\\

backslash

'

petikan tunggal

\ nnn

watak lapan bit yang nilainya nilai oktal nnn (satu hingga tiga digit)

\ x HH

watak lapan bit yang nilainya ialah nilai heksadesimal HH (satu atau dua digit heksadesinya)

\ c x

watak kawalan- x

Hasil yang diperluaskan adalah satu-tunggal, seolah-olah tanda dolar tidak hadir.

Rentetan rentetan berganda yang didahului oleh tanda dolar ( $ ) akan menyebabkan rentetan diterjemahkan mengikut lokasi semasa. Jika tempat semasa adalah C atau POSIX , tanda dolar tidak diabaikan. Jika rentetan diterjemahkan dan diganti, penggantian tersebut disebutkan dua kali.

PARAMETER

Parameter adalah entiti yang menyimpan nilai. Ia boleh menjadi nama , nombor, atau salah satu aksara khas yang disenaraikan di bawah Parameter Khas . Untuk tujuan shell, pembolehubah ialah parameter yang dilambangkan oleh nama . Pembolehubah mempunyai nilai dan sifar atau lebih banyak sifat . Atribut ditugaskan menggunakan perintah mengumumkan terbina (lihat di bawah di dalam SHELL BUILTIN COMMANDS ).

Parameter ditetapkan jika diberi nilai. Rentetan null adalah nilai yang sah. Sebaik sahaja pembolehubah ditetapkan, ia mungkin tidak ditetapkan hanya dengan menggunakan perintah unset builtin (lihat COMMANDS SHELL BUILTIN di bawah).

Pemboleh ubah boleh diberikan kepada pernyataan bentuk

nama = [ nilai ]

Jika nilai tidak diberikan, pembolehubah diberikan kepada rentetan null. Semua nilai mengalami pengembangan tilde, parameter dan pengembangan berubah, perintah penggantian, pengembangan aritmetik, dan pengalihan kutipan (lihat PELANJA di bawah). Jika pemboleh ubah mempunyai atribut integer , maka nilai adalah tertakluk kepada pengembangan aritmetik walaupun pengembangan $ ((...)) tidak digunakan (lihat Pengembangan Aritmetik di bawah). Pemisahan kata tidak dilakukan, kecuali "$ @" seperti yang dijelaskan di bawah Parameter Khas . Pengembangan Pathname tidak dilakukan. Kenyataan penyerahan mungkin juga muncul sebagai hujah kepada perintah mengisytiharkan , mensetting , eksport , dibaca dan terbina setempat .

Parameter Posisi

Parameter kedudukan adalah parameter yang dilambangkan oleh satu atau lebih digit, selain daripada satu angka 0. Parameter kedudukan ditugaskan dari hujah shell apabila ia digunakan, dan boleh ditugaskan semula menggunakan perintah set builtin. Parameter kedudukan mungkin tidak diberikan kepada penyataan tugasan. Parameter positional diganti sementara apabila fungsi shell dijalankan (lihat FUNGSI di bawah).

Apabila parameter posisional yang terdiri daripada lebih daripada satu digit diperluaskan, ia mesti disertakan dalam pendakap (lihat EXPANSION di bawah).

Parameter Khas

Cangkang merawat beberapa parameter khusus. Parameter ini hanya boleh dirujuk; tugasan kepada mereka tidak dibenarkan.

*

Memperluas kepada parameter kedudukan, bermula dari satu. Apabila pengembangan berlaku dalam petikan berganda, ia memperluaskan kepada satu perkataan dengan nilai setiap parameter yang dipisahkan oleh watak pertama pemboleh ubah khas IFS . Iaitu, " $ * " bersamaan dengan " $ 1 c $ 2 c ... ", di mana c ialah watak pertama nilai pembolehubah IFS . Jika IFS tidak disetkan, parameter dipisahkan oleh ruang. Sekiranya IFS adalah batal, parameter akan disertakan tanpa pemisah intervensi.

@

Memperluas kepada parameter kedudukan, bermula dari satu. Apabila pengembangan berlaku dalam sebut harga berganda, setiap parameter mengembang kepada perkataan berasingan. Iaitu, " $ @ " bersamaan dengan " $ 1 " " $ 2 " ... Apabila tidak ada parameter posisional, " $ @ " dan $ @ berkembang kepada apa-apa (iaitu, ia dikeluarkan).

#

Mempluaskan bilangan parameter kedudukan dalam perpuluhan.

?

Memperluas ke status saluran paip ke hadapan yang paling baru dilaksanakan.

-

Memperluas bendera pilihan semasa seperti yang dinyatakan semasa penyerahan, oleh perintah set builtin, atau yang ditetapkan oleh shell itu sendiri (seperti pilihan -i ).

$

Memperluas ke ID proses shell. Dalam subseksyen (a), ia memperluaskan kepada ID proses shell semasa, bukan subkelompok.

!

Memperluas ke ID proses arahan yang paling baru dilaksanakan (asynchronous).

0

Memperluas nama skrip shell atau shell. Ini ditetapkan pada inisial shell. Jika bash dipanggil dengan fail arahan, $ 0 ditetapkan ke nama fail itu. Jika bash dimulakan dengan pilihan -c , maka $ 0 akan ditetapkan ke hujah pertama selepas rentetan akan dilaksanakan, jika ada. Jika tidak, ia ditetapkan kepada nama fail yang digunakan untuk memohon bash , seperti yang diberikan oleh argumen sifar.

_

Pada permulaan shell, tetapkan ke nama fail mutlak shell atau skrip shell yang dilaksanakan seperti yang diluluskan dalam senarai argumen. Selepas itu, berkembang kepada hujah terakhir kepada perintah sebelumnya, selepas pengembangan. Juga letakkan kepada nama fail penuh bagi setiap arahan yang dilaksanakan dan diletakkan di dalam lingkungan yang dieksport ke perintah itu. Apabila menyemak mel, parameter ini memegang nama fail mel yang sedang diperiksa.

Pembolehubah Shell

Pembolehubah berikut ditetapkan oleh shell:

BASH

Memperluaskan nama fail penuh yang digunakan untuk memanggil contoh bash ini .

BASH_VERSINFO

Pembolehubah array yang dibaca yang anggotanya memegang maklumat versi untuk contoh bash ini . Nilai yang diberikan kepada ahli array adalah seperti berikut:

BASH_VERSINFO [ 0]

Nombor versi utama ( pembebasan ).

BASH_VERSINFO [ 1]

Nombor versi kecil ( versi ).

BASH_VERSINFO [ 2]

Tahap patch.

BASH_VERSINFO [ 3]

Versi bina.

BASH_VERSINFO [ 4]

Status pelepas (contohnya, beta1 ).

BASH_VERSINFO [ 5]

Nilai MACHTYPE .

BASH_VERSION

Memperluaskan rentetan menggambarkan versi contoh ini bash .

COMP_CWORD

COMP_LINE

Barisan arahan semasa. Pembolehubah ini hanya tersedia dalam fungsi shell dan arahan luaran yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan (lihat Penyelesaian Programmable di bawah).

COMP_POINT

COMP_WORDS

Pembolehubah tatasusunan (lihat Array di bawah) yang terdiri daripada kata-kata individu dalam baris arahan semasa. Pembolehubah ini hanya tersedia dalam fungsi shell yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan (lihat Penyelesaian Programmable di bawah).

DIRSTACK

Pembolehubah array (lihat Arrays di bawah) yang mengandungi kandungan semasa stack direktori. Direktori muncul dalam timbunan mengikut susunan yang ditunjukkan oleh diret builtin. Menugaskan kepada ahli-ahli pembolehubah array ini boleh digunakan untuk mengubah suai direktori yang sudah ada dalam timbunan, tetapi builtd pushd dan popd mesti digunakan untuk menambah dan mengeluarkan direktori. Tugasan kepada pemboleh ubah ini tidak akan mengubah direktori semasa. Sekiranya DIRSTACK tidak disetkan, ia kehilangan sifat khasnya, walaupun ia semula.

EUID

Memperluas kepada ID pengguna yang berkesan pengguna semasa, yang diinisialisasikan pada permulaan shell. Pembolehubah ini adalah readonly.

FUNCNAME

Nama mana-mana fungsi shell yang sedang dijalankan. Pemboleh ubah ini wujud hanya apabila fungsi shell dijalankan. Tugasan kepada FUNCNAME tidak mempunyai kesan dan mengembalikan status ralat. Sekiranya FUNCNAME tidak disetkan, ia kehilangan sifat khasnya, walaupun ia semula.

GROUPS

Pembolehubah tatasusunan yang mengandungi senarai kumpulan yang pengguna sekarang adalah ahli. Tugasan kepada GROUPS tidak mempunyai kesan dan mengembalikan status ralat. Sekiranya GROUPS tidak ditetapkan, ia kehilangan sifat istimewanya, walaupun ia telah ditetapkan semula.

HISTCMD

Nombor sejarah, atau indeks dalam senarai sejarah, arahan semasa. Jika HISTCMD tidak disetkan, ia kehilangan sifat khasnya, walaupun ia akan ditetapkan semula.

HOSTNAME

Secara automatik ditetapkan kepada nama hos semasa.

HOSTTYPE

Tetapkan secara automatik kepada rentetan yang secara unik menggambarkan jenis mesin yang sedang dijalankan oleh bash . Lalai adalah bergantung kepada sistem.

LINENO

Setiap kali parameter ini dirujuk, shell menggantikan nombor perpuluhan yang mewakili nombor baris berturut-turut semasa (bermula dengan 1) dalam skrip atau fungsi. Apabila tidak dalam skrip atau fungsi, nilai yang diganti tidak dijamin menjadi bermakna. Jika LINENO tidak disetkan, ia akan kehilangan sifat khasnya, walaupun ia akan ditetapkan semula.

MACHTYPE

Secara automatik ditetapkan kepada rentetan yang menggambarkan sepenuhnya jenis sistem yang dijalankan oleh bash , dalam format sistem GNU cpu-syarikat standard. Lalai adalah bergantung kepada sistem.

OLDPWD

Direktori kerja terdahulu seperti yang ditetapkan oleh perintah cd .

OPTARG

Nilai hujah pilihan terakhir yang diproses oleh perintah getopts builtin (lihat COMMANDS SHELL BUILTIN di bawah).

OPTIND

Indeks hujah seterusnya akan diproses oleh perintah getopts builtin (lihat COMMANDS SHELL BUILTIN di bawah).

OSTYPE

Tetapkan secara automatik kepada rentetan yang menerangkan sistem operasi yang dijalankan oleh bash . Lalai adalah bergantung kepada sistem.

PIPESTATUS

Pembolehubah array (lihat Arrays di bawah) yang mengandungi senarai nilai status keluar dari proses dalam saluran paip latar depan yang paling baru dilaksanakan (yang mungkin mengandungi hanya satu arahan).

PPID

ID proses induk shell itu. Pembolehubah ini adalah readonly.

PWD

Direktori kerja semasa yang ditetapkan oleh perintah cd .

RANDOM

Setiap kali parameter ini dirujuk, integer rawak antara 0 dan 32767 dihasilkan. Urutan nombor rawak mungkin diisytiharkan dengan memberikan nilai kepada RANDOM . Jika RANDOM tidak ditetapkan, ia kehilangan sifat istimewanya, walaupun ia akan ditetapkan semula.

MEMBUAT

Tetapkan pada baris input yang dibaca oleh perintah terbina baca apabila tiada argumen yang dibekalkan.

SECONDS

Setiap kali parameter ini dirujuk, bilangan saat sejak invocation shell dikembalikan. Sekiranya nilai diberikan kepada SECONDS , nilai yang dikembalikan ke atas rujukan seterusnya ialah bilangan saat sejak tugasan ditambah dengan nilai yang diberikan. Sekiranya SECONDS tidak disetkan, ia kehilangan sifat istimewanya, walaupun ia ditetapkan semula.

SHELLOPTS

Senarai pilihan shell yang dipisahkan kolon. Setiap perkataan dalam senarai adalah hujah yang sah untuk pilihan -o kepada perintah set builtin (lihat COMMANDS SHELL BUILTIN di bawah). Pilihan yang terdapat dalam SHELLOPTS adalah yang dilaporkan oleh set -o . Jika pembolehubah ini berada dalam persekitaran apabila bash bermula, setiap pilihan shell dalam senarai akan diaktifkan sebelum membaca sebarang fail permulaan. Pembolehubah ini dibaca sahaja.

SHLVL

Ditingkatkan oleh setiap kali suatu contoh bash dimulakan.

UID

Memperluas kepada ID pengguna pengguna semasa, yang dimulakan pada permulaan shell. Pembolehubah ini adalah readonly.

Pembolehubah berikut digunakan oleh shell. Dalam beberapa kes, bash memberikan nilai lalai kepada pemboleh ubah; kes-kes ini dinyatakan di bawah.

BASH_ENV

Jika parameter ini ditetapkan apabila bash menjalankan skrip shell, nilainya ditafsirkan sebagai nama fail yang mengandungi perintah untuk menginisialisasi shell, seperti dalam ~ / .bashrc . Nilai BASH_ENV tertakluk kepada pengembangan parameter, penggantian perintah, dan pengembangan aritmetik sebelum ditafsirkan sebagai nama fail. PATH tidak digunakan untuk mencari nama fail yang dihasilkan.

CDPATH

Laluan carian untuk arahan cd . Ini adalah senarai direktori yang dipisahkan dengan kolon di mana shell mencari direktori tujuan yang ditentukan oleh perintah cd . Nilai sampel adalah ".: ~: / Usr".

COLUMNS

Digunakan oleh perintah bina pilih untuk menentukan lebar terminal apabila mencetak senarai pilihan. Secara automatik ditetapkan apabila menerima SIGWINCH.

MENINGKATKAN

Pembolehubah tatasusunan dari mana bash membaca kemungkinan penyelesaian yang dihasilkan oleh fungsi shell yang digunakan oleh kemudahan penyelesaian yang boleh diprogramkan (lihat Penyelesaian Programmable di bawah).

FCEDIT

Editor lalai untuk arahan fc builtin.

FIGNORE

Senarai akhir sufiks yang dipisahkan dengan kolon untuk diabaikan semasa menjalankan nama fail selesai (lihat READLINE di bawah). Nama fail yang sufiks sepadan dengan salah satu entri dalam FIGNORE dikecualikan daripada senarai nama fail yang dipadankan. Nilai sampel ialah ".o: ~".

GLOBIGNORE

Senarai corak yang dipisahkan dengan kolon yang menentukan set nama fail untuk diabaikan oleh pengembangan nama laluan. Jika nama fail dipadankan dengan corak pengembangan nama laluan juga sepadan dengan salah satu corak dalam GLOBIGNORE , ia dikeluarkan dari senarai padanan.

HISTCONTROL

Jika ditetapkan kepada nilai ruang ignores , baris yang bermula dengan aksara ruang tidak dimasukkan dalam senarai sejarah. Jika ditetapkan kepada nilai yang tidak diabaikan , baris yang sepadan dengan baris sejarah yang terakhir tidak dimasukkan. Nilai kebodohan menggabungkan dua pilihan. Sekiranya tidak ditetapkan, atau jika ditetapkan kepada sebarang nilai lain daripada yang di atas, semua baris yang dibaca oleh parser disimpan dalam senarai sejarah, tertakluk kepada nilai HISTIGNORE . Fungsi pembolehubah ini digantikan oleh HISTIGNORE . Garis kedua dan seterusnya arahan kompa berbilang baris tidak diuji, dan ditambah ke sejarah tanpa mengira nilai HISTCONTROL .

SEJARAH

Nama fail di mana sejarah arahan disimpan (lihat SEJARAH di bawah). Nilai lalai adalah ~ / .bash_history . Sekiranya tidak ditetapkan, sejarah arahan tidak disimpan apabila keluar shell interaktif.

HISTFILESIZE

Bilangan maksimum baris yang terkandung di dalam fail sejarah. Apabila pembolehubah ini diberi nilai, fail sejarah terpotong, jika perlu, tidak mengandungi lebih daripada bilangan baris tersebut. Nilai lalai ialah 500. Fail sejarah juga dipotong kepada saiz ini selepas menulis apabila keluar shell interaktif.

HISTIGNORE

Senarai corak yang dipisahkan oleh kolon yang digunakan untuk menentukan baris arahan yang harus disimpan pada senarai sejarah. Setiap pola berlabuh di awal baris dan mesti sepadan dengan baris lengkap (tiada implikasi ` * 'dilampirkan). Setiap pola diuji terhadap garisan selepas cek yang ditentukan oleh HISTCONTROL digunakan. Sebagai tambahan kepada aksara pencocokan corak shell biasa, ` & 'sepadan dengan baris sejarah sebelumnya. ` & 'boleh melarikan diri dengan menggunakan backslash; backslash dikeluarkan sebelum cuba perlawanan. Garis kedua dan seterusnya perintah kompa berbilang baris tidak diuji, dan ditambah ke dalam sejarah tanpa mengira nilai HISTIGNORE .

HISTSIZE

Bilangan arahan yang perlu diingat dalam sejarah arahan (lihat SEJARAH di bawah). Nilai lalai ialah 500.

HOME

Direktori rumah pengguna semasa; hujah lalai untuk arahan cd builtin. Nilai pembolehubah ini juga digunakan semasa melaksanakan pengembangan tilde.

HOSTFILE

Mengandungi nama fail dalam format yang sama dengan / etc / hosts yang perlu dibaca apabila shell perlu melengkapkan nama hos. Senarai penyempurnaan nama hos mungkin boleh diubah semasa shell berjalan; Penyelesaian nama hantaran masa berikutnya akan dicuba setelah nilai diubah, bash menambah kandungan fail baru ke senarai yang sedia ada. Jika HOSTFILE ditetapkan, tetapi tidak mempunyai nilai, cubaan bash untuk membaca / etc / hosts untuk mendapatkan senarai kemungkinan penyelesaian hos mungkin. Apabila HOSTFILE tidak ditetapkan, senarai nama hos akan dibersihkan.

IFS

Pemisah Bidang Dalaman yang digunakan untuk pemisahan perkataan selepas pengembangan dan untuk memecah garisan ke dalam kata-kata dengan arahan terbina dibaca . Nilai lalai ialah `` ''.

IGNOREEOF

Mengawal tindakan kulit interaktif apabila menerima watak EOF sebagai input tunggal. Jika ditetapkan, nilai itu adalah bilangan aksara EOF berturut-turut yang mesti ditaip sebagai aksara pertama pada baris input sebelum keluar bash . Jika pembolehubah wujud tetapi tidak mempunyai nilai numerik, atau tidak mempunyai nilai, nilai piawai ialah 10. Jika tidak wujud, EOF menandakan akhir input pada shell.

INPUTRC

Nama fail untuk fail startline readline , mengatasi lalai ~ / .inputrc (lihat READLINE di bawah).

LANG

Digunakan untuk menentukan kategori locale untuk mana-mana kategori yang tidak dipilih secara khusus dengan pembolehubah bermula dengan LC_ .

LC_ALL

Pembolehubah ini mengatasi nilai LANG dan sebarang pembolehubah LC_ yang menyatakan kategori locale.

LC_COLLATE

Pembolehubah ini menentukan urutan pengumpulan yang digunakan semasa menyusun keputusan pengembangan laluan laluan, dan menentukan kelakuan ekspresi rangkaian, kelas kesamaan, dan menyusun urutan dalam pengembangan nama laluan dan padanan corak.

LC_CTYPE

Pembolehubah ini menentukan tafsiran aksara dan tingkah laku kelas aksara dalam pengembangan nama laluan dan padanan corak.

LC_MESSAGES

Pembolehubah ini menentukan tempat yang digunakan untuk menterjemahkan rentetan dua baris yang didahului oleh $ .

LC_NUMERIC

Pembolehubah ini menentukan kategori locale yang digunakan untuk pemformatan nombor.

LINES

Digunakan oleh perintah builtin pilih untuk menentukan panjang lajur untuk senarai pilihan percetakan. Secara automatik ditetapkan apabila menerima SIGWINCH.

MAIL

Jika parameter ini ditetapkan kepada nama fail dan pemboleh ubah MAILPATH tidak ditetapkan, bash memberitahu pengguna kedatangan mel dalam fail yang ditentukan.

MAILCHECK

Menentukan seberapa kerap (dalam saat) cek bash untuk mel. Lalai adalah 60 saat. Apabila sudah waktunya untuk memeriksa mel, shell itu akan melakukannya sebelum memaparkan petikan utama. Sekiranya pemboleh ubah ini tidak ditetapkan, atau ditetapkan pada nilai yang bukan nombor yang lebih besar daripada atau sama dengan sifar, shell melumpuhkan pemeriksaan mel.

MAILPATH

Senarai nama fail kolon yang dipisahkan untuk diperiksa untuk mel. Mesej yang akan dicetak apabila mel tiba dalam fail tertentu boleh ditentukan dengan memisahkan nama fail dari mesej dengan `? '. Apabila digunakan dalam teks mesej, $ _ mengembang ke nama fail mel semasa. Contoh:

MAILPATH = '/ var / mail / bfox? "Anda mempunyai mel": ~ / shell-mail? "$ _ Mempunyai surat!"'

Bash membekalkan nilai lalai untuk pembolehubah ini, tetapi lokasi fail mel pengguna yang digunakan bergantung kepada sistem (cth. / Var / mail / $ USER ).

OPTERR

Jika ditetapkan kepada nilai 1, bash memaparkan mesej ralat yang dihasilkan oleh perintah getopts builtin (lihat COMMANDS SHELL BUILTIN di bawah). OPTERR diisytiharkan kepada 1 setiap kali shell digunakan atau skrip shell dilaksanakan.

PATH

Laluan carian untuk arahan. Ia adalah senarai direktori yang dipisahkan dengan kolon di mana shell mencari perintah (lihat PELAJAR PERJANJIAN di bawah). Laluan lalai adalah bergantung kepada sistem, dan ditetapkan oleh pentadbir yang memasang bash . Nilai biasa ialah `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

Sekiranya pemboleh ubah ini berada dalam persekitaran apabila bash bermula, shell memasuki mod posix sebelum membaca fail permulaan, seolah-olah pilihan opix - opix telah dibekalkan. Jika ia ditetapkan semasa shell sedang berjalan, bash membolehkan mode posix , seolah-olah perintah set -o posix telah dilaksanakan.

PROMPT_COMMAND

Jika ditetapkan, nilai itu dilaksanakan sebagai perintah sebelum mengeluarkan setiap perbaruan utama.

PS1

Nilai parameter ini diperluaskan (lihat PROMPTING di bawah) dan digunakan sebagai rentetan kiasan utama. Nilai lalai ialah `` \ s- \ v \ $ ''.

PS2

Nilai parameter ini diperluas seperti PS1 dan digunakan sebagai rentetan balasan sekunder. Lalai adalah `` > ''.

PS3

Nilai parameter ini digunakan sebagai petanda untuk arahan pilih (lihat SHELL GRAMMAR di atas).

PS4

Nilai parameter ini diperluas seperti PS1 dan nilai dicetak sebelum setiap bash perintah dipaparkan semasa jejak pelaksanaan. Aksara pertama PS4 ditiru beberapa kali, seperti yang diperlukan, untuk menunjukkan pelbagai tahap penolakan. Lalai adalah `` + ''.

FORMAT MASA

Nilai parameter ini digunakan sebagai rentetan format yang menentukan bagaimana maklumat masa untuk talian paip yang diawali dengan perkataan reserved waktu harus dipaparkan. Aksara % memperkenalkan urutan melarikan diri yang diperluas ke nilai masa atau maklumat lain. Urutan melarikan diri dan makna mereka adalah seperti berikut; pendakap menandakan bahagian pilihan.

%%

% Literal.

% [ p ] [l] R

Masa berlalu dalam beberapa saat.

% [ p ] [l] U

Bilangan saat CPU dibelanjakan dalam mod pengguna.

% [ p ] [l] S

Bilangan saat CPU dibelanjakan dalam mod sistem.

% P

Peratusan CPU, dikira sebagai (% U +% S) /% R.

P pilihan ialah angka yang menyatakan ketepatan , bilangan digit fraksional selepas titik perpuluhan. Nilai 0 menyebabkan tiada titik perpuluhan atau pecahan untuk menjadi output. Sebanyak tiga tempat selepas titik perpuluhan boleh ditentukan; nilai p yang lebih besar daripada 3 ditukar kepada 3. Jika p tidak ditentukan, nilai 3 digunakan.

Pilihan l menentukan format yang lebih panjang, termasuk minit, dari bentuk MM m SS . FF s. Nilai p menentukan sama ada atau tidak pecahan dimasukkan.

Jika pembolehubah ini tidak ditetapkan, bash bertindak seolah-olah ia mempunyai nilai $ '\ realit \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' . Jika nilai itu adalah batal, tiada maklumat masa dipaparkan. A newline trailing ditambah apabila rentetan format dipaparkan.

TMOUT

Jika ditetapkan kepada nilai yang lebih besar daripada sifar, TMOUT dianggap sebagai tamat masa lalai untuk terbina dibaca . Perintah pilih tamat jika input tidak tiba selepas TMOUT saat input datang dari terminal. Dalam shell interaktif, nilai ditafsirkan sebagai bilangan saat untuk menunggu input selepas mengeluarkan petikan utama. Bash tamat selepas menunggu bilangan saat jika input tidak sampai.

auto_resume

Pembolehubah ini mengawal bagaimana shell berinteraksi dengan pengguna dan kawalan kerja. Sekiranya pembolehubah ini ditetapkan, arahan tunggal perkataan mudah tanpa peralihan akan dianggap sebagai calon untuk menyambung semula kerja yang sudah berhenti. Tidak ada kekaburan yang dibenarkan; jika terdapat lebih daripada satu pekerjaan yang bermula dengan rentetan yang diketik, pekerjaan yang paling baru diakses dipilih. Nama pekerjaan yang dihentikan, dalam konteks ini, adalah baris arahan yang digunakan untuk memulakannya. Sekiranya ditetapkan kepada nilai yang tepat , rentetan yang dibekalkan mesti sepadan dengan nama pekerjaan yang dihentikan dengan tepat; jika ditetapkan ke substring , rentetan yang dibekalkan perlu sepadan dengan substring dari nama kerja yang dihentikan. Nilai substring menyediakan fungsi yang sama dengan %? pengecam pekerjaan (lihat KAWALAN KERJA di bawah). Jika ditetapkan kepada sebarang nilai lain, rentetan yang dibekalkan mesti menjadi awalan nama kerja yang berhenti; ini menyediakan fungsi yang serupa dengan pengecam pekerjaan % .

histchars

Dua atau tiga aksara yang mengawal perkembangan dan penambahan sejarah (lihat PELANJUTAN SEJARAH di bawah). Watak pertama adalah watak pengembangan sejarah , watak yang menandakan permulaan pengembangan sejarah, biasanya ` ! '. Watak kedua adalah watak penggantian cepat , yang digunakan sebagai singkatan untuk menjalankan semula arahan terdahulu, menggantikan satu rentetan yang lain dalam perintah itu. Lalai adalah ` ^ '. Watak ketiga pilihan ialah watak yang menunjukkan bahawa baki garis adalah komen apabila didapati sebagai aksara pertama perkataan, biasanya ` # '. Watak komen sejarah menyebabkan penggantian sejarah dilangkau untuk kata-kata yang tinggal di baris. Ia tidak semestinya menyebabkan parser shell untuk merawat selebihnya sebagai komen.

Arrays

Bash menyediakan pembolehubah pelbagai dimensi. Mana-mana pembolehubah boleh digunakan sebagai array; mengisytiharkan builtin akan mengisytiharkan secara jelas array. Tiada batasan maksimum saiz array, atau sebarang keperluan yang diindeks atau diberikan secara bersamaan. Array diindeks menggunakan bilangan bulat dan berasaskan sifar.

Arahan dibuat secara automatik jika mana-mana pemboleh ubah ditugaskan untuk menggunakan nama sintaks [ subskrip ] = nilai . Subskrip ini dianggap sebagai ungkapan aritmetik yang harus dinilai ke suatu angka yang lebih besar dari atau sama dengan sifar. Untuk menyatakan secara jelas array, gunakan mengisytiharkan -a nama (lihat COMMANDS SHELL BUILTIN di bawah). mengisytiharkan -a nama [ subskrip ] juga diterima; subskrip tidak diendahkan. Atribut boleh ditentukan untuk pembolehubah array menggunakan pengisytiharan dan terbaca yang terbaca. Setiap atribut terpakai kepada semua ahli array.

Array ditetapkan untuk menggunakan tugasan majmuk nama borang = ( nilai 1 ... nilai n ) , di mana setiap nilai adalah bentuk [ subskrip ] = rentetan . Hanya tali diperlukan. Jika tanda kurung dan subskrip yang dibekalkan, indeks itu diberikan kepada; jika indeks elemen yang diberikan adalah indeks terakhir yang diberikan oleh pernyataan ditambah satu. Pengindeksan bermula pada sifar. Sintaks ini juga diterima oleh pengisytiharan terbina. Unsur array individu boleh ditugaskan untuk menggunakan nama [ subscript ] = sintaks nilai yang diperkenalkan di atas.

Binaan unset digunakan untuk memusnahkan tatasusunan. nama yang tidak disetkan [ subskrip ] memusnahkan elemen tatasusunan pada subseksyen indeks. nama tidak siap , di mana nama adalah array, atau nama tidak disetkan [ subskrip ], di mana subskrip adalah * atau @ , mengalih keluar keseluruhan array.

Yang mengisytiharkan , tempatan , dan dibaca yang dibaca masing-masing menerima satu -a pilihan untuk menentukan array. Dibaca terbina menerima pilihan a -a untuk menetapkan senarai perkataan yang dibaca dari input standard ke array. Menetapkan dan mengisytiharkan nilai array paparan binaan dengan cara yang membolehkan mereka digunakan semula sebagai tugasan.

EXPANSION

Pengembangan dilakukan pada baris arahan setelah dipecah menjadi kata-kata. Terdapat tujuh jenis pengembangan yang dilakukan: pengembangan pengembangan , pengembangan tilde , parameter dan pengembangan yang berubah-ubah , penggantian perintah , pengembangan aritmetik , pemisahan perkataan , dan pengembangan nama laluan .

Perintah ekspansi adalah: pengembangan pengembangan, pengembangan tilde, parameter, pemboleh ubah dan pembolehubah aritmetik dan penggantian perintah (dilakukan secara fizikal dari kiri ke kanan), pembahagian kata, dan pengembangan nama laluan.

Mengenai sistem yang boleh menyokongnya, terdapat pengembangan tambahan yang tersedia: penggantian proses .

Pengembangan Brace

Perkembangan Brace adalah satu mekanisme di mana rentetan sewenang-wenangnya dijana. Mekanisme ini sama dengan pengembangan nama laluan , tetapi nama fail yang dihasilkan tidak perlu wujud. Corak yang akan diperkembangkan diperluas mengambil bentuk mukadim pilihan, diikuti dengan beberapa rentetan koma yang dipisahkan antara sepasang penyokong gigi, diikuti dengan nota pilihan. Mukadim itu diawali ke setiap tali yang terkandung di dalam penyokong, dan postScript kemudian dilampirkan pada setiap rentetan yang terhasil, berkembang ke kiri ke kanan.

Pengembangan brace mungkin bersarang. Hasil setiap tali diperluas tidak disusun; Pesanan kiri ke kanan dipelihara. Sebagai contoh, sebuah { d, c, b } e berkembang ke `ade ace abe '.

Pengembangan penyambungan dilakukan sebelum sebarang ekspansi lain, dan sebarang aksara yang khusus untuk ekspansi lain dipelihara hasilnya. Ia betul-betul tekstual. Bash tidak memakai sebarang tafsiran sintaksis kepada konteks pengembangan atau teks antara pendakap.

Konstruk ini biasanya digunakan sebagai singkatan apabila awalan biasa rentetan akan dijana lebih panjang daripada contoh di atas:

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

atau

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

Perkembangan Brace memperkenalkan ketidaksekalan sedikit dengan versi sejarah sh . sh tidak merawat membuka atau menutup pendakap khas apabila ia muncul sebagai sebahagian daripada perkataan, dan mengekalkannya dalam output. Bash menghilangkan pendakap dari kata-kata sebagai akibat daripada pengembangan. Contohnya, perkataan yang dimasukkan ke sh sebagai fail {1,2} muncul secara identik dalam output. Perkataan yang sama dikeluarkan sebagai file1 file2 selepas pengembangan oleh bash . Jika keserasian ketat dengan sh diingini, mulakan bash dengan pilihan + B atau matikan pengembangan pengembangan dengan pilihan B + ke arahan set (lihat COMMANDS SHELL BUILTIN di bawah).

Pengembangan Tilde

Sekiranya perkataan bermula dengan aksara tilde yang tidak disebutkan (` ~ '), semua aksara sebelum skrip tidak tercatat yang pertama (atau semua aksara, jika tiada slash tidak disebut harga) dianggap sebagai awalan tilde . Jika tiada aksara dalam awalan tilde dipetik, watak-watak dalam awalan tilde berikutan tilde diperlakukan sebagai nama log masuk yang mungkin. Jika nama log masuk ini adalah rentetan null, tilde digantikan dengan nilai parameter shell HOME . Jika HOME tidak ditetapkan, direktori rumah pengguna yang melaksanakan shell diganti. Jika tidak, awalan tilde digantikan dengan direktori rumah yang berkaitan dengan nama login yang dinyatakan.

Jika awalan tilde adalah `~ + ', nilai pembolehubah shell PWD menggantikan awalan tilde. Jika awalan tilde ialah `~ - ', nilai pembolehubah shell OLDPWD , jika ia ditetapkan, diganti. Jika aksara yang mengikuti tilde dalam awalan tilde mengandungi nombor N , secara opsyen yang diawali oleh `+ 'atau` -', awalan tilde digantikan dengan unsur yang bersamaan dari timbunan direktori, kerana ia akan dipaparkan oleh dirs builtin yang digunakan dengan awalan tilde sebagai hujah. Jika aksara yang mengikuti tilde dalam awalan tilde mengandungi nombor tanpa `+ 'atau' - ',` +' diandaikan.

Jika nama masuk tidak sah, atau pengembangan tilde gagal, perkataan tidak berubah.

Setiap tugasan ubahsuaian diperiksa untuk awalan tilde yang tidak disebut harga dengan segera setelah : atau = . Dalam kes ini, pengembangan tilde juga dilakukan. Akibatnya, seseorang boleh menggunakan nama fail dengan tildes dalam tugasan untuk PATH , MAILPATH , dan CDPATH , dan shell memberikan nilai diperluas.

Pengembangan Parameter

Aksara ` $ 'memperkenalkan pengembangan parameter, penggantian perintah, atau pengembangan aritmetik. Nama parameter atau simbol yang diperluaskan boleh disertakan dalam pendakap, yang merupakan pilihan tetapi berfungsi untuk melindungi pembolehubah yang akan diperluaskan dari aksara dengan segera mengikutnya yang dapat ditafsirkan sebagai sebahagian daripada nama tersebut.

Apabila pendakap digunakan, pendakap yang sepadan yang hampir sama adalah `` pertama '' yang tidak luput oleh backslash atau dalam rentetan yang disebutkan, dan bukan dalam pengembangan aritmetik tertanam, penggantian perintah, atau pengembangan paramter.

Nilai parameter diganti. Pendakap diperlukan apabila parameter adalah parameter pos dengan lebih daripada satu digit, atau apabila parameter diikuti oleh watak yang tidak dapat ditafsirkan sebagai sebahagian daripada namanya.

Dalam setiap kes di bawah, kata adalah tertakluk kepada pengembangan tilde, pengembangan parameter, penggantian perintah, dan pengembangan aritmetik. Apabila tidak melaksanakan pengembangan substring, ujian bash untuk parameter yang tidak ditetapkan atau batal; tidak menghilangkan hasil kolon dalam ujian hanya untuk parameter yang tidak disetkan.

Gunakan Nilai Default . Jika parameter tidak ditetapkan atau batal, pengembangan kata diganti. Jika tidak, nilai parameter diganti.

Berikan Nilai Default . Jika parameter tidak ditetapkan atau batal, pengembangan perkataan diberikan kepada parameter . Nilai parameter kemudian diganti. Parameter kedudukan dan parameter khas mungkin tidak ditugaskan dengan cara ini.

Ralat Paparan jika Null atau Unset . Sekiranya parameter adalah batal atau tidak ditetapkan, pengembangan perkataan (atau mesej kepada kesan tersebut jika perkataan tidak ada) ditulis kepada ralat standard dan shell, jika ia tidak interaktif, keluar. Jika tidak, nilai parameter diganti.

Gunakan Nilai Alternatif . Jika parameter adalah batal atau tidak dimeteraikan, tidak ada yang diganti, jika tidak, pengembangan kata diganti.

Memperluas nama pembolehubah yang namanya bermula dengan awalan , dipisahkan oleh aksara pertama pemboleh ubah khas IFS .

Panjang aksara dalam nilai parameter diganti. Jika parameter * atau @ , nilai yang digantikan ialah bilangan parameter kedudukan. Jika parameter adalah nama array yang ditindan oleh * atau @ , nilai yang digantikan adalah bilangan unsur dalam array.

Perkataan itu diperluas untuk menghasilkan corak seperti dalam pengembangan nama laluan. Jika corak sepadan dengan permulaan nilai parameter , maka hasil pengembangan adalah nilai parameter yang diperluas dengan corak pencocokan terpendek (kes `` # '') atau corak pencocokan terpanjang (' ## ' 'kes) dipadam. Jika parameter adalah @ atau * , operasi penyingkiran corak digunakan untuk setiap parameter kedudukan seterusnya, dan pengembangannya adalah senarai yang dihasilkan. Jika parameter adalah pembolehubah susunan yang dilaburkan dengan @ atau * , operasi penyingkiran pola digunakan untuk setiap ahli array seterusnya, dan perluasan adalah senarai yang dihasilkan.

Perkataan itu diperluas untuk menghasilkan corak seperti dalam pengembangan nama laluan. Jika coraknya sepadan dengan bahagian trailing nilai diperluas parameter , maka hasil pengembangan adalah nilai parameter yang diperluas dengan corak pencocokan terpendek (kes `` % '') atau corak pencocokan terpanjang (`` % % '' kes) dipadam. Jika parameter adalah @ atau * , operasi penyingkiran corak digunakan untuk setiap parameter kedudukan seterusnya, dan pengembangannya adalah senarai yang dihasilkan. Jika parameter adalah pembolehubah susunan yang dilaburkan dengan @ atau * , operasi penyingkiran pola digunakan untuk setiap ahli array seterusnya, dan perluasan adalah senarai yang dihasilkan.

Corak diperluas untuk menghasilkan corak sama seperti dalam pengembangan nama laluan. Parameter diperluas dan perlawanan terpanjang corak terhadap nilai digantikan dengan rentetan . Dalam bentuk pertama, hanya perlawanan pertama diganti. Bentuk kedua menyebabkan semua padanan corak diganti dengan rentetan . Jika corak bermula dengan # , ia mesti sepadan pada permulaan nilai parameter diperluas. Jika corak bermula dengan % , ia mesti sepadan pada akhir parameter diperluas parameter . Sekiranya rentetan adalah batal, padanan corak akan dipadamkan dan corak / berikut mungkin ditinggalkan. Jika parameter @ atau * , operasi penggantian digunakan untuk setiap parameter kedudukan seterusnya, dan pengembangannya adalah senarai yang dihasilkan. Jika parameter ialah pemboleh ubah bersaiz yang dilaburkan dengan @ atau * , operasi penggantian digunakan untuk setiap ahli array seterusnya, dan pengembangan adalah senarai yang dihasilkan.

Pergantian Perintah

Penggantian perintah membolehkan output arahan untuk menggantikan nama arahan. Terdapat dua bentuk:

$ ( arahan )

atau

` command`

Bash melakukan pengembangan dengan melaksanakan perintah dan menggantikan perintah penggantian dengan output standard arahan, dengan mana-mana baris baru yang dibatalkan. Talian baharu tertanam tidak dipadam, tetapi ia boleh dialih keluar semasa pemisahan perkataan. Perintah penggantian $ ( fail kucing ) boleh digantikan dengan setara tetapi lebih cepat $ (< file ).

Apabila bentuk penggantian backquote gaya lama digunakan, backslash mengekalkan makna literal kecuali apabila diikuti dengan $ , ` , atau \ . Backquote pertama yang tidak didahului oleh backslash menamatkan penggantian perintah. Apabila menggunakan borang $ ( perintah ), semua aksara di antara kurungan membentuk arahan; tiada yang dirawat khasnya.

Penggantian perintah mungkin bersarang. Untuk sarang apabila menggunakan borang yang telah dikembalikan, melarikan diri dari backquotes dalaman dengan backslashes.

Sekiranya penggantian muncul dalam petikan berganda, pembahagian perkataan dan pengembangan laluan kata tidak dilakukan pada hasilnya.

Pengembangan aritmetik

Pengembangan aritmetik membolehkan penilaian ekspresi aritmetik dan penggantian hasilnya. Format untuk pengembangan aritmetik ialah:

$ (( ungkapan ))

Ungkapan dianggap seperti dalam petikan berganda, tetapi petikan berganda di dalam kurungan tidak diperlakukan secara khusus. Semua token dalam ungkapan mengalami pengembangan parameter, pengembangan rentetan, penggantian perintah, dan penyingkiran kutipan. Penggantian aritmetik mungkin bersarang.

Penilaian dilakukan mengikut peraturan yang disenaraikan di bawah EVALUASI ARITHMETIK . Jika ungkapan tidak sah, bash mencetak mesej yang menunjukkan kegagalan dan tiada penggantian berlaku.

Proses Penggantian

Penggantian proses disokong pada sistem yang menyokong paip bernama ( FIFOs ) atau kaedah / dev / fd penamaan fail terbuka. Ia mengambil bentuk <( senarai ) atau > ( senarai ) . Senarai proses dijalankan dengan input atau output yang disambungkan ke FIFO atau beberapa fail dalam / dev / fd . Nama fail ini diluluskan sebagai hujah kepada perintah semasa sebagai hasil pengembangan. Jika borang > ( senarai ) digunakan, menulis ke fail akan memberikan input untuk senarai . Sekiranya borang <( senarai ) digunakan, fail yang diluluskan sebagai hujah harus dibaca untuk mendapatkan output senarai .

Apabila ada, penggantian proses dilakukan serentak dengan parameter dan pengembangan berubah, penggantian perintah, dan pengembangan aritmetik.

Pemisahan perkataan

Cakera mengimbas hasil pengembangan parameter, penggantian perintah, dan pengembangan aritmetik yang tidak berlaku dalam petikan berganda untuk pemisahan perkataan .

Cakera merawat setiap watak IFS sebagai pembatas, dan memisahkan hasil pengembangan lain ke dalam kata-kata pada watak-watak ini. Jika IFS tidak ditetapkan, atau nilainya adalah betul-betul , lalai, maka sebarang urutan aksara IFS berfungsi untuk membataskan kata-kata. Sekiranya IFS mempunyai nilai selain daripada lalai, maka urutan ruang dan ruang kata ruang kosong diabaikan pada permulaan dan akhir perkataan, selagi spasi spasi berada dalam nilai IFS (ruang spasi IFS ). Mana-mana watak dalam IFS yang tidak ruang spasi IFS , bersama-sama dengan mana-mana aksara spasi IFS bersebelahan, membatasi bidang. Satu urutan ruang kosong ruang IFS juga dianggap sebagai pembatas. Sekiranya nilai IFS adalah tidak sah, tiada pecahan kata berlaku.

Argumen kosong eksplisit ( "" atau '' ) dikekalkan. Hujah-hujah tidak sah yang tidak disebutkan, disebabkan pengembangan parameter yang tidak mempunyai nilai, dikeluarkan. Jika parameter yang tiada nilai diperluaskan dalam petikan berganda, hasil argumen nol dan disimpan.

Ambil perhatian bahawa jika tiada pengembangan berlaku, tiada pembahagian dilakukan.

Pengembangan Pathname

Selepas pemisahan perkataan, kecuali pilihan -f telah ditetapkan, bash mengimbas setiap perkataan untuk aksara * ,? , dan [ . Jika salah satu aksara ini muncul, maka perkataan itu dianggap sebagai corak , dan digantikan dengan senarai nama fail yang disusun mengikut abjad yang sepadan dengan corak. Jika tiada nama fail sepadan yang dijumpai, dan pilihan shell nullglob dilumpuhkan, perkataan dibiarkan tidak berubah. Sekiranya pilihan nullglob ditetapkan, dan tiada padanan yang dijumpai, perkataan tersebut akan dialih keluar. Jika pilihan nocaseglob shell diaktifkan, perlawanan itu dilakukan tanpa mengambil kira kes huruf abjad. Apabila corak digunakan untuk pengembangan nama laluan, huruf ``. '' Pada permulaan nama atau segera mengikuti slash mesti dipadankan dengan jelas, melainkan pilihan dotglob shell ditetapkan. Apabila memadankan nama laluan, watak slash mesti sentiasa dipadankan dengan jelas. Dalam kes lain, aksara ``. '' Tidak diperlakukan secara khusus. Lihat perihalan shopt di bawah bawah SHELL BUILTIN COMMANDS untuk keterangan pilihan shell nocaseglob , nullglob , dan dotglob .

Pembolehubah shell GLOBIGNORE boleh digunakan untuk menyekat set nama fail yang sepadan dengan corak . Jika GLOBIGNORE ditetapkan, setiap nama fail sepadan yang juga sepadan dengan salah satu corak dalam GLOBIGNORE akan dikeluarkan daripada senarai padanan. Nama fail ``. '' Dan `` .. '' sentiasa diabaikan, walaupun GLOBIGNORE ditetapkan. Walau bagaimanapun, tetapan GLOBIGNORE mempunyai kesan membolehkan pilihan shell dotglob , jadi semua nama fail lain yang bermula dengan ``. '' Akan dipadankan. Untuk mendapatkan tingkah laku lama untuk mengabaikan nama fail bermula dengan ``. '' , Buat ``. * '' Salah satu corak dalam GLOBIGNORE . Pilihan dotglob dinyahdayakan apabila GLOBIGNORE tidak diset .

Pemadanan Corak

Mana-mana watak yang muncul dalam corak, selain daripada corak corak khas yang diterangkan di bawah, padanya sendiri. Watak NUL mungkin tidak berlaku dalam corak. Watak-watak corak khas mesti dipetik jika mereka sepadan dengan literal.

Watak corak khas mempunyai makna berikut:

*

Memadankan sebarang rentetan, termasuk rentetan null.

?

Memadankan mana-mana watak tunggal.

[...]

Memadankan mana-mana aksara yang dilampirkan. Sepasang aksara yang dipisahkan oleh tanda hubung menandakan pelbagai ungkapan ; mana-mana watak yang berbeza di antara kedua-dua watak tersebut, termasuk, menggunakan susunan seting locale semasa dan set aksara, dipadankan. Jika watak pertama mengikuti [ adalah ! atau ^ maka sebarang watak yang tidak dilampirkan dipadankan. Urutan pengurutan aksara dalam ungkapan rentang ditentukan oleh locale semasa dan nilai pembolehubah shell LC_COLLATE , jika ditetapkan. A - boleh dipadankan dengan memasukkannya sebagai watak pertama atau terakhir dalam set. A ] boleh dipadankan dengan memasukkannya sebagai watak pertama dalam set.

Di dalam [ dan ] , kelas watak boleh ditentukan dengan menggunakan sintaks [: kelas :] , di mana kelas adalah salah satu daripada kelas berikut yang ditakrifkan dalam piawaian POSIX.2:

alnum alpha ASCII kosong kosong cntrl graf digit bawah cetakan ruang atas xdigit kata
Kelas watak sepadan dengan mana-mana watak kepunyaan kelas itu. Kelas watak aksara sepadan dengan huruf, digit, dan huruf _.

Di dalam [ dan ] , kelas kesetaraan boleh ditentukan dengan menggunakan sintaks [= c =] , yang sepadan dengan semua aksara dengan berat pengumpulan yang sama (seperti yang ditakrifkan oleh locale semasa) sebagai watak c .

Dalam [ dan ] , sintaks [. simbol .] sepadan dengan simbol simbol penyusun.

Sekiranya pilihan shell extglob didayakan menggunakan kedai yang dibina, pengendali sepadan dengan beberapa pola yang diperluaskan. Dalam uraian berikut, senarai corak adalah senarai satu atau lebih corak yang dipisahkan oleh | | . Corak komposit boleh dibentuk menggunakan satu atau lebih corak sub-berikut:

? ( pola senarai )

Memadankan sifar atau satu kejadian corak yang diberikan

* ( corak senarai )

Memadankan sifar atau lebih banyak kejadian corak yang diberikan

+ ( pola senarai )

Memadankan satu atau lebih kejadian corak yang diberikan

@ ( pola senarai )

Memadankan dengan tepat satu corak yang diberikan

! ( pola senarai )

Memadankan apa-apa kecuali salah satu corak yang diberikan

Kutipan Pembuangan

Selepas ekspans yang terdahulu, semua kejadian tidak disebut sebutkan watak \ , ' , dan " yang tidak hasil daripada salah satu daripada ekspansion di atas dikeluarkan.

REDIRECTION

Sebelum arahan dilaksanakan, input dan outputnya boleh diarahkan menggunakan notasi khas yang ditafsirkan oleh shell. Redirection juga boleh digunakan untuk membuka dan menutup fail untuk persekitaran pelaksanaan shell semasa. Pengendali pengalihan berikut mungkin mendahului atau muncul di mana-mana dalam perintah mudah atau mungkin mengikuti arahan . Redirections diproses mengikut urutan yang dipaparkan, dari kiri ke kanan.

Dalam uraian berikut, jika nombor deskriptor fail diabaikan, dan aksara pertama operator pengalihan adalah < , pengalihan merujuk kepada input standard (deskriptor fail 0). Jika aksara pertama operator pengalihan adalah > , pengalihan merujuk kepada output standard (deskriptor fail 1).

Perkataan berikut pengendali redirection dalam uraian berikut, kecuali dinyatakan sebaliknya, dikenakan pengembangan, pengembangan tilde, pengembangan parameter, penggantian perintah, pengembangan aritmetik, penyingkiran kutipan, pengembangan nama laluan, dan pemisahan perkataan. Jika ia mengembang kepada lebih daripada satu perkataan, bash melaporkan ralat.

Perhatikan bahawa urutan peralihan adalah penting. Sebagai contoh, arahan itu

ls > dirlist 2 > & 1

mengarahkan kedua-dua keluaran piawai dan ralat piawai kepada dirlist fail, manakala perintah itu

ls 2 > & 1 > dirlist

mengarahkan hanya output piawai ke fail dirlist , kerana ralat piawai diduplikasi sebagai output standard sebelum output standard diarahkan ke dirlist .

Bash mengendalikan beberapa nama fail khas apabila ia digunakan dalam peralihan, seperti yang diterangkan dalam jadual berikut:

/ dev / fd / fd

Jika fd adalah integer yang sah, deskriptor fail fd diduplikasi.

/ dev / stdin

Deskriptor fail 0 diduplikasi.

/ dev / stdout

Deskriptor fail 1 diduplikasi.

/ dev / stderr

Deskriptor fail 2 diduplikasi.

/ dev / tcp / host / port

Jika hos adalah nama hos yang sah atau alamat Internet, dan pelabuhan adalah nombor port integer atau nama perkhidmatan, cubaan bash untuk membuka sambungan TCP ke soket sepadan.

/ dev / udp / host / port

Jika hos adalah nama hos yang sah atau alamat Internet, dan pelabuhan adalah nombor port integer atau nama perkhidmatan, cubaan bash untuk membuka sambungan UDP ke soket sepadan.

Kegagalan membuka atau membuat fail menyebabkan pengalihan gagal.

Mengalihkan Input

Pengalihan input menyebabkan fail yang namanya hasil daripada pengembangan kata yang akan dibuka untuk membaca pada deskriptor fail n , atau input standard (deskriptor fail 0) jika n tidak ditentukan.

Format umum untuk mengalihkan input ialah:

[ n ] < perkataan

Mengalihkan Output

Pengalihan output menyebabkan fail yang namanya hasil daripada pengembangan kata yang akan dibuka untuk menulis pada deskriptor fail n , atau output standard (deskriptor fail 1) jika n tidak ditentukan. Sekiranya fail itu tidak wujud, ia dibuat; jika ia wujud ia terpotong kepada saiz sifar.

Format umum untuk mengalihkan output ialah:

[ n ] > perkataan

Jika pengendali pengalihan adalah > , dan pilihan noclobber kepada set builtin telah diaktifkan, pengalihan akan gagal jika fail yang namanya hasil dari pengembangan perkataan wujud dan merupakan fail biasa. Jika pengendali redirection adalah > | , atau operator pengalihan adalah > dan opsyen noclobber kepada perintah terbina set tidak diaktifkan, pengalihan itu dicuba walaupun fail bernama dengan perkataan wujud.

Memasukkan Output Dialih Keluar

Pengalihan output dalam fesyen ini menyebabkan fail yang namanya hasil daripada pengembangan perkataan yang akan dibuka untuk menambahkan pada deskriptor fail n , atau output standard (deskriptor fail 1) jika n tidak ditentukan. Jika fail tidak wujud, ia dibuat.

Format umum untuk menambahkan output ialah:

[ n ] >> perkataan

Mengalihkan Output Standard dan Kesalahan Standard

Bash membenarkan kedua-dua output standard (deskriptor fail 1) dan keluaran ralat standard (deskriptor fail 2) untuk diarahkan ke fail yang namanya adalah pengembangan kata dengan binaan ini.

Terdapat dua format untuk mengalihkan keluaran standard dan ralat standard:

&> perkataan

dan

> & perkataan

Daripada kedua-dua bentuk, yang pertama adalah pilihan. Ini bersamaan dengan semantik

> perkataan 2 > & 1

Di sini Dokumen

Jenis pengalihan ini mengarahkan shell untuk membaca input dari sumber semasa sehingga satu garisan yang mengandungi perkataan sahaja (tanpa sebarang kekangan). Semua baris membaca sehingga titik kemudian digunakan sebagai input standard untuk arahan.

Format dokumen di sini ialah:

<< [ - ] kata di sini-dokumen pembatas

Tiada pengembangan parameter, penggantian perintah, pengembangan aritmetik, atau pengembangan nama laluan dijalankan pada perkataan . Jika mana-mana aksara dalam perkataan dipetik, pembatas adalah hasil penyingkiran kutipan pada perkataan , dan garisan dalam dokumen di sini tidak diperluaskan. Sekiranya perkataan tidak disebutkan, semua baris dokumen di sini tertakluk kepada pengembangan parameter, penggantian perintah, dan pengembangan aritmetik. Dalam kes yang kedua, urutan aksara \ diabaikan, dan \ mesti digunakan untuk memetik aksara \ , $ , dan ` .

Jika pengendali redirection adalah << - , maka semua tab tab utama dilucutkan dari garis masukan dan garis yang mengandungi delimiter . Ini membolehkan dokumen-dokumen di dalam skrip shell diandaikan secara fesyen semulajadi.

Di sini Strings

Satu variasi dokumen di sini, formatnya ialah:

<<< perkataan

Perkataan itu diperluaskan dan dibekalkan kepada arahan pada input standardnya.

Duplikat Deskriptor Fail

Pengendali pengalihan semula

[ n ] <& perkataan

digunakan untuk menduplikasi deskriptor fail input. Jika perkataan mengembang ke satu atau lebih digit, deskriptor fail yang dilambangkan oleh n dibuat sebagai salinan deskriptor fail itu. Jika angka dalam kata tidak menentukan deskriptor fail terbuka untuk input, ralat pengalihan berlaku. Jika perkataan menilai ke - , descriptor fail n ditutup. Jika n tidak dinyatakan, input standard (deskriptor fail 0) digunakan.

Pengendali

[ n ] > & perkataan

digunakan serupa dengan deskriptor output keluaran pendua. Jika n tidak dinyatakan, output standard (deskriptor fail 1) digunakan. Jika angka dalam kata tidak menentukan deskriptor fail terbuka untuk output, ralat pengalihan berlaku. Sebagai kes khas, jika n diabaikan, dan perkataan tidak berkembang kepada satu atau lebih digit, keluaran standard dan ralat piawai diarahkan seperti yang diterangkan sebelumnya.

Memindahkan Deskriptor Fail

Pengendali pengalihan semula

[ n ] <& angka -

menggerakkan digit deskriptor fail ke deskriptor fail n , atau input standard (deskriptor fail 0) jika n tidak ditentukan. digit ditutup selepas digandakan kepada n .

Begitu juga, pengendali pengalihan semula

[ n ] > & digit -

menggerakkan digit deskriptor fail ke fail deskriptor n , atau output standard (deskriptor fail 1) jika n tidak ditentukan.

Membuka Deskriptor Fail untuk Membaca dan Menulis

Pengendali pengalihan semula

perkataan [ n ] <>

menyebabkan fail yang namanya adalah pengembangan kata yang akan dibuka untuk kedua-dua membaca dan menulis pada deskriptor fail n , atau pada deskriptor fail 0 jika n tidak ditentukan. Jika fail tidak wujud, ia dibuat.

ALIASES

Aliases membenarkan rentetan diganti untuk perkataan apabila ia digunakan sebagai kata pertama perintah mudah. Cakera ini mengekalkan senarai alias yang mungkin ditetapkan dan tidak diset dengan alias dan perintah uniniti terbina (lihat COMMANDS SHELL BUILTIN di bawah). Perkataan pertama setiap arahan, jika tidak disebutkan, diperiksa untuk melihat apakah ia mempunyai alias. Jika ya, perkataan itu digantikan oleh teks alias. Nama alias dan teks gantian mungkin mengandungi sebarang input shell yang sah, termasuk metakarakter yang disenaraikan di atas, dengan pengecualian bahawa nama alias tidak boleh mengandungi = . Perkataan pertama teks penggantian diuji untuk nama alias, tetapi perkataan yang sama dengan alias yang diperluaskan tidak diperluaskan untuk kedua kalinya. Ini bermakna seseorang boleh alias ls ke -F , misalnya, dan bash tidak cuba untuk meluaskan teks penggantian secara rekursif. Jika aksara terakhir nilai alias adalah kosong , maka kata arahan seterusnya mengikuti alias juga diperiksa untuk pengembangan alias.

Aliases dicipta dan disenaraikan dengan arahan alias , dan dikeluarkan dengan perintah unalias .

Tiada mekanisme untuk menggunakan argumen dalam teks penggantian. Sekiranya hujah diperlukan, fungsi shell harus digunakan (lihat FUNGSI di bawah).

Aliases tidak dikembangkan apabila shell tidak interaktif, melainkan pilihan shell expand_aliases ditetapkan menggunakan shopt (lihat deskripsi shopt di bawah SHELL BUILTIN COMMANDS di bawah).

Peraturan mengenai definisi dan penggunaan alias agak mengelirukan. Bash sentiasa membaca sekurang-kurangnya satu baris lengkap input sebelum melaksanakan mana-mana perintah pada baris itu. Alias ​​diperluas apabila arahan dibaca, bukan apabila ia dilaksanakan. Oleh itu, definisi alias yang terdapat pada baris yang sama dengan arahan lain tidak berkuatkuasa sehingga baris input berikutnya dibaca. Perintah yang mengikuti takrif alias pada baris tersebut tidak dipengaruhi oleh alias baru. Tingkah laku ini juga menjadi masalah apabila fungsi dilaksanakan. Alias ​​diperluas apabila definisi fungsi dibaca, bukan apabila fungsi dilaksanakan, kerana definisi fungsi itu sendiri merupakan arahan kompaun. Akibatnya, alias yang ditakrifkan dalam fungsi tidak tersedia sehingga selepas fungsi itu dilaksanakan. Untuk menjadi selamat, sentiasa letakkan definisi alias pada baris berasingan, dan jangan gunakan alias dalam perintah kompaun.

Untuk hampir setiap tujuan, alias digantikan oleh fungsi shell.

FUNGSI

Fungsi shell, yang ditakrifkan seperti yang diterangkan di atas di bawah SHELL GRAMMAR , menyimpan satu siri perintah untuk pelaksanaan yang kemudian. Apabila nama fungsi shell digunakan sebagai nama arahan yang mudah, senarai arahan yang berkaitan dengan nama fungsi itu dilaksanakan. Fungsi dilaksanakan dalam konteks shell semasa; tiada proses baru dibuat untuk mentafsir mereka (sebaliknya ini dengan pelaksanaan skrip shell). Apabila fungsi dijalankan, argumen ke fungsi menjadi parameter kedudukan semasa pelaksanaannya. Parameter khas # dikemas kini untuk mencerminkan perubahan. Parameter Posisi 0 tidak berubah. Pembolehubah FUNCNAME ditetapkan pada nama fungsi sementara fungsi sedang dilaksanakan. Semua aspek lain dalam persekitaran pelaksanaan shell adalah sama antara fungsi dan pemanggilnya dengan pengecualian bahawa perangkap DEBUG (lihat perihalan perangkap yang dibina di bawah SHELL BUILTIN COMMANDS di bawah) tidak diwarisi kecuali fungsi tersebut telah diberikan atribut jejak ( lihat perihalan yang diisytiharkan terbina di bawah).

Pembolehubah setempat kepada fungsi itu boleh diisytiharkan dengan arahan terbina setempat . Biasanya, pembolehubah dan nilai mereka dikongsi antara fungsi dan pemanggilnya.

Sekiranya pulangan arahan terbina dilaksanakan dalam fungsi, fungsi selesai dan pelaksanaan bersambung dengan perintah seterusnya selepas panggilan berfungsi. Apabila fungsi selesai, nilai parameter posisional dan parameter khas # dipulihkan kepada nilai-nilai yang mereka hadapi sebelum pelaksanaan fungsi.

Nama dan definisi fungsi mungkin disenaraikan dengan pilihan -f untuk mengisytiharkan atau menaip perintah terbina. Pilihan -F untuk mengisytiharkan atau menyusun jenis akan menyenaraikan nama fungsi sahaja. Fungsi-fungsi boleh dieksport supaya subshells secara automatik mempunyai mereka ditakrifkan dengan -f pilihan untuk eksport builtin.

Fungsi mungkin rekursif. Tiada had dikenakan ke atas bilangan panggilan rekursif.

PENILAIAN ARITHMETIK

Cangkang itu membolehkan ungkapan aritmetik dinilai, dalam keadaan tertentu (lihat perintah dibina dan Aritmetik Pengembangan ). Penilaian dibuat dalam bilangan bulat tetap tanpa pemeriksaan limpahan, walaupun pembahagian oleh 0 terperangkap dan ditandakan sebagai ralat. Pengendali dan keutamaan dan persamaan mereka adalah sama seperti dalam bahasa C. Senarai berikut pengendali dikelompokkan ke peringkat pengendali keutamaan yang sama. Tahap-tahap yang disenaraikan dalam susunan mengurangkan keutamaan.

id ++ id -

post-increment variable dan post-decrement

++ id - id

pra-kenaikan pembolehubah dan pra-penurunan

- +

unary minus dan plus

! ~

penolakan logik dan bitwise

**

eksponensi

* /%

pendaraban, pembahagian, baki

+ -

penambahan, penolakan

<< >>

Pergeseran bitwise kiri dan kanan

<=> = <>

perbandingan

==! =

kesamaan dan ketidaksamaan

&

bitwise DAN

^

bitwise eksklusif ATAU

|

bitwise ATAU

&&

logik DAN

||

logik ATAU

expr ? expr : expr

penilaian bersyarat

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

tugasan

expr1 , expr2

koma

Pemboleh ubah Shell dibenarkan sebagai operan; pengembangan parameter dilakukan sebelum ungkapan dievaluasi. Dalam ungkapan, pembolehubah shell juga boleh dirujuk mengikut nama tanpa menggunakan sintaks pengembangan parameter. Nilai pembolehubah dinilai sebagai ungkapan aritmetik apabila ia dirujuk. Variabel shell tidak perlu mempunyai atribut integer dihidupkan untuk digunakan dalam ungkapan.

Selalunya dengan 0 terawal ditafsirkan sebagai nombor oktal. A terkemuka 0x atau 0X menandakan heksadesimal. Jika tidak, nombor mengambil bentuk [ asas # ] n, di mana asas adalah nombor perpuluhan di antara 2 dan 64 yang mewakili asas aritmetik, dan n adalah nombor dalam pangkalan itu. Jika asas # diabaikan, maka asas 10 digunakan. Angka yang lebih besar daripada 9 diwakili oleh huruf kecil, huruf besar, @, dan _, dalam urutan itu. Jika asas kurang daripada atau sama dengan 36, huruf kecil dan huruf besar boleh digunakan secara persilangan untuk mewakili nombor antara 10 dan 35.

Pengendali dinilai mengikut keutamaan. Ungkapan-ungkapan dalam kurungan dinilai terlebih dahulu dan boleh mengatasi aturan-aturan di atas.

EXPRESSIONS CONDITIONAL

Ungkapan bersyarat digunakan oleh [[ kompaun kompaun dan ujian dan [ perintah terbina untuk menguji atribut fail dan melakukan perbandingan string dan aritmatika. Ekspresi dibentuk dari primaries unary atau binary yang berikut. Jika mana-mana hujah fail ke salah satu daripada primaries adalah bentuk / dev / fd / n , maka descriptor fail n diperiksa. Jika hujah fail ke salah satu daripada primata adalah salah satu daripada / dev / stdin , / dev / stdout , atau / dev / stderr , masing-masing deskriptor fail 0, 1, atau 2.

-a fail

Benar jika fail wujud.

-b fail

Benar jika fail wujud dan merupakan fail khas blok.

-c fail

Benar jika fail wujud dan merupakan fail khas aksara.

-d fail

Benar jika file wujud dan direktori.

-e fail

Benar jika fail wujud.

-f fail

Benar jika fail wujud dan merupakan fail biasa.

-g fail

Benar jika fail wujud dan set-kumpulan-id.

-h fail

Benar jika fail wujud dan merupakan pautan simbolik.

-k fail

Benar jika terdapat fail dan bit `` lengket '' itu ditetapkan.

-p fail

Benar jika fail wujud dan merupakan paip bernama (FIFO).

-r fail

Benar jika fail wujud dan boleh dibaca.

-s fail

Benar jika fail wujud dan mempunyai saiz yang lebih besar daripada sifar.

-t fd

Benar jika deskriptor fail fd terbuka dan merujuk kepada terminal.

-u fail

Benar jika fail wujud dan set-user-id bit ditetapkan.

-w fail

Benar jika fail wujud dan boleh ditulis.

-x fail

Benar jika fail wujud dan boleh laksana.

-O fail

Benar jika fail wujud dan dimiliki oleh id pengguna yang berkesan.

-G fail

Benar jika fail wujud dan dimiliki oleh id kumpulan yang berkesan.

-L fail

Benar jika fail wujud dan merupakan pautan simbolik.

-S fail

Benar jika fail wujud dan soket.

-N fail

Benar jika fail wujud dan telah diubahsuai sejak dibaca terakhir.

file1 - nt file2

Benar jika file1 lebih baru (mengikut tarikh pengubahsuaian) daripada file2 , atau jika fail1 wujud dan fail2 tidak.

file1 - ot file2

Benar jika file1 lebih tua dari file2 , atau jika fail2 ada dan file1 tidak.

fail1 -ef fail2

Benar jika fail1 dan fail2 merujuk kepada peranti dan nombor inode yang sama.

-o optname

Benar jika pilihan nama pilihan shell diaktifkan. Lihat senarai opsyen di bawah penerangan pilihan -o ke set dibina di bawah.

-z rentetan

Benar jika panjang rentetan adalah sifar.

-n rentetan

tali

Benar jika panjang rentetan tidak sifar.

string1 == string2

Benar jika rentetan sama. = boleh digunakan di tempat == untuk pematuhan POSIX yang ketat.

string1 ! = string2

Benar jika tali tidak sama.

string1 < string2

Benar jika string1 menyusun sebelum string2 secara lexicographically dalam locale semasa.

string1 > string2

Benar jika string1 macam selepas string2 lexicographically dalam locale semasa.

arg1 OP arg2

OP adalah salah satu daripada -eq , -ne , -lt , -le , -gt , atau -ge . Pengendali binari aritmetik ini kembali benar jika arg1 sama dengan, tidak sama dengan, kurang daripada, kurang daripada atau sama dengan, lebih besar daripada, atau lebih besar daripada atau sama dengan arg2 , masing-masing. Arg1 dan arg2 boleh menjadi integer positif atau negatif.

PERLUASAN PERMOHONAN SEDIA

Apabila perintah yang mudah dilaksanakan, shell melaksanakan pengembangan, tugasan dan peralihan yang berikut, dari kiri ke kanan.

1.

Kata-kata yang ditulis oleh parser sebagai tugasan berubah (yang sebelum nama arahan) dan peralihan disimpan untuk pemprosesan kemudian.

2.

Perkataan-perkataan yang bukan pembolehubah atau peralihan berubah-ubah diperluas. Sekiranya ada perkataan selepas pengembangan, perkataan pertama diambil sebagai nama arahan dan kata-kata yang tinggal adalah hujah-hujah.

3.

Redirect dilakukan seperti diterangkan di atas di bawah REDIRECTION .

4.

Teks selepas = = dalam setiap pemboleh ubah berubah menjalani pengembangan tilde, pengembangan parameter, penggantian perintah, pengembangan aritmetik, dan penyingkiran kutipan sebelum diberikan kepada variabel.

Jika tiada hasil arahan arahan, tugasan pembolehubah mempengaruhi persekitaran shell semasa. Jika tidak, pembolehubah ditambah kepada persekitaran arahan yang dijalankan dan tidak menjejaskan persekitaran shell semasa. Sekiranya mana-mana tugasan cuba memberikan nilai ke pembolehubah readonly, ralat berlaku, dan perintah keluar dengan status bukan sifar.

Sekiranya tiada hasil arahan arahan, peralihan dilakukan, tetapi tidak menjejaskan persekitaran shell semasa. Kesilapan pengalihan menyebabkan arahan keluar dengan status bukan sifar.

Sekiranya terdapat nama arahan yang tersisa selepas pengembangan, hasil pelaksanaan diterangkan seperti di bawah. Jika tidak, arahan keluar. Sekiranya salah satu daripada ekspansi mengandungi penggantian perintah, status keluar perintah adalah status exit penggantian perintah terakhir yang dilakukan. Sekiranya tiada penggantian perintah, arahan keluar dengan status sifar.

PELAKSANAAN PERMOHONAN

Selepas arahan telah dibahagikan kepada perkataan, jika ia menghasilkan perintah mudah dan senarai argumen pilihan, tindakan berikut akan diambil.

Jika nama arahan tidak mengandungi garis miring, shell cuba untuk mengesannya. Sekiranya terdapat fungsi shell dengan nama itu, fungsi tersebut digunakan seperti yang diterangkan di atas dalam FUNGSI . Jika nama itu tidak sepadan dengan fungsi, shell mencarinya dalam senarai terbina shell. Sekiranya pertandingan ditemui, binaan itu digunakan.

Jika nama itu bukan fungsi shell atau builtin, dan tidak mengandungi slashes, bash mencari setiap elemen PATH untuk direktori yang mengandungi fail boleh laku oleh nama itu. Bash menggunakan jadual hash untuk mengingati nama laluan penuh fail boleh laku (lihat hash di bawah SHELL BUILTIN COMMANDS di bawah). Carian penuh direktori di PATH dilakukan hanya jika arahan tidak ditemui dalam jadual hash. Jika carian tidak berjaya, shell mencetak mesej ralat dan mengembalikan status keluar 127.

Jika carian berjaya, atau jika nama arahan mengandungi satu atau lebih garis miring, shell melaksanakan program yang dinamakan dalam persekitaran pelaksanaan berasingan. Argumen 0 ditetapkan kepada nama yang diberikan, dan argumen yang tinggal kepada arahan ditetapkan kepada argumen yang diberikan, jika ada.

Sekiranya pelaksanaan ini gagal kerana fail tersebut tidak dalam format boleh laku, dan fail itu bukan direktori, ia dianggap sebagai skrip shell , fail yang mengandungi perintah shell. Subkelompok dicetuskan untuk melaksanakannya. Anak kecil ini mengukuhkan semula dirinya sendiri, supaya kesan itu seolah-olah sebuah cengkerang baru telah digunakan untuk mengendalikan skrip, dengan pengecualian bahawa lokasi arahan yang diingini oleh ibu bapa (lihat hash di bawah SHELL BUILTIN COMMANDS ) dikekalkan oleh kanak-kanak itu.

Jika program itu adalah fail yang bermula dengan #! , baki baris pertama menentukan penterjemah untuk program tersebut. Shell melaksanakan jurubahasa yang dinyatakan pada sistem pengendalian yang tidak mengendalikan format yang boleh dilaksanakan sendiri. Hujah-hujah kepada jurubahasa terdiri daripada hujah pilihan tunggal berikutan nama jurubahasa di baris pertama program, diikuti dengan nama program, diikuti oleh argumen arahan, jika ada.

ALAM SEKITAR PELAKSANAAN

Cangkang mempunyai persekitaran pelaksanaan , yang terdiri dari yang berikut:

*

membuka fail yang diwarisi oleh shell pada penyerahan, seperti diubahsuai oleh redirect yang dibekalkan kepada executin builtin

*

direktori kerja semasa seperti yang ditetapkan oleh cd , pushd , atau popd , atau diwarisi oleh shell pada penyerahan

*

pemformatan mod penciptaan fail yang ditetapkan oleh umask atau diwariskan daripada ibu bapa shell itu

*

perangkap semasa yang ditetapkan oleh perangkap

*

parameter shell yang ditetapkan oleh tugasan pembolehubah atau dengan set atau diwariskan dari induk shell dalam persekitaran

*

fungsi shell yang ditakrifkan semasa pelaksanaan atau diwarisi dari ibu bapa shell di alam sekitar

*

pilihan yang diaktifkan pada penyerahan (sama ada secara lalai atau dengan argumen garisan baris) atau set

*

pilihan yang dibolehkan oleh shopt

*

alias shell yang ditakrifkan dengan alias

*

pelbagai ID proses, termasuk pekerjaan latar belakang, nilai $$ , dan nilai $ PPID

Apabila perintah yang mudah selain daripada fungsi builtin atau shell akan dilaksanakan, ia digunakan dalam persekitaran pelaksanaan yang berasingan yang terdiri daripada yang berikut. Melainkan dinyatakan sebaliknya, nilai-nilai itu diwarisi dari cangkang.

*

fail terbuka shell, ditambah sebarang pengubahsuaian dan penambahan yang ditentukan oleh peralihan kepada arahan

*

direktori kerja semasa

*

topeng mod penciptaan fail

*

pembolehubah shell yang ditandakan untuk eksport, bersama-sama dengan pembolehubah yang dieksport untuk arahan, yang diluluskan dalam persekitaran

*

perangkap yang ditangkap oleh shell diset semula kepada nilai yang diwarisi dari induk shell, dan perangkap yang diabaikan oleh shell diabaikan

Perintah yang digunakan dalam persekitaran yang berasingan ini tidak boleh menjejaskan persekitaran pelaksanaan shell.

Perintah penggantian perintah dan tak segerak dipanggil dalam persekitaran subkelompok yang merupakan pendua persekitaran shell, kecuali perangkap yang ditangkap oleh cengkerang akan diset semula kepada nilai-nilai yang diturunkan oleh cangkang dari induknya pada masa penyerahan. Perintah terbina yang dibina sebagai sebahagian daripada saluran paip juga dilaksanakan dalam persekitaran bawah tanah. Perubahan yang dibuat kepada persekitaran bawah tanah tidak boleh menjejaskan persekitaran pelaksanaan shell.

Sekiranya arahan diikuti oleh & & kawalan kerja tidak aktif, input standard lalai untuk arahan adalah fail kosong / dev / null . Jika tidak, arahan yang digunakan mewarisi deskriptor fail shell panggilan seperti yang diubahsuai oleh redirect.

LIHAT JUGA

Manual Rujukan Bash , Brian Fox dan Chet Ramey

Perpustakaan Gnu Readline , Brian Fox dan Chet Ramey

Perpustakaan Sejarah Gnu , Brian Fox dan Chet Ramey

Antara Muka Sistem Pengendalian Mudah Alih (POSIX) Bahagian 2: Shell dan Utiliti , IEEE

sh (1), ksh (1), csh (1)

emacs (1), vi (1)

readline (3)