Perintah Linux Bash adalahshpenterjemah bahasa arahan serasi yang menjalankan arahan dibaca dari input standard atau dari fail.Bash juga menggabungkan ciri-ciri berguna dari cengkerang Korn dan C (ksh dancsh).
Pilihan Bash
Selain pilihan shell tunggal aksara yang didokumenkan dalam perihalanditetapkan perintah dibina,bash menafsirkan pilihan berikut apabila ia digunakan:
- -c tali: Sekiranya-c pilihan ada, maka arahan dibaca dari tali . Sekiranya terdapat hujah selepas tali , mereka ditugaskan ke parameter kedudukan, bermula dengan$0.
- -i: Sekiranya-i pilihan ada, shell adalah interaktif .
- -l: Buatbash bertindak seolah-olah ia telah digunakan sebagai shell masuk.
- -r: Sekiranya-r pilihan ada, shell menjadi terhad.
- -s: Sekiranya-s pilihan ada, atau jika tiada hujah tetap 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 output standard. Ini adalah rentetan yang tertakluk kepada penterjemahan bahasa apabila lokasi semasa tidakC atauPOSIX. Ini membayangkan -n pilihan; tiada arahan akan dilaksanakan.
- - + O shopt_option : shopt_option adalah salah satu daripada pilihan shell yang diterima olehkedai dibina. Jika shopt_option hadir,-O menetapkan nilai pilihan itu, dan+ O tidak pasti. Jika shopt_option tidak dibekalkan, nama dan nilai pilihan shell diterima olehkedai dicetak pada output standard. Jika pilihan penyerahan adalah + O, output dipaparkan dalam format yang boleh digunakan semula sebagai input.
- --: A-- menandakan berakhirnya pilihan dan menonaktifkan pemprosesan pilihan selanjutnya. Sebarang hujah selepas-- dianggap sebagai nama fail dan hujah. Hujah- bersamaan dengan--.
Bash juga menafsirkan beberapa pilihan pelbagai aksara. Pilihan ini mesti muncul pada baris arahan sebelum pilihan tunggal aksara untuk diiktiraf:
- --dump-po-strings: Bersamaan dengan-D, tetapi outputnya adalah dalam GNU gettext po (fail mudah alih) format fail.
- --dump-string: Bersamaan dengan-D.
- - membantu: Paparkan mesej penggunaan pada output standard dan keluar dengan jayanya.
- - fail-fail: fail dan - fail fail fail : Jalankan arahan dari fail bukannya fail inisialisasi peribadi standard ~ / .bashrc jika cengkerang adalah interaktif.
- --log masuk: Bersamaan dengan-l.
- - tidak mengendahkan: Jangan gunakan GNUreadline perpustakaan untuk membaca baris arahan apabila shell adalah interaktif.
- --noprofile: Jangan baca fail permulaan sistem / etc / profile atau mana-mana fail permulaan peribadi ~ / .bash_profile , ~ / .bash_login , atau ~ / .profile . Secara lalai,bash membaca fail ini apabila ia digunakan sebagai shell masuk.
- --norc: Jangan baca dan laksanakan fail pemasukan peribadi ~ / .bashrc jika cengkerang adalah interaktif. Pilihan ini diaktifkan secara lalai jika shell digunakan sebagaish.
- -: Tukar tingkah lakubash di mana operasi lalai berbeza daripada standard POSIX untuk dipadankan dengan standard ( mod posix ).
- - terhad: Cangkerang menjadi terhad.
- - 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.
- - kata: Bersamaan dengan-v.
- - pengalihan: Tunjukkan maklumat versi untuk contoh inibash pada standard output dan keluar berjaya.
Argumen
Jika hujah kekal selepas pemprosesan pilihan dan tidak-c tidak-s opsyen telah dibekalkan, argumen pertama diandaikan sebagai nama fail yang mengandungi perintah shell. Jika bash digunakan dalam fesyen ini,$0 ditetapkan pada nama fail, dan parameter kedudukan ditetapkan ke hujah yang selebihnya.Bash membaca dan melaksanakan arahan dari fail ini; kemudian keluar.Bashstatus keluar ialah status keluar perintah terakhir yang dilaksanakan dalam skrip. Sekiranya tiada perintah dilaksanakan, status keluar adalah 0. Percubaan pertama dibuat untuk membuka fail dalam direktori semasa, dan, jika tiada fail dijumpai, shell akan mencari direktori dalamPATH untuk skrip.
Penyerahan
A shell login adalah salah satu watak pertamanya yang sifar adalah a-, atau yang bermula dengan--log masuk pilihan.
An interaktif shell adalah satu yang bermula tanpa hujah bukan pilihan dan tanpa-c pilihan yang input dan output standardnya dihubungkan ke terminal seperti yang ditentukan oleh isatty (3), atau satu dimulakan dengan-i pilihan.PS1 ditetapkan dan $- termasuk jika bash adalah interaktif, membolehkan skrip shell atau fail permulaan untuk menguji keadaan ini.
Perenggan berikut menerangkan bagaimanabash melaksanakan fail permulaannya. Sekiranya terdapat sebarang fail tetapi tidak dapat dibaca,bash melaporkan kesilapan. Tildes diperluas dalam nama fail seperti yang diterangkan dalam Tilde Expansion.
Bilabash digunakan sebagai shell masuk interaktif atau sebagai shell tidak interaktif dengan--log masuk pilihan, ia mula-mula membaca dan melaksanakan perintah dari 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. The--noprofile pilihan boleh digunakan apabila shell mula menghalang tingkah laku ini.
Apabila shell masuk keluar,bash membaca dan melaksanakan arahan dari fail ~ / .bash_logout , jika ada.
Apabila sebuah shell interaktif yang bukan shell masuk dimulakan,bash membaca dan melaksanakan perintah daripada ~ / .bashrc , jika fail itu wujud. Ini mungkin dihalang dengan menggunakan--norc pilihan. The- fail fail fail pilihan akan memaksabash untuk membaca dan melaksanakan perintah daripada fail bukannya ~ / .bashrc .
Bilabash dimulakan bukan secara interaktif - untuk menjalankan skrip shell, misalnya - ia mencari pembolehubahBASH_ENV dalam persekitaran, memperluaskan nilainya jika terdapat di sana, dan menggunakan nilai diperluas sebagai nama fail untuk dibaca dan dilaksanakan.Bash berkelakuan seolah-olah perintah berikut telah dilaksanakan:
jika -n "$ BASH_ENV"; kemudian. "$ BASH_ENV"; fi
tetapi nilaiPATH pembolehubah tidak digunakan untuk mencari nama fail. Jikabash dipanggil dengan namash, ia cuba meniru tingkah laku permulaan versi sejarahsh sama ada mungkin, semasa mematuhi piawaian POSIX juga. Apabila digunakan sebagai shell masuk interaktif atau shell tidak interaktif dengan--log masuk pilihannya, percubaan pertama untuk membaca dan melaksanakan perintah dari / etc / profile dan ~ / .profile , dalam perintah itu. The--noprofile pilihan boleh digunakan untuk menghalang tingkah laku ini. Apabila digunakan sebagai shell interaktif dengan nama itu sh, bash mencari pembolehubahENV, memperluas nilainya jika ditakrifkan, dan menggunakan nilai diperluas sebagai nama fail untuk dibaca dan dilaksanakan. Oleh sebab shell digunakan sebagaish tidak cuba membaca dan melaksanakan arahan dari sebarang fail permulaan lain,- fail fail pilihan tidak mempunyai kesan. Cakera bukan interaktif yang dipanggil dengan namash tidak cuba membaca sebarang fail permulaan yang lain. Apabila dipanggil sebagaish, bash memasuki posix mod selepas fail permulaan dibaca. Bilabash dimulakan pada posix mod, seperti dengan- pilihan baris arahan, ia mengikuti piawai POSIX untuk fail permulaan. Dalam mod ini, cangkang interaktif memperluaskanENV pembolehubah dan arahan dibaca dan dilaksanakan dari fail yang namanya adalah nilai diperluas. Tiada fail permulaan yang lain dibaca. Bash cubaan untuk menentukan bila ia dijalankan oleh daemon shell jauh, biasanya rshd . Jika bash menentukan ia sedang dijalankan oleh rshd , ia membaca dan melaksanakan perintah daripada ~ / .bashrc , jika fail itu wujud dan boleh dibaca. Ia tidak akan melakukan ini jika dipanggil sebagaish. The--norc pilihan boleh digunakan untuk menghalang tingkah laku ini, dan- fail fail pilihan boleh digunakan untuk memaksa fail lain untuk dibaca, tetapi rshd tidak biasanya memohon shell dengan pilihan tersebut atau membenarkan mereka dinyatakan. Jika shell dimulakan dengan id pengguna yang berkesan (kumpulan) tidak sama dengan id pengguna (kumpulan) yang sebenar, dan-p pilihan 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-p opsyen dibekalkan pada penyertaan, tingkah laku permulaan adalah sama, tetapi id pengguna yang berkesan tidak ditetapkan semula. Takrif berikut digunakan sepanjang seluruh dokumen ini: Kata-kata yang diperuntukkan adalah kata-kata yang mempunyai makna khas untuk shell. Kata-kata berikut diiktiraf sebagai dirizabkan apabila tidak disebutkan dan sama ada perkataan pertama perintah mudah atau perkataan ketiga akesatauuntuk arahan: ! kes melakukan elif lain esac fi untuk fungsi jika dalam pilih kemudian sehingga semasa {} masa A perintah mudah adalah urutan tugasan pembolehubah opsyen yang diikuti olehkosongperkataan dan peralihan berundur dan ditamatkan oleh a 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 a perintah mudah adalah status keluarnya, atau 128+ n jika arahan ditamatkan dengan isyarat n . A talian paip adalah urutan satu atau lebih arahan yang dipisahkan oleh watak|. Format untuk saluran paip ialah masa -p ! perintah | command2 … . Keluaran standard bagi perintah disambungkan melalui paip ke input standard command2 . Sambungan ini dilakukan sebelum sebarang peralihan yang ditetapkan oleh arahan. 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. Sekiranyamasa perkataan terpelihara didahului saluran paip, yang berlalu serta pengguna dan masa sistem yang digunakan oleh pelaksanaannya dilaporkan apabila saluran paip berakhir. The-p pilihan menukar format output kepada yang dinyatakan oleh POSIX. TheFORMAT MASA pembolehubah mungkin ditetapkan pada rentetan format yang menentukan bagaimana maklumat masa itu perlu dipaparkan. Setiap arahan dalam saluran paip dilaksanakan sebagai proses yang berasingan (dalam contoh kecil). A 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 a senarai bukannya koma bertitik untuk membatasi perintah. Jika arahan ditamatkan oleh pengendali kawalan&, shell melaksanakan perintah di latar belakang dalam kulit berwarna. Cangkang tidak menunggu perintah selesai, dan status pulangan adalah 0. Perintah dipisahkan oleh a; 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 dilaksanakan jika, dan hanya jika, command1 mengembalikan status keluar sifar. Senarai ATAU mempunyai borang command1 || command2 command2 dilaksanakan 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. A kompaun kompaun adalah salah satu daripada yang berikut: (senarai) : senarai dilaksanakan dalam subkelompok. Tugasan berubah dan perintah terbina yang mempengaruhi persekitaran shell tidak akan tetap berlaku setelah perintah selesai. Status pulangan adalah status keluar dari senarai . senarai {list; } : senarai hanya dilaksanakan dalam persekitaran shell semasa. senarai mesti ditamatkan dengan garis baru atau titik koma. Ini dikenali sebagai a perintah kumpulan . Status pulangan adalah status keluar dari senarai . Perhatikan bahawa tidak seperti metacharacters( dan), { dan} adalah kata-kata terpelihara dan mesti berlaku di mana perkataan simpanan diperkenankan untuk diiktiraf. Oleh kerana mereka tidak menyebabkan pecah perkataan, mereka mesti dipisahkan dari senarai oleh ruang kosong. ((ungkapan)) : The ungkapan dinilai berdasarkan peraturan yang diterangkan di bawah Penilaian Aritmetik. Sekiranya nilai ungkapan tidak sifar, status pulangan adalah 0; sebaliknya status pulangan adalah 1. Ini sama persis denganmari ' ungkapan '. ungkapan : Pulangkan status 0 atau 1 bergantung kepada penilaian ungkapan bersyarat ungkapan . Ekspresi terdiri daripada primata yang diterangkan di bawah Ekspresi Bersyarat. Kata pemisahan dan peluasan kata 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== dan!= pengendali digunakan, rentetan di sebelah kanan pengendali dianggap sebagai corak dan dipadankan mengikut peraturan yang diterangkan di bawahPemadanan 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: The&& dan|| pengendali tidak menilai expression2 jika nilai expression1 adalah mencukupi untuk menentukan nilai pulangan keseluruhan ungkapan bersyarat. Dalam shell bukan interaktif atau shell interaktif di mana interaktif_comments pilihan untukkedai builtin didayakan, perkataan bermula dengan# menyebabkan perkataan itu dan semua watak-watak yang tinggal di baris itu untuk diabaikan. Satu shell interaktif tanpainteraktif_comments pilihan didayakan tidak membenarkan komen. The interaktif_comments pilihan dihidupkan secara lalai dalam cengkerang interaktif. Memetik digunakan untuk menanggalkan makna khas aksara atau kata-kata ke shell. 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 satu metacharacters disenaraikan di atas di bawahDefinisi mempunyai makna khas untuk shell dan mesti dipetik jika ia mewakili dirinya sendiri. Apabila kemudahan peluasan sejarah arahan digunakan, perkembangan sejarah watak, biasanya!, mesti dipetik untuk mencegah pengembangan sejarah. Terdapat tiga mekanisme yang mengutip: melarikan diri watak , sebut harga tunggal, dan petikan berganda. Backslash yang tidak disebutkan () adalah melarikan diri watak . Ia mengekalkan nilai literal watak seterusnya yang berikut dengan pengecualian 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 tanda petik berganda mengekalkan nilai literal semua aksara dalam petikan, dengan pengecualian$, ', dan. Watak-wataknya$ dan' mengekalkan erti khas mereka dalam sebut harga berganda. Backslash mengekalkan erti khasnya hanya apabila diikuti oleh salah satu aksara berikut:$, ', ', , atau Parameter khas* dan@ mempunyai erti yang istimewa apabila dalam petikan berganda. Perkataan bentuk$' tali 'dirawat khusus. Perkataan itu mengembang ke tali , dengan aksara lompat-lompat yang digantikan seperti yang ditentukan oleh piawai ANSI C. Urutan melarikan diri backslash, jika ada, diterangkan seperti berikut: 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 lokasi semasa adalahC atauPOSIX, tanda dolar diabaikan. Jika rentetan diterjemahkan dan diganti, penggantian tersebut disebutkan dua kali. A parameter adalah entiti yang menyimpan nilai. Ia boleh menjadi nama , nombor, atau salah satu aksara khas yang disenaraikan di bawahParameter Khas. Untuk tujuan shell, a pembolehubah adalah parameter yang dilambangkan oleh a nama . Pemboleh ubah mempunyai a nilai dan sifar atau lebih atribut . Atribut ditugaskan menggunakanmengisytiharkan perintah dibina. Parameter ditetapkan jika diberi nilai. Rentetan null adalah nilai yang sah. Sebaik sahaja pembolehubah ditetapkan, ia mungkin tidak diubah hanya dengan menggunakantidak disetkan perintah dibina. A pembolehubah boleh diberikan kepada suatu pernyataan bentuk: nama = nilai Jika nilai tidak diberikan, pembolehubah diberikan rentetan null. Semua nilai-nilai menjalani pengembangan tilde, parameter dan pengembangan berubah, penggantian perintah, pengembangan aritmetik, dan penyingkiran kutipan. Jika pembolehubah mempunyaiinteger set atribut, kemudian nilai adalah tertakluk kepada pengembangan aritmetik walaupun pengembangan $ ((…)) tidak digunakan. Pemisahan perkataan tidak dilakukan, kecuali'$@' seperti yang dijelaskan di bawahParameter Khas. Pengembangan Pathname tidak dilakukan. Kenyataan penyerahan mungkin juga muncul sebagai argumen kepadamengisytiharkan, typeset, eksport, baca sahaja, dan tempatan perintah terbina. A parameter kedudukan adalah parameter yang dilambangkan oleh satu atau lebih digit, selain daripada satu angka 0. Parameter kedudukan diberikan dari hujah shell apabila ia dipanggil, dan boleh ditugaskan semula menggunakanditetapkan perintah dibina. Parameter kedudukan mungkin tidak diberikan kepada penyataan tugasan. Parameter positional digantikan sementara apabila fungsi shell dijalankan. Apabila parameter kedudukan yang terdiri daripada lebih daripada satu digit diperluaskan, ia mesti disertakan dalam pendakap. Cangkang merawat beberapa parameter khusus. Parameter ini hanya boleh dirujuk; tugasan kepada mereka tidak dibenarkan. Pembolehubah berikut ditetapkan oleh shell: BASH: Kembangkan ke nama fail penuh yang digunakan untuk menggunakan contoh inibash. BASH_VERSINFO: Pembolehubah array yang dibaca yang anggotanya memegang maklumat versi untuk contoh ini bash. Nilai yang diberikan kepada ahli array adalah seperti berikut: BASH_VERSION: Memperluas rentetan menggambarkan versi contoh inibash. COMP_CWORD: Indeks ke dalam$ {COMP_WORDS} dari perkataan yang mengandungi kedudukan kursor semasa. Pembolehubah ini hanya tersedia dalam fungsi shell yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan. COMP_LINE: Barisan arahan semasa. Pembolehubah ini hanya tersedia dalam fungsi shell dan arahan luaran yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan. COMP_POINT: Indeks kedudukan kursor semasa berbanding dengan permulaan arahan semasa. Jika kedudukan kursor semasa berada pada akhir arahan semasa, nilai pembolehubah ini bersamaan dengan$ {# COMP_LINE}. Pembolehubah ini hanya tersedia dalam fungsi shell dan arahan luaran yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan. COMP_WORDS: Pembolehubah tatasusunan yang mengandungi kata-kata individu dalam baris arahan semasa. Pembolehubah ini hanya tersedia dalam fungsi shell yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan. DIRSTACK: Pembolehubah array yang mengandungi kandungan semasa stack direktori. Direktori muncul dalam susunan mengikut urutan yang dipaparkan olehdirs dibina. Menugaskan ahli kepada pembolehubah array ini boleh digunakan untuk mengubah suai direktori yang sudah ada dalam timbunan, tetapipushd danpopd builtins mesti digunakan untuk menambah dan mengalih keluar direktori. Tugasan kepada pemboleh ubah ini tidak akan mengubah direktori semasa. JikaDIRSTACK tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. EUID: Memperluas kepada ID pengguna yang berkesan pengguna semasa, yang diinisialisasikan pada permulaan shell. Pembolehubah ini adalah readonly. FUNCNAME: Nama sebarang fungsi shell yang sedang dijalankan. Pemboleh ubah ini wujud hanya apabila fungsi shell dijalankan. Tugasan kepadaFUNCNAME tidak mempunyai kesan dan mengembalikan status ralat. JikaFUNCNAME tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. GROUPS: Pembolehubah tatasusunan yang mengandungi senarai kumpulan pengguna semasa adalah ahli. Tugasan kepadaGROUPS tidak mempunyai kesan dan mengembalikan status ralat. JikaGROUPS tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. HISTCMD: Nombor sejarah atau indeks dalam senarai sejarah arahan semasa. JikaHISTCMD tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. HOSTNAME: Secara automatik ditetapkan kepada nama hos semasa. HOSTTYPE: Tetapkan secara automatik kepada rentetan yang secara unik menggambarkan jenis mesin di manabash sedang melaksanakan. 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. JikaLINENO tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. MACHTYPE: Tetapkan secara automatik kepada rentetan yang menggambarkan sepenuhnya jenis sistem yang manabash sedang melaksanakan dalam GNU standard cpu-syarikat-sistem format. Lalai adalah bergantung kepada sistem. OLDPWD: Direktori kerja terdahulu seperti yang ditetapkan olehcd perintah. OPTARG: Nilai hujah pilihan terakhir yang diproses olehgetopts perintah dibina. OPTIND: Indeks hujah seterusnya akan diproses olehgetopts perintah dibina. OSTYPE: Tetapkan secara automatik kepada rentetan yang menerangkan sistem operasi yang manabash sedang melaksanakan. Lalai adalah bergantung kepada sistem. PIPESTATUS: Pembolehubah tatasusunan yang mengandungi senarai nilai status keluar daripada 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 olehcd perintah. RANDOM: Setiap kali parameter ini dirujuk, integer rawak antara 0 dan 32767 dihasilkan. Urutan nombor rawak boleh dimulakan dengan memberikan nilai kepada RANDOM. JikaRANDOM tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. MEMBUAT: Tetapkan pada baris input yang dibaca olehbaca builtin perintah apabila tiada hujah dibekalkan. SECONDS: Setiap kali parameter ini dirujuk, bilangan saat sejak invocation shell dikembalikan. Jika nilai diberikan kepadaSECONDS, nilai yang dikembalikan pada rujukan berikutnya ialah bilangan saat sejak penugasan ditambah nilai yang diberikan. Jika SECONDS tidak disetkan, ia kehilangan sifat khasnya, walaupun ia kemudiannya ditetapkan semula. SHELLOPTS: Satu senarai shell pilihan shell yang dipisahkan. Setiap perkataan dalam senarai adalah hujah yang sah untuk-o pilihan untukditetapkan perintah dibina. Pilihan yang terdapat dalamSHELLOPTS adalah yang dilaporkan sebagai pada olehset -o. Sekiranya pembolehubah ini berada dalam persekitaran apabilabash bermula, setiap pilihan shell dalam senarai akan diaktifkan sebelum membaca sebarang fail permulaan. Pembolehubah ini adalah readonly. SHLVL: Ditambah oleh setiap kali suatu contohbash 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 diperhatikan. BASH_ENV: Jika parameter ini ditetapkan ketikabash sedang menjalankan skrip shell, nilainya ditafsirkan sebagai nama fail yang mengandungi perintah untuk memulakan shell, seperti dalam ~ / .bashrc . Nilai BASH_ENV adalah 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 untukcd perintah. Ini adalah senarai direktori yang dipisahkan dengan kolon di mana shell mencari direktori destinasi yang ditentukan olehcd perintah. Nilai sampel adalah ".: ~: / Usr". COLUMNS: Digunakan olehpilih membina perintah untuk menentukan lebar terminal apabila mencetak senarai pilihan. Secara automatik ditetapkan apabila menerima SIGWINCH. MENINGKATKAN: Pembolehubah array dari manabash membaca kemungkinan penyelesaian yang dihasilkan oleh fungsi shell yang digunakan oleh kemudahan penyelesaian yang dapat diprogramkan. FCEDIT: Editor lalai untukfc perintah dibina. FIGNORE: Senarai senarai sufiks yang dipisahkan dengan kolon untuk diabaikan semasa menjalankan nama fail selesai. Nama fail yang sufiks sepadan dengan salah satu penyertaan masukFIGNORE 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 dalamGLOBIGNORE, ia dikeluarkan dari senarai padanan. HISTCONTROL: Jika ditetapkan kepada nilai mengabaikannya , garis yang bermula dengan aruang watak tidak dimasukkan dalam senarai sejarah. Jika ditetapkan kepada nilai tidak disedari , baris yang sepadan dengan baris sejarah yang terakhir tidak dimasukkan. Nilai bodoh menggabungkan dua pilihan. Sekiranya tidak ditetapkan atau jika ditetapkan kepada sebarang nilai lain daripada yang di atas, semua baris yang dibaca oleh parser akan disimpan dalam senarai sejarah, tertakluk kepada nilaiHISTIGNORE. Fungsi pembolehubah ini digantikan oleh HISTIGNORE. Garis kedua dan seterusnya perintah kompa berbilang baris tidak diuji, dan ditambah ke dalam sejarah tanpa mengira nilaiHISTCONTROL. SEJARAH: Nama fail di mana sejarah arahan disimpan. Nilai lalai ialah ~ / .bash_history . Sekiranya tidak ditetapkan, sejarah arahan tidak disimpan apabila keluar shell interaktif. HISTFILESIZE: Bilangan maksimum baris yang terdapat 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 perintah yang harus disimpan dalam senarai sejarah. Setiap corak berlabuh di permulaan garisan dan mesti sepadan dengan garisan lengkap (tidak tersirat '*'dilampirkan). Setiap pola diuji terhadap garisan selepas cek yang ditentukan olehHISTCONTROL digunakan. Sebagai tambahan kepada watak-watak pencocokan corak shell biasa, '&'sepadan dengan baris sejarah terdahulu. '&'boleh melarikan diri menggunakan backslash; backslash dikeluarkan sebelum cuba perlawanan. Garis kedua dan seterusnya perintah kompa berbilang baris tidak diuji dan ditambah ke dalam sejarah tanpa mengira nilaiHISTIGNORE. HISTSIZE: Bilangan arahan yang perlu diingat dalam sejarah arahan. Nilai lalai ialah 500. HOME: Direktori rumah pengguna semasa; hujah lalai untukcd perintah dibina. Nilai pembolehubah ini juga digunakan semasa melaksanakan pengembangan tilde. HOSTFILE: Mengandungi nama fail dalam format yang sama seperti / etc / hosts yang perlu dibaca apabila shell perlu melengkapkan nama hos. Senarai penyempurnaan nama hos mungkin boleh diubah semasa shell berjalan; penyiapan nama hantaran masa seterusnya dicuba setelah nilai diubah,bash menambah kandungan fail baru ke senarai yang sedia ada. Jika HOSTFILE ditetapkan, tetapi tidak mempunyai nilai,bash cuba membaca / etc / hosts untuk mendapatkan senarai kemungkinan penyiapan nama hos. BilaHOSTFILE tidak ditetapkan, senarai nama hos dipadam. IFS: The Pemisah Lapangan Dalaman digunakan untuk pemisahan perkataan selepas pengembangan dan untuk memecah garisan ke dalam kata-kata denganbaca perintah dibina. Nilai lalai ialah " IGNOREEOF: Mengawal tindakan alat interaktif apabila diterimaEOF watak sebagai input tunggal. Jika ditetapkan, nilai itu adalah bilangan berturut-turutEOF aksara yang mesti ditaip sebagai aksara pertama pada baris input sebelum inibash keluar. Jika pembolehubah wujud tetapi tidak mempunyai nilai angka atau tidak mempunyai nilai, nilai asal ialah 10. Jika tidak wujud,EOF menandakan akhir input ke shell. INPUTRC: Nama fail untukreadline fail permulaan, mengatasi lalai ~ / .inputrc . LANG: Digunakan untuk menentukan kategori locale untuk mana-mana kategori yang tidak dipilih secara khusus dengan pembolehubah bermula denganLC_. LC_ALL: Pemboleh ubah ini mengatasi nilaiLANG dan lain-lainLC_ pembolehubah yang menyatakan kategori locale. LC_COLLATE: Pembolehubah ini menentukan perintah pengubahan yang digunakan apabila menyusun keputusan pengembangan laluan laluan dan menentukan kelakuan ungkapan jarak, kelas kesamaan, dan susunan susunan 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 lokasi yang digunakan untuk menterjemahkan rentetan rangkap dua yang didahului oleh a$. LC_NUMERIC: Pembolehubah ini menentukan kategori locale yang digunakan untuk pemformatan nombor. LINES: Digunakan olehpilih membina arahan untuk menentukan panjang lajur untuk senarai pemilihan percetakan. Secara automatik ditetapkan apabila menerima SIGWINCH. MAIL: Jika parameter ini ditetapkan pada nama fail danMAILPATH pemboleh ubah tidak ditetapkan,bashmemberitahu pengguna kedatangan mel dalam fail yang ditentukan. MAILCHECK: Menentukan berapa kerap (dalam saat)bash cek untuk mel. Lalai adalah 60 saat. Apabila sudah waktunya untuk memeriksa mel, shell itu akan melakukannya sebelum memaparkan petikan utama. Jika pembolehubah 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 yang dipisahkan oleh kolon 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 adalah bergantung kepada sistem (/ var / mail /$ USER). OPTERR: Jika ditetapkan kepada nilai 1,bash memaparkan mesej ralat yang dihasilkan olehgetopts perintah dibina.OPTERR diisytiharkan kepada 1 setiap kali shell dipanggil atau skrip shell dilaksanakan. PATH: Laluan carian bagi arahan. Ia adalah senarai direktori yang dipisahkan dengan kolon di mana shell mencari perintah. Laluan lalai bergantung kepada sistem dan ditetapkan oleh pentadbir yang memasangbash. Nilai umum adalah "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''. POSIXLY_CORRECT: Jika pemboleh ubah ini berada dalam persekitaran apabilabash bermula, shell masuk mod posix sebelum membaca fail permulaan, seolah-olah- Pilihan penyerahan telah dibekalkan. Jika ia ditetapkan semasa shell sedang berjalan,bash membolehkannya mod posix seolah-olah perintah itu set -o posix telah dilaksanakan. PROMPT_COMMAND: Jika ditetapkan, nilai dilaksanakan sebagai perintah sebelum mengeluarkan setiap perbaruan utama. PS1: Nilai parameter ini diperluas dan digunakan sebagai rentetan kiasan utama. Nilai lalai ialah " s- v $''. PS2: Nilai parameter ini diperluas sepertiPS1 dan digunakan sebagai rentetan petak sekunder. Lalai adalah "> ''. PS3: Nilai parameter ini digunakan sebagai petanda untukpilih perintah. PS4: Nilai parameter ini diperluas sepertiPS1, dan nilai dicetak sebelum setiap arahanbash memaparkan semasa jejak pelaksanaan. Watak pertamaPS4 direplikasi 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 saluran paip yang diawali denganmasa perkataan terpelihara hendaklah dipaparkan. The % watak memperkenalkan urutan melarikan diri yang diperluaskan kepada nilai masa atau maklumat lain. Urutan melarikan diri dan makna mereka adalah seperti berikut. Pendakap gigi menandakan bahagian pilihan. Pilihannya p adalah angka yang menyatakan ketepatan , bilangan digit pecahan selepas titik perpuluhan. Nilai 0 menyebabkan tiada titik perpuluhan atau pecahan untuk menjadi output. Sebanyak tiga tempat selepas titik perpuluhan boleh ditentukan; nilai-nilai p lebih besar daripada 3 akan diubah menjadi 3. Jika p tidak dinyatakan, nilai 3 digunakan. Pilihannyal menentukan format yang lebih lama, termasuk minit, borang MM m SS . FF s. Nilai p menentukan sama ada pecahan dimasukkan atau tidak. Jika pembolehubah ini tidak ditetapkan,bash bertindak seolah-olah ia mempunyai nilai $ ' nreal 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 untukbaca dibina. Thepilih arahan tamat jika input tidak tiba selepasnyaTMOUT 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: Pemboleh ubah 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. Tiada kekaburan yang dibenarkan. Sekiranya terdapat lebih daripada satu pekerjaan yang bermula dengan rentetan yang diketik, pekerjaan yang paling baru diakses dipilih. The nama daripada kerja berhenti, dalam konteks ini, adalah baris arahan yang digunakan untuk memulakannya. Jika ditetapkan kepada nilai tepat , rentetan yang dibekalkan mesti sepadan dengan nama pekerjaan yang berhenti dengan tepat; jika ditetapkan kepada substring , rentetan yang dibekalkan perlu dipadankan dengan substring nama kerja berhenti. The substring nilai memberi fungsi yang sama dengan%? pengecam pekerjaan. Jika ditetapkan kepada sebarang nilai lain, rentetan yang dibekalkan mesti menjadi awalan nama kerja yang berhenti; ini menyediakan fungsi yang sama dengan% pengecam pekerjaan. histchars: Dua atau tiga aksara yang mengawal perkembangan sejarah dan tokenization. Watak pertama ialah perkembangan sejarah watak, watak yang menandakan permulaan perkembangan sejarah, biasanya '!'. Watak kedua ialah penggantian cepat watak, yang digunakan sebagai landasan untuk memecahkan perintah terdahulu yang dimasukkan, menggantikan satu tali untuk yang lain dalam perintah itu. Lalai adalah '^'. Watak ketiga pilihan ialah watak yang menunjukkan bahawa baki garis adalah komen apabila ditemui sebagai aksara pertama kata, 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. Bash menyediakan pembolehubah pelbagai dimensi. Mana-mana pembolehubah boleh digunakan sebagai array; yang mengisytiharkan terbina akan mengisytiharkan pelbagai array secara jelas. Tiada batasan maksimum pada saiz tatasusunan atau apa-apa keperluan yang ahli diindeks atau ditugaskan bersamaan. Array diindeks menggunakan bilangan bulat dan berasaskan sifar. Arahan dibuat secara automatik jika mana-mana pembolehubah ditugaskan untuk menggunakan sintaks nama subskrip = nilai . The subskrip dianggap sebagai ungkapan aritmetik yang mesti dinilai ke nombor yang lebih besar daripada atau sama dengan sifar. Untuk menyatakan secara terperinci pelbagai, gunakanmengisytiharkan -a nama . mengisytiharkan -a nama subskrip juga diterima; yang subskrip diabaikan. Atribut boleh ditentukan untuk pembolehubah array menggunakanmengisytiharkan dan baca sahaja terbina. Setiap atribut terpakai kepada semua ahli array. Arrays ditugaskan untuk menggunakan tugasan majikan borang nama =(nilai 1 … nilai n ), di mana masing-masing nilai adalah bentuk subskrip = tali . Hanya tali adalah 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 olehmengisytiharkan dibina. Unsur array individu boleh ditugaskan untuk menggunakan nama subskrip = nilai sintaks. Mana-mana unsur array boleh dirujuk menggunakan $ { nama subskrip }. Para pendakap diperlukan untuk mengelakkan konflik dengan pengembangan nama laluan. Jika subskrip adalah@ atau*, perkataan itu memperluaskan kepada semua ahli nama . Subskrip ini hanya berbeza apabila perkataan muncul dalam petikan berganda. Sekiranya perkataan tersebut disebut-sebut, $ { nama *} memperluaskan kepada satu perkataan dengan nilai setiap ahli array dipisahkan oleh aksara pertamaIFS pembolehubah khas, dan $ { nama @} memperluaskan setiap elemen nama kepada perkataan berasingan. Apabila tiada ahli array, $ { nama @} berkembang menjadi apa-apa. Ini serupa dengan pengembangan parameter khas* dan@. ${# nama subskrip } mengembang hingga $ { nama subskrip }. Jika subskrip adalah* atau@, pengembangan adalah bilangan unsur dalam tatasusunan. Merujuk kepada pembolehubah tatasusunan tanpa subskrip adalah bersamaan dengan merujuk elemen sifar. Thetidak disetkan builtin digunakan untuk memusnahkan tatasusunan.Unset nama subskrip memusnahkan unsur array pada indeks subskrip . Unset nama , di mana nama adalah array, atautidak disetkan nama subskrip , di mana subskrip adalah* atau@, menghilangkan keseluruhan array. Themengisytiharkan, tempatan, danbaca sahaja yang dibina masing-masing menerima a-a pilihan untuk menentukan array. Thebaca builtin menerima a-a pilihan untuk menetapkan senarai perkataan yang dibaca dari input standard ke array. Theditetapkan danmengisytiharkan builtins memaparkan nilai pelbagai dengan cara yang membolehkan mereka digunakan semula sebagai tugasan. 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 dan pengembangan yang berubah-ubah, pengembangan aritmetik, dan penggantian perintah (dilakukan dengan cara kiri-ke-kanan), pembahagian kata, dan pengembangan nama laluan. Mengenai sistem yang boleh menyokongnya, terdapat pengembangan tambahan yang tersedia: penggantian proses . Hanya pengembangan pengembangan, pemisahan perkataan, dan pengembangan laluan laluan boleh mengubah bilangan perkataan pengembangan; Perkembangan lain memperluaskan satu perkataan kepada satu perkataan. Satu-satunya pengecualian untuk ini adalah pengembangan "$@"dan"${ nama @}'. Perkembangan Brace adalah satu mekanisme di mana rentetan sewenang-wenangnya dijana. Mekanisme ini serupa dengan pengembangan nama laluan , tetapi nama fail yang dihasilkan tidak perlu wujud. Corak yang perlu diperluas mengambil bentuk pilihan pengantar , diikuti oleh satu siri strata yang dipisahkan antara sepasang kurungan, diikuti dengan pilihan postscript . 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, a{d, c, b}e berkembang menjadi "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 menggunakan apa-apa tafsiran sintaktik kepada konteks pengembangan atau teks antara pendakap. Pengembangan pembentukan yang betul mestilah mengandungi pendakap pembukaan dan penutup yang tidak disebut harga dan sekurang-kurangnya satu koma yang tidak disebut harga. Apa-apa pembesaran pembentukan yang salah dibiarkan tidak berubah. A{ atau, boleh dikutip dengan backslash untuk mengelakkannya daripada dianggap sebagai sebahagian daripada ungkapan pendakap. Untuk mengelakkan konflik dengan pengembangan parameter, rentetan${ tidak dianggap layak untuk pengembangan. 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 sejarahsh, yang tidak merawat membuka atau menutup pendakap khas apabila mereka muncul sebagai sebahagian daripada perkataan dan mengekalkannya dalam output.Bash menghilangkan pendakap dari kata-kata sebagai akibat daripada pengembangan. Sebagai contoh, perkataan yang dimasukkan kesh<
Definisi
Kata-kata Tersimpan
Shell Tatabahasa: Perintah Mudah
Pipelines
Senarai
Perintah Kompaun
Komen
Memetik
Parameter
Parameter Posisi
Parameter Khas
Pembolehubah Shell
Arrays
Pengembangan
Pengembangan Brace