Perintah Linux Pesta adalahSH-pengguna bahasa perintah kompatibel yang mengeksekusi perintah dibaca dari input standar atau dari file.Pesta juga menggabungkan fitur yang berguna dari kerang Korn dan C (ksh dancsh).
Opsi Bash
Selain opsi shell karakter tunggal didokumentasikan dalam deskripsiset perintah bawaan,pesta menginterpretasikan opsi berikut ketika dipanggil:
- -c tali: Jika itu-c pilihan hadir, maka perintah dibaca dari tali . Jika ada argumen setelah tali , mereka ditugaskan ke parameter posisi, dimulai dengan$0.
- -saya: Jika itu-saya ada opsi, shell ini interaktif .
- -l: Membuatpesta bertindak seolah-olah itu telah dipanggil sebagai shell login.
- -r: Jika itu-r pilihan hadir, shell menjadi terbatas.
- -s: Jika itu-s ada opsi, atau jika tidak ada argumen yang tersisa setelah pemrosesan opsi, maka perintah dibaca dari input standar. Opsi ini memungkinkan parameter posisi yang akan diatur saat memanggil shell interaktif.
- -D: Daftar semua string yang dikutip ganda yang didahului oleh$ dicetak pada output standar. Ini adalah string yang tunduk pada terjemahan bahasa ketika lokal saat ini tidakC atauPOSIX. Ini menyiratkan -n pilihan; tidak ada perintah yang akan dieksekusi.
- - + O shopt_option : shopt_option adalah salah satu opsi shell yang diterima olehshopt builtin. Jika shopt_option hadir,-HAI menetapkan nilai opsi itu, dan+ O memperbaikinya. Jika shopt_option tidak disediakan, nama dan nilai dari opsi shell diterima olehshopt dicetak pada output standar. Jika opsi permintaannya + O, output ditampilkan dalam format yang dapat digunakan kembali sebagai input.
- --: SEBUAH-- sinyal akhir opsi dan menonaktifkan pemrosesan opsi lebih lanjut. Argumen apa pun setelah-- diperlakukan sebagai nama file dan argumen. Argumen tentang- setara dengan--.
Pesta juga menafsirkan sejumlah opsi multi-karakter. Opsi-opsi ini harus muncul pada baris perintah sebelum opsi satu karakter dikenali:
- - Dump-po-string: Setara dengan-D, tetapi hasilnya ada di GNU gettext po Format file (portable object).
- --dumpukan tali: Setara dengan-D.
- --membantu: Menampilkan pesan penggunaan pada output standar dan keluar dengan sukses.
- --init-file: mengajukan dan --rcfile mengajukan : Jalankan perintah dari mengajukan bukannya file inisialisasi pribadi standar ~ / .bashrc jika shell itu interaktif.
- --masuk: Setara dengan-l.
- --noediting: Jangan gunakan GNUreadline perpustakaan untuk membaca baris perintah saat shell interaktif.
- --noprofile: Jangan membaca file startup sistemwide / etc / profile atau salah satu file inisialisasi pribadi ~ / .bash_profile , ~ / .bash_login , atau ~ / .profile . Secara default,pesta membaca file-file ini ketika dipanggil sebagai shell login.
- --norc: Jangan membaca dan mengeksekusi file inisialisasi pribadi ~ / .bashrc jika shell itu interaktif. Opsi ini aktif secara default jika shell dipanggil sebagaiSH.
- --posix: Mengubah perilakupesta di mana operasi default berbeda dari standar POSIX agar sesuai dengan standar ( mode posix ).
- --terbatas: Shell menjadi terbatas.
- --rpm-membutuhkan: Buat daftar file yang diperlukan untuk skrip shell untuk dijalankan. Ini menyiratkan '-n' dan tunduk pada batasan yang sama seperti pemeriksaan pengecekan kesalahan waktu kompilasi; Backticks, tes, dan evals tidak diurai sehingga beberapa dependensi mungkin terlewatkan.
- --verbose: Setara dengan-v.
- --versi: Tampilkan informasi versi untuk contoh inipesta pada output standar dan keluar dengan sukses.
Argumen
Jika argumen tetap ada setelah pemrosesan opsi dan tidak ada-c tidak juga-s opsi telah disediakan, argumen pertama diasumsikan sebagai nama file yang berisi perintah shell. Jika pesta dipanggil dengan cara ini,$0 diatur ke nama file, dan parameter posisi diatur ke argumen yang tersisa.Pesta membaca dan menjalankan perintah dari file ini; lalu keluar.PestaStatus keluar adalah status keluar dari perintah terakhir yang dijalankan dalam skrip. Jika tidak ada perintah yang dijalankan, status keluar adalah 0. Upaya pertama dilakukan untuk membuka file di direktori saat ini, dan, jika tidak ada file yang ditemukan, maka shell mencari direktori diPATH untuk naskahnya.
Doa
SEBUAH shell login adalah salah satu yang karakter pertama dari argumen nol adalah a-, atau yang dimulai dengan--masuk pilihan.
Sebuah interaktif shell adalah salah satu dimulai tanpa argumen non-opsi dan tanpa-c pilihan yang input dan output standar keduanya terhubung ke terminal yang ditentukan oleh isatty (3), atau satu dimulai dengan-saya pilihan.PS1 diatur dan $- termasuk jika bash bersifat interaktif, memungkinkan skrip shell atau file startup untuk menguji status ini.
Paragraf berikut menjelaskan bagaimanapesta mengeksekusi file startup-nya. Jika ada file yang ada tetapi tidak bisa dibaca,pesta melaporkan kesalahan. Tilde diperluas dalam nama file seperti yang dijelaskan dalam Tilde Expansion.
Kapanpesta dipanggil sebagai shell login interaktif atau sebagai shell non-interaktif dengan--masuk pilihan, pertama kali membaca dan mengeksekusi perintah dari file / etc / profile , jika file itu ada. Setelah membaca file itu, ia mencari ~ / .bash_profile , ~ / .bash_login , dan ~ / .profile , dalam urutan itu, dan membaca dan mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca. Itu--noprofile pilihan dapat digunakan ketika shell mulai menghambat perilaku ini.
Saat kotak masuk masuk,pesta membaca dan menjalankan perintah dari file ~ / .bash_logout , jika ada.
Ketika shell interaktif yang bukan shell login dimulai,pesta membaca dan menjalankan perintah dari ~ / .bashrc , jika file itu ada. Ini mungkin dihambat dengan menggunakan--norc pilihan. Itu--rcfile mengajukan opsi akan memaksapesta untuk membaca dan menjalankan perintah dari mengajukan dari pada ~ / .bashrc .
Kapanpesta dimulai non-interaktif - untuk menjalankan skrip shell, misalnya - mencari variabelBASH_ENV di lingkungan, memperluas nilainya jika muncul di sana, dan menggunakan nilai yang diperluas sebagai nama file untuk dibaca dan dieksekusi.Pesta berperilaku seolah-olah perintah berikut dieksekusi:
jika -n "$ BASH_ENV"; kemudian . "$ BASH_ENV"; fi
tetapi nilai dariPATH variabel tidak digunakan untuk mencari nama file. Jikapesta dipanggil dengan namaSH, mencoba untuk meniru perilaku startup versi historisSH sedekat mungkin, sambil menyesuaikan dengan standar POSIX juga. Ketika dipanggil sebagai shell login interaktif atau shell non-interaktif dengan--masuk pilihan, itu pertama kali mencoba untuk membaca dan menjalankan perintah dari / etc / profile dan ~ / .profile , dalam urutan itu. Itu--noprofile pilihan dapat digunakan untuk menghambat perilaku ini. Ketika dipanggil sebagai shell interaktif dengan nama SH, pesta mencari variabelENV, memperluas nilainya jika didefinisikan, dan menggunakan nilai yang diperluas sebagai nama file untuk dibaca dan dieksekusi. Karena shell dipanggil sebagaiSH tidak mencoba untuk membaca dan menjalankan perintah dari file startup lainnya,--rcfile pilihan tidak berpengaruh. Shell non-interaktif dipanggil dengan namaSH tidak mencoba membaca file startup lainnya. Saat dipanggil sebagaiSH, pesta masuk posix mode setelah file startup dibaca. Kapanpesta dimulai posix mode, seperti pada--posix opsi baris perintah, mengikuti standar POSIX untuk file startup. Dalam mode ini, shell interaktif memperluasENV variabel dan perintah dibaca dan dijalankan dari file yang namanya adalah nilai yang diperluas. Tidak ada file startup lain yang dibaca. Pesta mencoba menentukan kapan dijalankan oleh daemon shell jarak jauh, biasanya rshd . Jika pesta menentukan itu sedang dijalankan oleh rshd , membaca dan menjalankan perintah dari ~ / .bashrc , jika file itu ada dan dapat dibaca. Ini tidak akan melakukan ini jika dipanggil sebagaiSH. Itu--norc opsi dapat digunakan untuk menghambat perilaku ini, dan--rcfile pilihan dapat digunakan untuk memaksa file lain untuk dibaca, tetapi rshd umumnya tidak memanggil shell dengan opsi-opsi atau memungkinkan mereka untuk ditentukan. Jika shell dimulai dengan id pengguna yang efektif (grup) tidak sama dengan id pengguna nyata (grup), dan-p opsi tidak disediakan, tidak ada file startup yang dibaca, fungsi shell tidak diwarisi dari lingkungan,SHELLOPTS variabel, jika muncul di lingkungan, diabaikan, dan id pengguna yang efektif diatur ke id pengguna yang sebenarnya. Jika itu-p Pilihan diberikan saat permintaan, perilaku startup adalah sama, tetapi id pengguna yang efektif tidak diatur ulang. Definisi berikut digunakan di seluruh dokumen ini: Kata-kata yang dilindungi adalah kata-kata yang memiliki arti khusus untuk shell. Kata-kata berikut ini dikenali sebagai reserved ketika tidak diberi tanda kutip dan kata pertama dari perintah sederhana atau kata ketiga dari akasusatauuntuk perintah: ! case dilakukan elif else esac fi untuk function jika di pilih kemudian hingga sementara waktu {} SEBUAH perintah sederhana adalah urutan tugas variabel opsional diikuti olehkosongkata-kata yang dipisahkan dan pengalihan dan diakhiri oleh operator kontrol . Kata pertama menentukan perintah yang akan dieksekusi, dan dilewatkan sebagai argumen nol. Kata-kata yang tersisa dilewatkan sebagai argumen ke perintah yang dipanggil. Nilai kembalian a perintah sederhana adalah status keluarnya, atau 128+ n jika perintah diakhiri oleh sinyal n . SEBUAH saluran pipa adalah urutan satu atau lebih perintah yang dipisahkan oleh karakter|. Format untuk saluran pipa adalah waktu -p ! perintah | perintah2 … . Keluaran standar dari perintah terhubung melalui pipa ke input standar perintah2 . Koneksi ini dilakukan sebelum redirections yang ditentukan oleh perintah. Jika kata pendiam! mendahului saluran pipa, status keluar dari pipa itu adalah TIDAK logis dari status keluar dari perintah terakhir. Jika tidak, status pipa adalah status keluar dari perintah terakhir. Shell menunggu semua perintah dalam pipa untuk mengakhiri sebelum mengembalikan nilai. Jika ituwaktu kata yang disimpan sebelumnya mendahului suatu jalur pipa, waktu yang dilalui begitu juga dengan pengguna dan waktu sistem yang dikonsumsi oleh pelaksanaannya dilaporkan ketika saluran pipa itu berakhir. Itu-p opsi mengubah format output ke yang ditentukan oleh POSIX. ItuFORMAT WAKTU variabel dapat diatur ke string format yang menentukan bagaimana informasi waktu harus ditampilkan. Setiap perintah dalam suatu jalur pipa dijalankan sebagai proses terpisah (dalam subkulit, misalnya). SEBUAH daftar adalah urutan satu atau lebih saluran pipa yang dipisahkan oleh salah satu operator;, &, &&, atau||, dan secara opsional diakhiri oleh salah satu;, &, atau Dari daftar operator ini,&& dan|| memiliki prioritas yang sama, diikuti oleh; dan&, yang memiliki prioritas yang sama. Urutan satu atau beberapa baris baru dapat muncul di a daftar bukannya titik koma untuk membatasi perintah. Jika perintah diakhiri oleh operator kontrol&, shell mengeksekusi perintah di Latar Belakang dalam subkulit. Shell tidak menunggu perintah selesai, dan status kembalian adalah 0. Perintah dipisahkan oleh a; dieksekusi secara berurutan; shell menunggu setiap perintah untuk mengakhiri secara bergantian. Status kembalinya adalah status keluar dari perintah terakhir yang dijalankan. Operator kontrol&& dan|| menunjukkan daftar AND dan daftar OR, masing-masing. Daftar DAN memiliki formulir perintah1 && perintah2 perintah2 dijalankan jika, dan hanya jika, perintah1 mengembalikan status keluar dari nol. Daftar OR memiliki formulir perintah1 || perintah2 perintah2 dijalankan jika dan hanya jika perintah1 mengembalikan status keluar non-nol. Status pengembalian daftar DAN dan ATAU adalah status keluar dari perintah terakhir yang dijalankan dalam daftar. SEBUAH komando gabungan adalah salah satu dari yang berikut: (daftar) : daftar dieksekusi dalam subkulit. Tugas variabel dan perintah builtin yang mempengaruhi lingkungan shell tidak tetap berlaku setelah perintah selesai. Status kembalinya adalah status keluar daftar . {daftar; } : daftar hanya dieksekusi dalam lingkungan shell saat ini. daftar harus diakhiri dengan baris baru atau titik koma. Ini dikenal sebagai perintah grup . Status kembalinya adalah status keluar daftar . Perhatikan bahwa tidak seperti metakarakter( dan), { dan} adalah kata-kata pendiam dan harus terjadi di mana kata yang dilindungi undang-undang diizinkan untuk diakui. Karena mereka tidak menyebabkan patah kata, mereka harus dipisahkan daftar dengan spasi putih. ((ekspresi)) : The ekspresi dievaluasi sesuai dengan aturan yang dijelaskan di bawah Evaluasi Aritmatika. Jika nilai ekspresi tidak nol, status pengembalian adalah 0; jika tidak, status kembalinya adalah 1. Ini sama persis denganmembiarkan ' ekspresi '. ekspresi : Mengembalikan status 0 atau 1 tergantung pada evaluasi ekspresi kondisional ekspresi . Ekspresi terdiri dari pemilihan pendahuluan yang dijelaskan di bawah ini Ekspresi Bersyarat. Pemisahan kata dan perluasan jalur nama tidak dilakukan pada kata di antara dan; ekspansi tilde, parameter dan ekspansi variabel, ekspansi aritmatika, substitusi perintah, substitusi proses, dan penghapusan kutipan dilakukan. Ketika== dan!= operator digunakan, string di sebelah kanan operator dianggap sebagai pola dan dicocokkan sesuai dengan aturan yang dijelaskan di bawahPencocokan Pola. Nilai kembalian adalah 0 jika string cocok atau tidak cocok dengan pola, masing-masing, dan 1 sebaliknya. Setiap bagian dari pola dapat dikutip untuk memaksanya untuk dicocokkan sebagai string. Ekspresi dapat digabungkan menggunakan operator berikut, yang terdaftar dalam urutan menurun prioritas: Itu&& dan|| operator tidak mengevaluasi expression2 jika nilai expression1 cukup untuk menentukan nilai kembalinya seluruh ekspresi kondisional. Dalam shell non-interaktif atau shell interaktif di mana interactive_comments opsi untukshopt builtin diaktifkan, kata yang diawali dengan# menyebabkan kata itu dan semua karakter yang tersisa pada baris itu diabaikan. Shell interaktif tanpainteractive_comments opsi diaktifkan tidak mengizinkan komentar. Itu interactive_comments opsi diaktifkan secara default di shell interaktif. Mengutip digunakan untuk menghapus arti khusus dari karakter atau kata-kata tertentu ke shell. Mengutip dapat digunakan untuk menonaktifkan perlakuan khusus untuk karakter khusus, untuk mencegah kata-kata yang dilindungi agar tidak dikenali seperti itu, dan untuk mencegah perluasan parameter. Masing-masing metakarakter tercantum di atas di bawahDefinisi memiliki arti khusus untuk cangkang dan harus dikutip jika ingin mewakili dirinya sendiri. Ketika fasilitas ekspansi sejarah perintah sedang digunakan, the ekspansi sejarah karakter, biasanya!, harus dikutip untuk mencegah perluasan sejarah. Ada tiga mekanisme pengutipan: the karakter melarikan diri , tanda kutip tunggal, dan tanda kutip ganda. Backslash yang tidak dikutip () adalah karakter melarikan diri . Ini mempertahankan nilai literal dari karakter berikutnya yang mengikuti dengan pengecualian Melampirkan karakter dalam tanda kutip tunggal mempertahankan nilai literal masing-masing karakter dalam tanda kutip. Sebuah kutipan tunggal mungkin tidak terjadi di antara tanda kutip tunggal, bahkan ketika didahului oleh backslash. Melampirkan karakter dalam tanda kutip ganda mempertahankan nilai literal dari semua karakter dalam tanda kutip, dengan pengecualian$, ', dan. Karakter$ dan' mempertahankan makna khusus mereka dalam tanda kutip ganda. Backslash mempertahankan arti khususnya hanya ketika diikuti oleh salah satu karakter berikut:$, ', ', , atau Parameter khusus* dan@ memiliki arti khusus ketika dalam tanda kutip ganda. Kata-kata formulir$' tali 'diperlakukan khusus. Kata itu meluas ke tali , dengan karakter backslash-escape diganti sebagaimana ditentukan oleh standar ANSI C. Urutan escape backslash, jika ada, di-decode sebagai berikut: Hasil yang diperluas adalah kutipan tunggal, seolah-olah tanda dolar belum ada. String dua kutip yang diawali dengan tanda dolar ($) akan menyebabkan string diterjemahkan sesuai dengan lokal saat ini. Jika lokal saat iniC atauPOSIX, tanda dolar diabaikan. Jika string diterjemahkan dan diganti, penggantinya akan dikutip ganda. SEBUAH parameter adalah entitas yang menyimpan nilai-nilai. Itu bisa menjadi a nama , nomor, atau salah satu dari karakter khusus yang tercantum di bawahParameter Khusus. Untuk tujuan shell, a variabel adalah parameter yang ditandai dengan nama . Suatu variabel memiliki nilai dan nol atau lebih atribut . Atribut ditugaskan menggunakanmenyatakan perintah bawaan. Parameter ditetapkan jika telah diberi nilai. String nol adalah nilai yang valid. Sekali variabel ditetapkan, itu mungkin tidak disetel hanya dengan menggunakantidak disetel perintah bawaan. SEBUAH variabel dapat ditugaskan oleh pernyataan formulir: nama = nilai Jika nilai tidak diberikan, variabel diberikan string null. Semua nilai-nilai menjalani ekspansi tilde, parameter dan ekspansi variabel, substitusi perintah, ekspansi aritmatika, dan penghapusan kutipan. Jika variabel memilikibilangan bulat set atribut, lalu nilai tunduk pada ekspansi aritmatika bahkan jika $ ((…)) ekspansi tidak digunakan. Pembelahan kata tidak dilakukan, dengan pengecualian'$@' seperti yang dijelaskan di bawahParameter Khusus. Perluasan nama jalan tidak dilakukan. Pernyataan penetapan juga dapat muncul sebagai argumen kemenyatakan, mengeset, ekspor, hanya bisa dibaca, dan lokal perintah bawaan. SEBUAH parameter posisi adalah parameter dilambangkan dengan satu atau lebih digit, selain digit tunggal 0. Parameter posisi ditugaskan dari argumen shell ketika dipanggil, dan dapat dipindahkan menggunakanset perintah bawaan. Parameter posisi tidak dapat ditetapkan dengan pernyataan penugasan. Parameter posisi sementara diganti ketika fungsi shell dijalankan. Ketika parameter posisi yang terdiri dari lebih dari satu digit diperluas, itu harus diapit oleh kawat gigi. Cangkang itu memperlakukan beberapa parameter secara khusus. Parameter ini hanya dapat dirujuk; tugas kepada mereka tidak diizinkan. Variabel berikut ditetapkan oleh shell: PESTA: Perluas nama file lengkap yang digunakan untuk menjalankan instance inipesta. BASH_VERSINFO: Sebuah variabel array readonly yang anggotanya memiliki informasi versi untuk instance ini pesta. Nilai-nilai yang diberikan kepada anggota array adalah sebagai berikut: BASH_VERSION: Perluas string yang menjelaskan versi instance inipesta. COMP_CWORD: Indeks ke dalam$ {COMP_WORDS} dari kata yang berisi posisi kursor saat ini. Variabel ini hanya tersedia dalam fungsi shell yang dipanggil oleh fasilitas penyelesaian yang dapat diprogram. COMP_LINE: Baris perintah saat ini. Variabel ini hanya tersedia dalam fungsi shell dan perintah eksternal yang dipanggil oleh fasilitas penyelesaian yang dapat diprogram. COMP_POINT: Indeks posisi kursor saat ini relatif terhadap permulaan perintah saat ini. Jika posisi kursor saat ini berada di ujung perintah saat ini, nilai variabel ini sama dengan$ {# COMP_LINE}. Variabel ini hanya tersedia dalam fungsi shell dan perintah eksternal yang dipanggil oleh fasilitas penyelesaian yang dapat diprogram. COMP_WORDS: Suatu variabel array yang terdiri dari kata-kata individu dalam baris perintah saat ini. Variabel ini hanya tersedia dalam fungsi shell yang dipanggil oleh fasilitas penyelesaian yang dapat diprogram. DIRSTACK: Sebuah variabel array yang berisi konten saat ini dari tumpukan direktori. Direktori muncul di tumpukan dalam urutan yang ditampilkan olehdirs builtin. Menugaskan ke anggota variabel larik ini dapat digunakan untuk mengubah direktori yang sudah ada dalam tumpukan, tetapipushd danpopd builtins harus digunakan untuk menambah dan menghapus direktori. Penetapan pada variabel ini tidak akan mengubah direktori saat ini. JikaDIRSTACK tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. EUID: Memperluas ke ID pengguna yang efektif dari pengguna saat ini, diinisialisasi pada startup shell. Variabel ini hanya bisa dibaca. FUNCNAME: Nama dari setiap fungsi shell yang sedang dieksekusi. Variabel ini hanya ada ketika fungsi shell sedang dieksekusi. Tugas untukFUNCNAME tidak berpengaruh dan mengembalikan status kesalahan. JikaFUNCNAME tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. GRUP: Sebuah variabel array yang berisi daftar grup di mana pengguna saat ini adalah anggota. Tugas untukGRUP tidak berpengaruh dan mengembalikan status kesalahan. JikaGRUP tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. HISTCMD: Nomor riwayat atau indeks dalam daftar riwayat perintah saat ini. JikaHISTCMD tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. HOSTNAME: Secara otomatis diatur ke nama host saat ini. HOSTTYPE: Secara otomatis diatur ke string yang secara unik menggambarkan jenis mesin yang manapesta sedang mengeksekusi. Standarnya tergantung pada sistem. LINENO: Setiap kali parameter ini direferensikan, shell menggantikan angka desimal yang mewakili nomor baris berurutan saat ini (dimulai dengan 1) dalam skrip atau fungsi. Ketika tidak dalam skrip atau fungsi, nilai yang diganti tidak dijamin berarti. JikaLINENO tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. MACHTYPE: Secara otomatis diatur ke string yang sepenuhnya menggambarkan jenis sistem yang manapesta sedang mengeksekusi dalam standar GNU cpu-company-system format. Standarnya tergantung pada sistem. OLDPWD: Direktori kerja sebelumnya seperti yang ditetapkan olehCD perintah. OPTARG: Nilai dari argumen opsi terakhir yang diproses olehgetopts perintah bawaan. OPTIND: Indeks dari argumen berikutnya yang akan diproses olehgetopts perintah bawaan. OSTYPE: Secara otomatis diatur ke string yang menggambarkan sistem operasi yang manapesta sedang mengeksekusi. Standarnya tergantung pada sistem. PIPESTATUS: Sebuah variabel array yang berisi daftar nilai status keluar dari proses di pipeline foreground yang paling baru dieksekusi, yang mungkin hanya berisi satu perintah. PPID: ID proses induk shell. Variabel ini hanya bisa dibaca. PWD: Direktori kerja saat ini sebagaimana ditetapkan olehCD perintah. ACAK: Setiap kali parameter ini direferensikan, integer acak antara 0 dan 32767 dihasilkan. Urutan angka acak dapat diinisialisasi dengan menetapkan nilai ke ACAK. JikaACAK tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. BALASAN: Setel ke baris masukan yang dibaca olehBaca baca perintah builtin ketika tidak ada argumen yang disediakan. DETIK: Setiap kali parameter ini direferensikan, jumlah detik sejak permintaan shell dikembalikan. Jika nilai ditetapkanDETIK, nilai yang dikembalikan setelah referensi berikutnya adalah jumlah detik sejak penugasan ditambah nilai yang ditetapkan. Jika DETIK tidak diset, kehilangan sifat khusus, bahkan jika itu diatur ulang. SHELLOPTS: Daftar pilihan shell diaktifkan yang dipisahkan dengan titik dua. Setiap kata dalam daftar adalah argumen yang valid untuk-Hai opsi untukset perintah bawaan. Opsi yang muncul diSHELLOPTS adalah yang dilaporkan sebagai di olehset -o. Jika variabel ini ada di lingkungan kapanpesta dijalankan, setiap opsi shell dalam daftar akan diaktifkan sebelum membaca file startup apa pun. Variabel ini hanya bisa dibaca. SHLVL: Dikalikan satu setiap kali instance daripesta dimulai. UID: Memperluas ke ID pengguna pengguna saat ini, diinisialisasi pada startup shell. Variabel ini hanya bisa dibaca. Variabel berikut digunakan oleh shell. Dalam beberapa kasus,pesta memberikan nilai default ke variabel; kasus-kasus ini dicatat. BASH_ENV: Jika parameter ini diatur kapanpesta sedang mengeksekusi skrip shell, nilainya ditafsirkan sebagai nama file yang berisi perintah untuk menginisialisasi shell, seperti pada ~ / .bashrc . Nilai dari BASH_ENV dikenakan ekspansi parameter, substitusi perintah, dan ekspansi aritmatika sebelum ditafsirkan sebagai nama file.PATH tidak digunakan untuk mencari nama file yang dihasilkan. CDPATH: Jalur pencarian untukCD perintah. Ini adalah daftar direktori yang dipisahkan dengan titik dua tempat shell mencari direktori tujuan yang ditentukan olehCD perintah. Nilai sampel adalah ".: ~: / Usr". COLUMNS: Digunakan olehmemilih perintah builtin untuk menentukan lebar terminal saat mencetak daftar pilihan. Ditetapkan secara otomatis setelah menerima SIGWINCH. MENYESUAIKAN: Suatu variabel array dari manapesta membaca kemungkinan penyelesaian yang dihasilkan oleh fungsi shell yang dipanggil oleh fasilitas penyelesaian programmable. FCEDIT: Editor default untukfc perintah bawaan. FIGNORE: Daftar akhiran dipisahkan oleh titik dua untuk diabaikan saat melakukan penyelesaian namafile. Namafile yang sufiksnya cocok dengan salah satu entri diFIGNORE dikecualikan dari daftar nama file yang cocok. Nilai sampel adalah ".o: ~". GLOBIGNORE: Daftar pola yang dipisahkan dengan titik dua yang mendefinisikan kumpulan nama file yang akan diabaikan oleh ekspansi pathname. Jika nama file yang dicocokkan dengan pola ekspansi pathname juga cocok dengan salah satu pola diGLOBIGNORE, dihapus dari daftar pertandingan. HISTCONTROL: Jika disetel ke nilai ketidaktahuan , garis yang dimulai denganruang karakter tidak dimasukkan dalam daftar riwayat. Jika disetel ke nilai diabaikan , garis yang cocok dengan garis riwayat terakhir tidak dimasukkan. Nilai dari ignoreboth menggabungkan dua opsi. Jika tidak disetel atau jika disetel ke nilai lain selain yang di atas, semua baris yang dibaca oleh parser disimpan di daftar riwayat, yang tunduk pada nilaiHISTIGNORE. Fungsi variabel ini digantikan oleh HISTIGNORE. Baris kedua dan selanjutnya dari perintah majemuk multi-baris tidak diuji, dan ditambahkan ke dalam sejarah terlepas dari nilaiHISTCONTROL. HISTFILE: Nama file di mana sejarah perintah disimpan. Nilai standarnya adalah ~ / .bash_history . Jika tidak disetel, sejarah perintah tidak disimpan ketika shell interaktif keluar. HISTFILESIZE: Jumlah maksimum baris yang terdapat dalam file riwayat. Ketika variabel ini diberi nilai, file sejarah dipotong, jika perlu, mengandung tidak lebih dari jumlah baris tersebut. Nilai standarnya adalah 500. File riwayat juga dipotong ke ukuran ini setelah menulisnya ketika shell interaktif keluar. HISTIGNORE: Daftar pola yang dipisahkan dengan titik dua yang digunakan untuk memutuskan baris perintah mana yang harus disimpan dalam daftar riwayat. Setiap pola berlabuh di awal baris dan harus sesuai dengan garis lengkap (tidak ada implisit)*'ditambahkan). Setiap pola diuji terhadap garis setelah pemeriksaan yang ditentukan olehHISTCONTROL diterapkan. Selain karakter pencocokan pola cangkang normal, '&'cocok dengan garis riwayat sebelumnya. '&'dapat diloloskan menggunakan backslash; backslash dihapus sebelum mencoba pertandingan. Baris kedua dan selanjutnya dari perintah majemuk multi-baris tidak diuji dan ditambahkan ke dalam sejarah tanpa memperhatikan nilaiHISTIGNORE. HISTSIZE: Jumlah perintah yang harus diingat dalam sejarah perintah. Nilai standarnya adalah 500. RUMAH: Direktori home pengguna saat ini; argumen default untukCD perintah bawaan. Nilai variabel ini juga digunakan saat melakukan ekspansi tilde. HOSTFILE: Berisi nama file dalam format yang sama dengan / etc / hosts yang harus dibaca ketika shell perlu menyelesaikan nama host. Daftar kemungkinan penyelesaian nama host dapat diubah ketika shell sedang berjalan; saat penyelesaian nama host dicoba setelah nilai diubah,pesta menambahkan isi file baru ke daftar yang ada. Jika HOSTFILE diatur, tetapi tidak memiliki nilai,pesta mencoba membaca / etc / hosts untuk mendapatkan daftar kemungkinan penyelesaian nama host. KapanHOSTFILE tidak disetel, daftar hostname dihapus. IFS: The Pemisah Bidang Internal digunakan untuk membagi kata setelah ekspansi dan untuk membagi garis menjadi kata denganBaca baca perintah bawaan. Nilai defaultnya adalah " IGNOREEOF: Mengontrol aksi shell interaktif saat menerimaEOF karakter sebagai satu-satunya masukan. Jika disetel, nilainya adalah jumlah berturut-turutEOF karakter yang harus diketik sebagai karakter pertama pada baris masukan sebelumnyapesta keluar. Jika variabel ada tetapi tidak memiliki nilai numerik atau tidak memiliki nilai, nilai defaultnya adalah 10. Jika tidak ada,EOF menandakan akhir input ke shell. INPUTRC: Nama file untukreadline file startup, mengesampingkan default dari ~ / .inputrc . LANG: Digunakan untuk menentukan kategori lokal untuk kategori apa pun yang tidak dipilih secara khusus dengan variabel yang dimulai denganLC_. LC_ALL: Variabel ini mengesampingkan nilaiLANG dan yang lainnyaLC_ variabel yang menentukan kategori lokal. LC_COLLATE: Variabel ini menentukan urutan penumpukan yang digunakan saat menyortir hasil perluasan pathname dan menentukan perilaku ekspresi jangkauan, kelas ekivalen, dan menyusun urutan dalam ekspansi pathname dan pencocokan pola. LC_CTYPE: Variabel ini menentukan interpretasi karakter dan perilaku kelas karakter dalam perluasan dan pencocokan pola pathname. LC_MESSAGES: Variabel ini menentukan lokal yang digunakan untuk menerjemahkan string kutipan ganda yang diawali oleh a$. LC_NUMERIC: Variabel ini menentukan kategori lokal yang digunakan untuk pemformatan angka. LINES: Digunakan olehmemilih perintah builtin untuk menentukan panjang kolom untuk mencetak daftar pilihan. Ditetapkan secara otomatis setelah menerima SIGWINCH. SURAT: Jika parameter ini diatur ke nama file danMAILPATH variabel tidak diatur,pestamenginformasikan kepada pengguna tentang kedatangan surat dalam file yang ditentukan. MAILCHECK: Menentukan seberapa sering (dalam detik)pesta memeriksa email. Standarnya adalah 60 detik. Ketika saatnya untuk memeriksa surat, shell melakukannya sebelum menampilkan prompt utama. Jika variabel ini tidak disetel atau disetel ke nilai yang bukan angka lebih besar dari atau sama dengan nol, shell menonaktifkan pemeriksaan email. MAILPATH: Daftar nama file yang dipisahkan dengan titik dua untuk diperiksa surat. Pesan yang akan dicetak ketika email tiba di file tertentu dapat ditentukan dengan memisahkan nama file dari pesan dengan '?'. Saat digunakan dalam teks pesan,$_ meluas ke nama mailfile saat ini. Contoh: MAILPATH = '/ var / mail / bfox? "Anda memiliki surat": ~ / shell-mail? "$ _ Memiliki surat!"'
Pesta menyuplai nilai default untuk variabel ini, tetapi lokasi file email pengguna yang digunakan bergantung pada sistem (/ var / mail /$ USER). OPTERR: Jika disetel ke nilai 1,pesta menampilkan pesan kesalahan yang dihasilkan olehgetopts perintah bawaan.OPTERR diinisialisasi ke 1 setiap kali shell dipanggil atau skrip shell dieksekusi. PATH: Jalur pencarian untuk perintah. Ini adalah daftar direktori yang dipisahkan dengan titik dua di mana shell mencari perintah. Jalur default bergantung pada sistem dan diatur oleh administrator yang menginstalpesta. Nilai yang umum adalah "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''. POSIXLY_CORRECT: Jika variabel ini ada di lingkungan kapanpesta mulai, shell masuk mode posix sebelum membaca file startup, seolah-olah--posix opsi permintaan telah disediakan. Jika sudah diatur ketika shell sedang berjalan,pesta memungkinkan mode posix seolah-olah perintah set -o posix telah dieksekusi. PROMPT_COMMAND: Jika diatur, nilai dieksekusi sebagai perintah sebelum mengeluarkan setiap prompt utama. PS1: Nilai parameter ini diperluas dan digunakan sebagai string prompt utama. Nilai defaultnya adalah " s- v $''. PS2: Nilai parameter ini diperluas seperti padaPS1 dan digunakan sebagai string prompt sekunder. Defaultnya adalah "> ''. PS3: Nilai parameter ini digunakan sebagai prompt untukmemilih perintah. PS4: Nilai parameter ini diperluas seperti padaPS1, dan nilainya dicetak sebelum setiap perintahpesta ditampilkan selama jejak eksekusi. Karakter pertamaPS4 direplikasi berkali-kali, jika perlu, untuk menunjukkan beberapa tingkatan tipuan. Defaultnya adalah "+ ''. FORMAT WAKTU: Nilai parameter ini digunakan sebagai string format yang menentukan bagaimana informasi waktu untuk jaringan pipa diawali denganwaktu kata cadangan harus ditampilkan. Itu % karakter memperkenalkan urutan pelarian yang diperluas ke nilai waktu atau informasi lainnya. Urutan pelarian dan artinya adalah sebagai berikut. Kawat gigi menunjukkan bagian opsional. Opsional p adalah digit yang menentukan presisi , jumlah pecahan digit setelah titik desimal. Nilai 0 tidak menyebabkan titik desimal atau pecahan menjadi output. Paling banyak tiga tempat setelah titik desimal dapat ditentukan; nilai-nilai dari p lebih besar dari 3 diubah menjadi 3. Jika p tidak ditentukan, nilai 3 digunakan. Opsionall menentukan format yang lebih panjang, termasuk menit, dari formulir MM m SS . FF s. Nilai dari p menentukan apakah atau tidak fraksi disertakan. Jika variabel ini tidak disetel,pesta bertindak seolah-olah itu memiliki nilai $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Jika nilainya nol, tidak ada informasi waktu yang ditampilkan. Garis tambahan baru ditambahkan ketika string format ditampilkan. TMOUT: Jika disetel ke nilai lebih besar dari nol,TMOUT diperlakukan sebagai batas waktu default untukBaca baca builtin. Itumemilih perintah berakhir jika input tidak datang sesudahnyaTMOUT detik ketika input berasal dari terminal.Dalam shell interaktif, nilai ditafsirkan sebagai jumlah detik untuk menunggu masukan setelah mengeluarkan prompt utama.Pesta berakhir setelah menunggu jumlah detik tersebut jika input tidak datang. auto_resume: Variabel ini mengontrol bagaimana shell berinteraksi dengan pengguna dan kontrol pekerjaan. Jika variabel ini disetel, perintah tunggal kata sederhana tanpa pengarahan ulang diperlakukan sebagai kandidat untuk memulai kembali pekerjaan berhenti yang ada. Tidak ada ambiguitas yang diizinkan. Jika ada lebih dari satu pekerjaan yang diawali dengan string yang diketik, pekerjaan yang paling baru diakses dipilih. Itu nama pekerjaan yang dihentikan, dalam konteks ini, adalah baris perintah yang digunakan untuk memulainya. Jika diatur ke nilai tepat , string yang diberikan harus sesuai dengan nama pekerjaan yang dihentikan persis; jika diatur ke substring , string yang disediakan harus sesuai dengan substring nama pekerjaan yang dihentikan. Itu substring nilai menyediakan fungsionalitas analog ke%? pengenal pekerjaan. Jika disetel ke nilai lain, string yang disediakan harus merupakan awalan nama pekerjaan yang dihentikan; ini menyediakan fungsionalitas analog ke% pengenal pekerjaan. histchars: Dua atau tiga karakter yang mengontrol ekspansi dan tokenisasi sejarah. Karakter pertama adalah ekspansi sejarah karakter, karakter yang menandai awal dari ekspansi sejarah, biasanya '!'. Karakter kedua adalah substitusi cepat karakter, yang digunakan sebagai singkatan untuk menjalankan kembali perintah sebelumnya, menggantikan satu string dengan yang lain dalam perintah. Defaultnya adalah '^'. Karakter ketiga opsional adalah karakter yang menunjukkan bahwa sisa baris adalah komentar ketika ditemukan sebagai karakter pertama dari sebuah kata, biasanya '#'. Karakter komentar sejarah menyebabkan substitusi sejarah dilewati untuk kata-kata yang tersisa di telepon. Itu tidak selalu menyebabkan shell parser memperlakukan sisa baris sebagai komentar. Pesta menyediakan variabel array satu dimensi. Variabel apa pun dapat digunakan sebagai larik; itu menyatakan builtin secara eksplisit akan mendeklarasikan array. Tidak ada batasan maksimum pada ukuran array atau persyaratan apa pun yang anggota diindeks atau ditugaskan secara berdekatan. Array diindeks menggunakan bilangan bulat dan berbasis nol. Array dibuat secara otomatis jika ada variabel yang ditetapkan untuk menggunakan sintaks nama subskrip = nilai . Itu subskrip diperlakukan sebagai ekspresi aritmatika yang harus dievaluasi ke angka yang lebih besar atau sama dengan nol. Untuk mendeklarasikan array secara eksplisit, gunakandeclare -a nama . declare -a nama subskrip juga diterima; itu subskrip diabaikan. Atribut dapat ditentukan untuk variabel array menggunakanmenyatakan dan hanya bisa dibaca builtins. Setiap atribut berlaku untuk semua anggota array. Array ditugaskan untuk menggunakan tugas gabungan dari formulir nama =(nilai 1 … nilai n ), dimana masing-masing nilai adalah dari bentuk subskrip = tali . Hanya tali Dibutuhkan. Jika kurung dan subskrip opsional disediakan, indeks tersebut ditugaskan untuk; jika tidak, indeks elemen yang ditugaskan adalah indeks terakhir yang ditetapkan oleh pernyataan plus satu. Pengindeksan dimulai dari nol. Sintaks ini juga diterima olehmenyatakan builtin. Elemen array individu dapat ditugaskan untuk menggunakan nama subskrip = nilai sintaksis. Elemen apa pun dari array dapat dirujuk menggunakan $ { nama subskrip }. Kawat gigi diperlukan untuk menghindari konflik dengan ekspansi pathname. Jika subskrip aku s@ atau*, kata itu meluas ke semua anggota nama . Subscrip ini berbeda hanya ketika kata itu muncul dalam tanda kutip ganda. Jika kata itu dikutip ganda, $ { nama *} meluas ke satu kata dengan nilai setiap anggota array yang dipisahkan oleh karakter pertamaIFS variabel khusus, dan $ { nama @} memperluas setiap elemen nama ke kata yang terpisah. Ketika tidak ada anggota array, $ { nama @} meluas ke nol. Ini analog dengan perluasan parameter khusus* dan@. ${# nama subskrip } meluas hingga panjang $ { nama subskrip }. Jika subskrip aku s* atau@, ekspansi adalah jumlah elemen dalam array. Mereferensikan variabel array tanpa subskrip sama dengan mereferensikan elemen nol. Itutidak disetel builtin digunakan untuk menghancurkan array.Tidak disetel nama subskrip Menghancurkan elemen array pada indeks subskrip . Tidak disetel nama , dimana nama adalah larik, atautidak disetel nama subskrip , di mana subskrip aku s* atau@, menghapus seluruh larik. Itumenyatakan, lokal, danhanya bisa dibaca masing-masing menerima satu-Sebuah opsi untuk menentukan array. ItuBaca baca builtin menerima a-Sebuah opsi untuk menetapkan daftar kata yang dibaca dari input standar ke array. Ituset danmenyatakan builtins menampilkan nilai larik dengan cara yang memungkinkannya digunakan kembali sebagai tugas. Ekspansi dilakukan pada baris perintah setelah dibagi menjadi kata-kata. Ada tujuh jenis ekspansi yang dilakukan: brace ekspansi, ekspansi tilde, parameter dan ekspansi variabel, substitusi perintah, ekspansi aritmatika, pemisahan kata, dan ekspansi pathname. Urutan ekspansi adalah: brace ekspansi, ekspansi tilde, parameter dan ekspansi variabel, ekspansi aritmatika, dan substitusi perintah (dilakukan dengan cara kiri ke kanan), pemisahan kata, dan ekspansi pathname. Pada sistem yang dapat mendukungnya, ada perluasan tambahan yang tersedia: substitusi proses . Hanya brace ekspansi, pembagian kata, dan ekspansi pathname dapat mengubah jumlah kata dari ekspansi; perluasan lain memperluas satu kata ke satu kata. Satu-satunya pengecualian untuk ini adalah perluasan "$@"dan"${ nama @}'. Brace ekspansi adalah mekanisme dimana string arbitrary dapat dihasilkan. Mekanisme ini mirip dengan ekspansi pathname , tetapi nama file yang dihasilkan tidak perlu ada. Pola yang harus dilebarkan diperluas mengambil bentuk opsional pembukaan , diikuti oleh serangkaian string yang dipisahkan koma antara sepasang kawat gigi, diikuti oleh opsional nota bene . Pembukaan diawali dengan setiap string yang terdapat dalam tanda kurung, dan postscript kemudian ditambahkan ke setiap string yang dihasilkan, melebar dari kiri ke kanan. Brace ekspansi dapat bersarang. Hasil dari setiap string yang diperluas tidak disortir; urutan kiri ke kanan dipertahankan. Misalnya, a{d, c, b}e meluas menjadi "ade ace abe." Ekspansi brace dilakukan sebelum ekspansi lain, dan setiap karakter khusus untuk ekspansi lainnya dipertahankan dalam hasil. Ini sangat tekstual.Pesta tidak menerapkan interpretasi sintaksis apa pun ke konteks perluasan atau teks di antara kurung. Ekspansi brace yang terbentuk dengan benar harus mengandung tanda kurung buka dan penutup yang tidak ditandai dan setidaknya satu koma tanpa tanda kutip. Ekspansi brace yang salah terbentuk tidak berubah. SEBUAH{ atau, dapat dikutip dengan backslash untuk mencegahnya dianggap sebagai bagian dari ekspresi brace. Untuk menghindari konflik dengan ekspansi parameter, string${ tidak dianggap memenuhi syarat untuk perluasan brace. Konstruk ini biasanya digunakan sebagai singkatan ketika awalan umum string yang dihasilkan lebih panjang dari pada contoh di atas: mkdir / usr / local / src / bash / {lama, baru, dist, bug} atau chown root /usr/{ucb/{ex,verifikasi},lib/{ex?.?*,how_ex}} Ekspansi brace memperkenalkan sedikit ketidakcocokan dengan versi historisSH, yang tidak memperlakukan membuka atau menutup kawat gigi khususnya ketika mereka muncul sebagai bagian dari kata dan mempertahankan mereka dalam output.Pesta menghapus kawat gigi dari kata-kata sebagai konsekuensi dari perluasan brace. Misalnya, kata dimasukkan keSH sebagai file {1,2} muncul identik dalam output. Kata yang sama adalah output sebagai file1 file2 setelah perluasan olehpesta. Jika kompatibilitas ketat denganSH diinginkan, mulaipesta dengan+ Bopsi atau menonaktifkan brace ekspansi dengan+ B opsi untukset perintah. Jika sebuah kata dimulai dengan karakter tilde yang tidak tertulis ('~'), semua karakter yang mendahului garis miring kutip pertama (atau semua karakter, jika tidak ada garis miring tanpa tanda kutip) dianggap sebagai awalan tilde . Jika tidak ada karakter dalam awalan tilde yang dikutip, karakter dalam awalan tilde setelah tilde diperlakukan sebagai kemungkinan nama login . Jika nama login ini adalah string null, tilde diganti dengan nilai parameter shellRUMAH. JikaRUMAH tidak diset, direktori home pengguna mengeksekusi shell diganti sebagai gantinya. Jika tidak, awalan tilde diganti dengan direktori home yang terkait dengan nama login yang ditentukan. Jika awalan tilde adalah '~ +', nilai dari variabel shellPWD menggantikan awalan tilde. Jika awalan tilde adalah '~ -', nilai dari variabel shellOLDPWD, jika disetel, diganti. Jika k
Definisi
Kata-kata yang Dicadangkan
Shell Grammar: Perintah Sederhana
Saluran pipa
Daftar
Perintah Gabungan
Komentar
Mengutip
Parameter
Parameter Posisional
Parameter Khusus
Variabel Shell
Array
Ekspansi
Ekspansi Brace
Ekspansi Tilde