NAMA
sh - command interpreter (shell)
RINGKASAN
SH -/ + aCefnuvxIimqsVEbc -Hai nama panjang -kata target …
DESKRIPSI
Sh adalah penerjemah perintah standar untuk sistem. Versi terkini dariSH sedang dalam proses diubah agar sesuai denganPOSIX 1003,2 dan 1003.2a spesifikasi untuk shell. Versi ini memiliki banyak fitur yang membuatnya tampak mirip dalam beberapa hal dengan shell Korn, tetapi ini bukan klon shell Korn (lihat ksh (1)). Hanya fitur yang ditunjuk olehPOSIX ditambah beberapa ekstensi Berkeley, sedang dimasukkan ke dalam shell ini. Kami berharapPOSIX kesesuaian pada saat 4.4 BSD dirilis. Halaman manual ini tidak dimaksudkan untuk menjadi tutorial atau spesifikasi lengkap dari shell.
Ikhtisar
Shell adalah perintah yang membaca garis dari salah satu file atau terminal, menafsirkannya, dan umumnya mengeksekusi perintah lain. Ini adalah program yang sedang berjalan ketika pengguna login ke sistem (meskipun pengguna dapat memilih shell yang berbeda dengan perintah chsh (1)). Shell mengimplementasikan bahasa yang memiliki aliran kontrol konstruksi, fasilitas makro yang menyediakan berbagai fitur selain penyimpanan data, bersama dengan built in history dan kemampuan pengeditan baris. Ini menggabungkan banyak fitur untuk membantu penggunaan interaktif dan memiliki keuntungan bahwa bahasa interpretatif adalah umum baik untuk penggunaan interaktif dan non-interaktif (skrip shell). Artinya, perintah dapat diketik langsung ke shell yang sedang berjalan atau dapat dimasukkan ke dalam file dan file dapat dieksekusi langsung oleh shell.
Doa
Jika tidak ada argumen dan jika input standar dari shell terhubung ke terminal (atau jika -sayabendera diatur), dan -c opsi tidak ada, shell dianggap shell interaktif. Sebuah shell interaktif umumnya meminta sebelum setiap perintah dan menangani kesalahan pemrograman dan perintah secara berbeda (seperti yang dijelaskan di bawah). Ketika pertama kali memulai, shell memeriksa argumen 0, dan jika diawali dengan tanda `- 'shell juga dianggap sebagai shell login. Ini biasanya dilakukan secara otomatis oleh sistem ketika pengguna pertama kali masuk. Sebuah shell login pertama kali membaca perintah dari file / etc / profile dan .profile jika mereka ada. Jika variabel lingkunganENV diatur pada entri ke shell, atau diatur dalam .profile dari shell login, shell selanjutnya membaca perintah dari file yang bernamaENVOleh karena itu, pengguna harus menempatkan perintah yang akan dieksekusi hanya pada waktu login di file .profile, dan perintah yang dijalankan untuk setiap shell di dalamENV mengajukan. Untuk mengaturENV variabel ke beberapa file, tempatkan baris berikut di. profil Anda dari direktori home Anda
ENV = $ HOME / .shinit; ekspor ENV
mengganti dengan `` .shinit '' nama file apa pun yang Anda inginkan. Sejak ituENV file dibaca untuk setiap permintaan shell, termasuk skrip shell dan shell non-interaktif, paradigma berikut ini berguna untuk membatasi perintah diENV file ke invokasi interaktif. Tempatkan perintah dalam `` kasus '' dan `` esac '' di bawah (perintah ini dijelaskan nanti):
case $ - in * i *)
Perintah # untuk penggunaan interaktif saja
…
esac
Jika argumen baris perintah selain opsi telah ditentukan, maka shell memperlakukan argumen pertama sebagai nama file yang dapat digunakan untuk membaca perintah (skrip shell), dan argumen yang tersisa ditetapkan sebagai parameter posisi shell ($ 1 , $ 2, dll.) Jika tidak, shell membaca perintah dari input standarnya.
Pengolahan Daftar Argumen
Semua opsi huruf tunggal memiliki nama yang sesuai yang dapat digunakan sebagai argumen untuk -Hai pilihan. Set -Hai nama disediakan di sebelah opsi huruf tunggal dalam uraian di bawah ini. Menentukan tanda hubung `` - '' akan mengaktifkan opsi, saat menggunakan plus `` + '' menonaktifkan opsi. Opsi berikut dapat disetel dari baris perintah atau dengan himpunan (1) bawaan (dijelaskan kemudian).
-Sebuah allexport
Ekspor semua variabel yang ditetapkan ke. (TIDAK DITANGGUHKAN untuk 4.4alpha)
-c
Baca perintah dari baris perintah. Tidak ada perintah yang akan dibaca dari input standar.
-C noclobber
Jangan menimpa file yang ada dengan ``> '' (UNIMPLEMENTED for 4.4alpha)
-e errexit
Jika tidak interaktif, segera keluar jika ada perintah yang belum diuji gagal. Status keluar dari suatu perintah dianggap secara eksplisit diuji jika perintah digunakan untuk mengontrol suatujika elifwhile atausampai atau jika perintahnya adalah operan kiri dari operator `` && '' atau `` || ''.
-f noglob
Nonaktifkan perluasan jalur nama.
-n noexec
Jika tidak interaktif, baca perintah tetapi jangan jalankan. Ini berguna untuk memeriksa sintaks skrip shell.
-u nounset
Tulis pesan ke kesalahan standar ketika mencoba untuk memperluas variabel yang tidak disetel, dan jika shell tidak interaktif, segera keluar. (TIDAK DITANGGUHKAN untuk 4.4alpha)
-v verbose
Shell menulis masukannya ke standard error saat dibaca. Berguna untuk debugging.
-x xtrace
Tuliskan setiap perintah ke kesalahan standar (didahului oleh `+ 'sebelum dijalankan. Berguna untuk debugging.
-q quietprofile
Jika -v atau -x pilihan telah ditetapkan, jangan menerapkannya ketika membaca file inisialisasi, ini adalah / etc / profile .profile dan file yang ditentukan olehENV variabel lingkungan.
-SAYA mengabaikan
Abaikan EOF dari masukan saat interaktif.
-saya interaktif
Paksa shell untuk berperilaku interaktif.
-m pantau
Aktifkan kontrol pekerjaan (diatur secara otomatis saat interaktif).
-s stdin
Baca perintah dari input standar (atur secara otomatis jika tidak ada argumen file). Pilihan ini tidak berpengaruh ketika diatur setelah shell sudah mulai berjalan (yaitu dengan set (1)).
-V vi
Aktifkan editor baris perintah vi (1) bawaan (menonaktifkan -E jika sudah diatur).
-E emacs
Aktifkan emac built-in (1) editor baris perintah (menonaktifkan -V jika sudah diatur).
-b memberitahukan
Aktifkan pemberitahuan asynchronous penyelesaian pekerjaan latar belakang. (TIDAK DITANGGUHKAN untuk 4.4alpha)
Struktur Leksikal
Shell membaca masukan dalam bentuk garis dari sebuah file dan memecahnya menjadi kata-kata di whitespace (kosong dan tab), dan pada urutan tertentu dari karakter yang khusus untuk shell yang disebut `` operator '' Ada dua jenis operator: operator kontrol dan operator redirection (maknanya dibahas kemudian). Berikut ini adalah daftar operator:
"Operator kontrol:"
& && ( ) ; ;; | || "Operator Redirection:" < > >| << >> <& >& <<- <>
Mengutip digunakan untuk menghapus arti khusus dari karakter atau kata-kata tertentu ke shell, seperti operator, spasi, atau kata kunci. Ada tiga jenis kutipan: kutipan tunggal yang cocok, kutipan ganda yang cocok, dan backslash. Backslash mempertahankan makna literal dari karakter berikut, dengan pengecualian Aq newline. Backslash yang mendahului garis baru Aq diperlakukan sebagai garis lanjutan. Melampirkan karakter dalam tanda kutip tunggal mempertahankan arti harfiah dari semua karakter (kecuali tanda kutip tunggal, sehingga tidak mungkin untuk menempatkan tanda kutip tunggal dalam string yang dikutip tunggal). Melampirkan karakter dalam tanda kutip ganda mempertahankan arti harfiah dari semua karakter kecuali dolar ($) backquote (`) dan backslash () Backslash di dalam tanda kutip ganda secara historis aneh, dan berfungsi untuk mengutip hanya karakter berikut: $ ` Kalau tidak, itu tetap literal. Kata-kata yang dicadangkan adalah kata-kata yang memiliki arti khusus untuk shell dan dikenali pada awal baris dan setelah operator kontrol. Berikut adalah kata-kata yang dilindungi undang-undang: ! Taelif Ta fi Ta sementara Ta case yang lain Tauntuk Ta lalu Ta {Ta} lakukan Tadilakukan Ta sampai Ta jika Ta esac Makna mereka dibahas nanti. Alias adalah nama dan nilai terkait yang disetel menggunakan alias (1) perintah bawaan. Setiap kali kata cadangan dapat terjadi (lihat di atas), dan setelah memeriksa kata-kata yang dipesan, shell memeriksa kata untuk melihat apakah kata itu cocok dengan alias. Jika ya, itu menggantikannya dalam aliran input dengan nilainya. Misalnya, jika ada alias yang disebut `` lf '' dengan nilai `` ls -F '' maka inputnya: Jika foobar akan menjadi ls -F foobar Alias menyediakan cara mudah bagi pengguna yang naif untuk membuat shorthands untuk perintah tanpa harus belajar cara membuat fungsi dengan argumen. Mereka juga dapat digunakan untuk membuat kode tidak jelas secara leksikal. Penggunaan ini tidak disarankan. Shell menafsirkan kata-kata yang dibaca sesuai dengan bahasa, spesifikasi yang berada di luar lingkup halaman manual ini (lihat BNF diPOSIX 1003.2 dokumen). Pada dasarnya meskipun, garis dibaca dan jika kata pertama dari garis (atau setelah operator kontrol) bukan kata yang dilindungi undang-undang, maka shell telah mengenali perintah sederhana. Jika tidak, perintah kompleks atau beberapa konstruksi khusus lainnya mungkin telah diakui. Jika perintah sederhana telah dikenali, shell melakukan tindakan berikut: Memimpin kata-kata dari bentuk `` nama = nilai '' dilucuti dan ditetapkan ke lingkungan dari perintah sederhana. Operator redireksi dan argumennya (seperti yang dijelaskan di bawah ini) dilucuti dan disimpan untuk diproses. Kata-kata yang tersisa diperluas seperti yang dijelaskan di bagian yang disebut `` Ekspansi '' dan kata pertama yang tersisa dianggap sebagai nama perintah dan perintah berada. Kata-kata yang tersisa dianggap argumen dari perintah. Jika tidak ada nama perintah yang dihasilkan, maka `` nama = nilai '' tugas variabel yang dikenal dalam butir 1 mempengaruhi shell saat ini. Pengalihan dilakukan seperti yang dijelaskan di bagian selanjutnya. Pengalihan Pengalihan digunakan untuk mengubah tempat perintah membaca masukannya atau mengirim outputnya. Secara umum, pengalihan membuka, menutup, atau menggandakan referensi yang ada ke file. Format keseluruhan yang digunakan untuk pengalihan adalah: n redir-op file dimana redir-op adalah salah satu operator redirection yang disebutkan sebelumnya. Berikut ini adalah daftar kemungkinan pengalihan. Bq n adalah nomor opsional, seperti pada `3 '(bukan` Bq 3' yang mengacu pada deskriptor file. n> file Alihkan output standar (atau n) ke file. n> | mengajukan Sama, tetapi menimpa -C pilihan. n >> file Tambahkan output standar (atau n) ke file. n <file Mengalihkan input standar (atau n) dari file. n1 <& n2 Gandakan input standar (atau n1) dari file descriptor n2. n <& - Tutup input standar (atau n). n1> & n2 Gandakan keluaran standar (atau n1) dari n2. n> & - Tutup keluaran standar (atau n). n <> file Buka file untuk membaca dan menulis pada input standar (atau n). Pengalihan berikut ini sering disebut `` di sini-dokumen '' n << pembatas di sini-dokumen-teks … pembatas Semua teks pada baris berturut-turut hingga pembatas disimpan dan dibuat tersedia untuk perintah pada input standar, atau pendeskripsi file dan jika ditentukan.Jika pemisah seperti yang ditentukan pada baris awal dikutip, maka di sini-dokumen-teks diperlakukan secara harfiah, jika teks tersebut dikenakan ekspansi parameter, substitusi perintah, dan ekspansi aritmatika (seperti yang dijelaskan di bagian pada `` Ekspansi) ' 'Jika operator adalah `` << -' 'bukannya `` <<' 'maka tab-tab utama di sini-dokumen-teks dilucuti. Ada tiga jenis perintah: fungsi shell, perintah builtin, dan program normal - dan perintah tersebut dicari (berdasarkan nama) dalam urutan itu. Mereka masing-masing dieksekusi dengan cara yang berbeda. Ketika fungsi shell dijalankan, semua parameter posisi shell (kecuali $ 0, yang tetap tidak berubah) diatur ke argumen fungsi shell. Variabel yang secara eksplisit ditempatkan di lingkungan perintah (dengan menempatkan tugas kepada mereka sebelum nama fungsi) dibuat lokal ke fungsi dan diatur ke nilai-nilai yang diberikan. Kemudian perintah yang diberikan dalam definisi fungsi dijalankan. Parameter posisi dikembalikan ke nilai asli mereka ketika perintah selesai. Ini semua terjadi dalam shell saat ini. Shell builtins dieksekusi secara internal ke shell, tanpa memunculkan proses baru. Jika tidak, jika nama perintah tidak sesuai dengan fungsi atau builtin, perintah dicari sebagai program normal dalam sistem berkas (seperti yang dijelaskan di bagian berikutnya). Ketika program normal dijalankan, shell menjalankan program, meneruskan argumen dan lingkungan ke program. Jika program bukan file eksekusi normal (yaitu, jika tidak dimulai dengan "angka ajaib" yangASCII representasi adalah "#!", jadi jalankan (2) mengembalikan Er ENOEXEC lalu) shell akan menafsirkan program dalam subkulit. Shell anak akan reinitialize sendiri dalam kasus ini, sehingga efeknya akan seolah-olah shell baru telah dipanggil untuk menangani skrip shell ad-hoc, kecuali bahwa lokasi perintah hash terletak di shell induk akan diingat oleh anak. Perhatikan bahwa versi sebelumnya dari dokumen ini dan kode sumber itu sendiri menyesatkan dan secara sporadis merujuk ke skrip shell tanpa nomor ajaib sebagai "prosedur shell". Ketika menemukan sebuah perintah, shell pertama terlihat untuk melihat apakah ia memiliki fungsi shell dengan nama itu. Kemudian ia mencari perintah bawaan dengan nama itu. Jika perintah builtin tidak ditemukan, salah satu dari dua hal terjadi: Nama perintah yang berisi garis miring hanya dieksekusi tanpa melakukan pencarian apa pun. Shell mencari setiap entri masukPATH pada gilirannya untuk perintah. Nilai dariPATHvariabel harus berupa serangkaian entri yang dipisahkan oleh titik dua. Setiap entri terdiri dari nama direktori. Direktori saat ini dapat diindikasikan secara implisit oleh nama direktori kosong, atau secara eksplisit oleh satu periode. Status Keluar Komando Setiap perintah memiliki status keluar yang dapat mempengaruhi perilaku perintah shell lainnya. Paradigmanya adalah bahwa sebuah perintah keluar dengan nol untuk normal atau sukses, dan bukan nol untuk kegagalan, kesalahan, atau indikasi yang salah. Halaman manual untuk setiap perintah harus menunjukkan berbagai kode keluar dan apa artinya. Selain itu, perintah builtin mengembalikan kode keluar, seperti halnya fungsi shell yang dieksekusi. Perintah kompleks adalah kombinasi dari perintah sederhana dengan operator kontrol atau kata-kata yang dilindungi undang-undang, bersama-sama membuat perintah kompleks yang lebih besar. Secara umum, perintah adalah salah satu dari yang berikut: Kecuali dinyatakan lain, status keluar dari perintah adalah perintah sederhana terakhir yang dijalankan oleh perintah. Pipeline adalah urutan satu atau lebih perintah yang dipisahkan oleh operator kontrol |. Output standar dari semua tetapi perintah terakhir terhubung ke input standar dari perintah selanjutnya. Output standar dari perintah terakhir diwarisi dari shell, seperti biasa. Format untuk jalur pipa adalah: ! command1 | command2 … Output standar dari command1 terhubung ke input standar dari command2. Input standar, output standar, atau kedua perintah dianggap ditugaskan oleh pipa sebelum pengarahan ulang yang ditentukan oleh operator redirection yang merupakan bagian dari perintah. Jika pipa tidak di latar belakang (dibahas nanti), shell menunggu semua perintah selesai. Jika kata pendiam! tidak mendahului saluran pipa, status keluar adalah status keluar dari perintah terakhir yang ditentukan dalam pipa. Jika tidak, status keluar adalah logis TIDAK dari status keluar dari perintah terakhir. Artinya, jika perintah terakhir mengembalikan nol, status keluar adalah 1; jika perintah terakhir mengembalikan lebih besar dari nol, status exit adalah nol. Karena penetapan pipa input standar atau output standar atau keduanya terjadi sebelum redirection, itu dapat dimodifikasi oleh redirection. Sebagai contoh: $ command1 2> & 1 | perintah2 mengirim output standar dan standard error dari perintah1 ke input standar dari command2. SEBUAH ; atau Perhatikan bahwa tidak seperti beberapa shell lainnya, setiap proses dalam pipa adalah anak dari shell memohon (kecuali shell builtin, dalam hal ini mengeksekusi dalam shell saat ini - tetapi efeknya terhadap lingkungan dihapus). Jika perintah diakhiri oleh operator kontrol ampersand (&), shell mengeksekusi perintah secara asinkron - yaitu, shell tidak menunggu perintah selesai sebelum menjalankan perintah berikutnya. Format untuk menjalankan perintah di latar belakang adalah: command1 & command2 & … Jika shell tidak interaktif, input standar dari perintah asynchronous diatur ke / dev / null Daftar adalah urutan nol atau lebih perintah yang dipisahkan oleh baris baru, titik koma, atau ampersand, dan secara opsional diakhiri oleh salah satu dari tiga karakter ini. Perintah-perintah dalam daftar dijalankan dalam urutan yang ditulis. Jika perintah diikuti oleh ampersand, shell memulai perintah dan segera melanjutkan ke perintah berikutnya; jika tidak menunggu perintah untuk mengakhiri sebelum melanjutkan ke yang berikutnya. `` && '' dan `` || '' adalah operator daftar AND-OR. `` && '' mengeksekusi perintah pertama, dan kemudian mengeksekusi perintah kedua jika status keluar dari perintah pertama adalah nol. `` || '' serupa, tetapi mengeksekusi perintah kedua jika status keluar dari perintah pertama adalah nol. `` && '' dan `` || '' keduanya memiliki prioritas yang sama. Sintaks dari perintah if adalah jika daftar kemudian daftar daftar elif kemudian daftar … daftar lain fi Sintaks dari perintah sementara adalah saat daftar lakukan daftar selesai Kedua daftar dieksekusi berulang kali ketika status keluar dari daftar pertama adalah nol. Perintah sampai mirip, tetapi memiliki kata sampai di tempat sementara, yang menyebabkannya mengulangi sampai status keluar dari daftar pertama adalah nol. Perintah sintaks untuk perintah adalah untuk variabel dalam kata … lakukan daftar selesai Kata-kata diperluas, dan kemudian daftar dijalankan berulang-ulang dengan variabel yang ditetapkan untuk setiap kata secara bergantian. lakukan dan lakukan dapat diganti dengan `` {'' dan ``} '' Sintaks dari perintah break dan continue adalah break num lanjutkan num Break mengakhiri num terdalam untuk atau sementara loop. Terus lanjutkan dengan iterasi berikutnya dari loop terdalam. Ini diimplementasikan sebagai perintah builtin. Sintaks dari perintah case adalah kata kata dalam pola) daftar ;; … esac Pola ini sebenarnya bisa menjadi satu atau lebih pola (lihat Pola Shell yang dijelaskan nanti), dipisahkan oleh karakter `` ''. Perintah dapat dikelompokkan dengan menulis baik (daftar) atau {daftar; Yang pertama dari ini mengeksekusi perintah dalam subkulit. Perintah-perintah builtin dikelompokkan ke dalam (daftar) tidak akan mempengaruhi shell saat ini. Bentuk kedua tidak membuat shell lain jadi sedikit lebih efisien. Mengelompokkan perintah bersama-sama dengan cara ini memungkinkan Anda untuk mengarahkan output mereka seolah-olah mereka satu program: {printf hello; printf world n ";}> ucapan Fungsi Sintaks dari definisi fungsi nama () perintah Definisi fungsi adalah pernyataan yang dapat dieksekusi; ketika dieksekusi itu menginstal nama fungsi bernama dan mengembalikan status keluar dari nol. Perintah biasanya adalah daftar yang dilampirkan antara `` {'' dan ``} '' Variabel dapat dideklarasikan menjadi lokal ke fungsi dengan menggunakan perintah lokal. Ini seharusnya muncul sebagai pernyataan pertama dari suatu fungsi, dan sintaksnya lokal variabel | - … Lokal diimplementasikan sebagai perintah bawaan. Ketika sebuah variabel dibuat lokal, ia mewarisi nilai awal dan bendera yang diekspor dan hanya bisa dibaca dari variabel dengan nama yang sama dalam lingkup sekitarnya, jika ada. Jika tidak, variabel awalnya tidak disetel. Shell menggunakan pencakupan dinamis, sehingga jika Anda membuat variabel x lokal ke fungsi f, yang kemudian memanggil fungsi g, referensi ke variabel x dibuat di dalam g akan merujuk ke variabel x yang dinyatakan di dalam f, bukan ke variabel global bernama x . Satu-satunya parameter khusus daripada yang bisa dibuat lokal adalah `` - '' Membuat `` - '' opsi shell lokal yang diubah melalui perintah yang ditetapkan di dalam fungsi untuk dikembalikan ke nilai aslinya ketika fungsi kembali. Sintaks perintah kembalinya adalah kembali exitstatus Ini mengakhiri fungsi yang sedang dieksekusi. Pengembalian diimplementasikan sebagai perintah bawaan. Shell mempertahankan satu set parameter. Parameter yang dilambangkan dengan nama disebut variabel. Ketika memulai, shell mengubah semua variabel lingkungan menjadi variabel shell. Variabel baru dapat diatur menggunakan formulir nama = nilai Variabel yang ditetapkan oleh pengguna harus memiliki nama yang hanya terdiri dari abjad, angka, dan garis bawah - yang pertama tidak boleh numerik. Parameter juga dapat dilambangkan dengan angka atau karakter khusus seperti yang dijelaskan di bawah ini. Parameter posisional adalah parameter yang dilambangkan dengan angka (n> 0). Shell mengatur ini awalnya ke nilai-nilai argumen baris perintahnya yang mengikuti nama skrip shell. Himpunan (1) bawaan juga dapat digunakan untuk mengatur atau mengatur ulang. Parameter khusus adalah parameter yang dilambangkan oleh salah satu karakter khusus berikut. Nilai parameter tercantum di sebelah karakternya. * Memperluas ke parameter posisi, mulai dari satu. Ketika ekspansi terjadi dalam string yang dikutip ganda itu memperluas ke bidang tunggal dengan nilai masing-masing parameter yang dipisahkan oleh karakter pertama dariIFS variabel, atau oleh @ Memperluas ke parameter posisi, mulai dari satu.Ketika ekspansi terjadi dalam tanda kutip ganda, setiap parameter posisi diperluas sebagai argumen terpisah. Jika tidak ada parameter posisi, perluasan @ menghasilkan nol argumen, bahkan ketika @ adalah kutipan ganda. Apa artinya ini pada dasarnya, misalnya, adalah jika $ 1 adalah `` abc '' dan $ 2 adalah `` def ghi '' maka Qq $ @ memperluas ke dua argumen: abc def ghi # Memperluas ke jumlah parameter posisi. ? Memperluas ke status keluar dari saluran pipa terbaru. - (Tanda hubung.) Memperluas ke bendera opsi saat ini (nama-nama opsi satu huruf digabung menjadi string) sebagaimana ditentukan pada permintaan, oleh perintah setin builtin, atau secara implisit oleh shell. $ Memperluas ke ID proses dari shell yang dipanggil. Subkunci mempertahankan nilai $ yang sama sebagai induknya. ! Memperluas ke ID proses dari perintah latar belakang terbaru yang dijalankan dari shell saat ini. Untuk jalur pipa, ID proses adalah perintah terakhir dalam pipa. 0 (Nol.) Perluas nama skrip shell atau shell. Ekspansi Word Ayat ini menjelaskan berbagai ekspansi yang dilakukan pada kata-kata. Tidak semua ekspansi dilakukan pada setiap kata, seperti yang dijelaskan nanti. Ekspansi tilde, perluasan parameter, penggantian perintah, perluasan aritmatika, dan penghapusan kutipan yang terjadi dalam satu kata meluas ke satu bidang. Hanya perluasan bidang atau perluasan jalur yang dapat membuat beberapa bidang dari satu kata. Pengecualian tunggal untuk aturan ini adalah perluasan parameter khusus @ dalam tanda kutip ganda, seperti yang dijelaskan di atas. Urutan perluasan kata adalah: Ekspansi Tilde, Ekspansi Parameter, Pergantian Perintah, Ekspansi Aritmetika (semua ini terjadi pada saat yang sama). Pemisahan Lapangan dilakukan pada bidang yang dihasilkan oleh langkah (1) kecualiIFS variabel adalah nol. Perluasan Jalur Nama (kecuali ditetapkan -f berlaku). Penghapusan Kutipan. Karakter $ digunakan untuk memperkenalkan ekspansi parameter, substitusi perintah, atau evaluasi aritmatika. Kata yang diawali dengan karakter tilde tanpa tanda (~) dikenakan ekspansi tilde. Semua karakter hingga slash (/) atau akhir kata diperlakukan sebagai nama pengguna dan diganti dengan direktori home pengguna. Jika nama pengguna hilang (seperti di ~ / foobar), tilde diganti dengan nilai dari RUMAH variabel (direktori home pengguna saat ini). Format untuk ekspansi parameter adalah sebagai berikut: $ {expression} di mana ekspresi terdiri dari semua karakter sampai pencocokan ``} '' Any ``} '' lolos oleh backslash atau dalam string yang dikutip, dan karakter dalam ekspansi aritmatika tertanam, penggantian perintah, dan ekspansi variabel, tidak diperiksa dalam menentukan cocok dengan ``} '' Bentuk paling sederhana untuk ekspansi parameter adalah: $ {parameter} Nilai, jika ada, parameter diganti. Nama atau simbol parameter dapat diapit dalam tanda kurung, yang bersifat opsional kecuali untuk parameter posisi dengan lebih dari satu digit atau ketika parameter diikuti oleh karakter yang dapat ditafsirkan sebagai bagian dari nama. Jika ekspansi parameter terjadi di dalam tanda kutip ganda: Perluasan nama jalan tidak dilakukan pada hasil ekspansi. Pemisahan bidang tidak dilakukan pada hasil perluasan, dengan pengecualian @. Selain itu, perluasan parameter dapat dimodifikasi dengan menggunakan salah satu format berikut. $ {parameter: -word} Gunakan Nilai Default. Jika parameter tidak diset atau null, perluasan kata diganti; jika tidak, nilai parameter diganti. $ {parameter: = kata} Tetapkan Nilai Default. Jika parameter tidak diset atau null, perluasan kata ditugaskan ke parameter. Dalam semua kasus, nilai akhir dari parameter diganti. Hanya variabel, bukan parameter posisi atau parameter khusus, yang dapat ditetapkan dengan cara ini. $ {parameter:? kata} Tunjukkan Kesalahan jika Null atau Tidak Disetel. Jika parameter tidak disetel atau null, perluasan kata (atau pesan yang menunjukkan itu tidak disetel jika kata dihilangkan) ditulis ke kesalahan standar dan shell keluar dengan status keluar non-nol. Jika tidak, nilai parameter diganti. Cangkang interaktif tidak perlu keluar. $ {parameter: + kata} Gunakan Nilai Alternatif. Jika parameter tidak diset atau null, null diganti; jika tidak, perluasan kata diganti. Dalam parameter ekspansi yang ditunjukkan sebelumnya, penggunaan titik dua dalam format menghasilkan tes untuk parameter yang tidak diset atau null; penghilangan hasil usus besar dalam tes untuk parameter yang hanya tidak disetel. $ {# parameter} Panjang String. Panjang karakter dari nilai parameter. Empat varietas perluasan parameter berikut ini menyediakan pemrosesan substring. Dalam setiap kasus, notasi pencocokan pola (lihat Pola Kerangka), daripada notasi ekspresi reguler, digunakan untuk mengevaluasi pola. Jika parameter * atau @, hasil dari ekspansi tidak ditentukan. Memasukkan string ekspansi parameter penuh dalam tanda kutip ganda tidak menyebabkan empat jenis pola karakter yang akan dikutip, sedangkan mengutip karakter dalam kurung memiliki efek ini. $ {parameter% word} Hapus Pola Suffix Terkecil. Kata itu diperluas untuk menghasilkan pola. Perluasan parameter kemudian menghasilkan parameter, dengan bagian terkecil dari akhiran yang dicocokkan dengan pola yang dihapus. $ {parameter %% kata} Hapus Suffix Pola Terbesar.Kata itu diperluas untuk menghasilkan pola. Perluasan parameter kemudian menghasilkan parameter, dengan bagian terbesar dari akhiran yang dicocokkan dengan pola yang dihapus. $ {parameter # kata} Hapus Pola Prefix Terkecil. Kata itu diperluas untuk menghasilkan pola. Perluasan parameter kemudian menghasilkan parameter, dengan bagian terkecil dari awalan yang dicocokkan dengan pola yang dihapus. $ {parameter ## kata} Hapus Pola Prefiks Terbesar. Kata itu diperluas untuk menghasilkan pola. Perluasan parameter kemudian menghasilkan parameter, dengan bagian terbesar dari awalan yang cocok dengan pola yang dihapus. Pergantian Komando Substitusi perintah memungkinkan keluaran dari sebuah perintah untuk menggantikan tempat dari nama perintah itu sendiri. Substitusi komando terjadi ketika perintah ditutup sebagai berikut: $ (perintah) atau Po `` backquoted '' versi Pc: `perintah` Shell memperluas substitusi perintah dengan mengeksekusi perintah dalam lingkungan subkulit dan mengganti substitusi perintah dengan output standar dari perintah, menghapus urutan satu atau lebih Ekspansi aritmatika menyediakan mekanisme untuk mengevaluasi ekspresi aritmatika dan mengganti nilainya. Format untuk ekspansi aritmatika adalah sebagai berikut: $ ((ekspresi)) Ekspresi diperlakukan seolah-olah itu dalam tanda kutip ganda, kecuali bahwa kutipan ganda di dalam ekspresi tidak diperlakukan secara khusus. Shell memperluas semua token dalam ekspresi untuk ekspansi parameter, penggantian perintah, dan penghapusan kutipan. Selanjutnya, shell memperlakukan ini sebagai ekspresi aritmatika dan mengganti nilai dari ekspresi. Setelah perluasan parameter, substitusi perintah, dan ekspansi aritmatika, shell memindai hasil ekspansi dan substitusi yang tidak terjadi dalam tanda kutip ganda untuk pembagian bidang dan beberapa bidang dapat dihasilkan. Shell memperlakukan setiap karakter dariIFS sebagai pembatas dan menggunakan pembatas untuk membagi hasil perluasan parameter dan penggantian perintah ke dalam bidang. Kecuali -f bendera diatur, pembuatan nama file dilakukan setelah pemisahan kata selesai. Setiap kata dipandang sebagai serangkaian pola, dipisahkan oleh garis miring. Proses ekspansi menggantikan kata dengan nama semua file yang ada yang namanya dapat dibentuk dengan mengganti setiap pola dengan string yang cocok dengan pola yang ditentukan. Ada dua batasan pada ini: pertama, sebuah pola tidak dapat cocok dengan string yang berisi garis miring, dan kedua, sebuah pola tidak dapat cocok dengan string yang dimulai dengan periode kecuali karakter pertama dari pola tersebut adalah periode. Bagian selanjutnya menjelaskan pola yang digunakan untuk kedua Ekspansi Pathname dan perintah case (1). Pola terdiri dari karakter normal, yang cocok dengan diri mereka sendiri, dan meta-karakter. Meta-karakternya adalah ``! '' `` * '' ``? '' Dan `` '' Karakter-karakter ini kehilangan arti khususnya jika mereka dikutip. Ketika perintah atau substitusi variabel dilakukan dan tanda dolar atau tanda kutip belakang tidak dikutip ganda, nilai variabel atau output perintah dipindai untuk karakter-karakter ini dan mereka diubah menjadi meta-karakter. Tanda bintang (`` * '') cocok dengan string karakter apa pun. Tanda tanya cocok dengan setiap karakter tunggal. Siku kiri (`` '') memperkenalkan kelas karakter. Akhir kelas karakter ditunjukkan oleh (`` '') jika `` '' hilang maka `` '' cocok dengan `` '' daripada memperkenalkan kelas karakter. Kelas karakter cocok dengan salah satu karakter di antara tanda kurung siku. Berbagai karakter dapat ditentukan menggunakan tanda minus. Kelas karakter dapat dilengkapi dengan membuat tanda seru karakter pertama dari kelas karakter. Untuk memasukkan `` '' dalam kelas karakter, buatlah karakter pertama yang terdaftar (setelah ``! '' Jika ada). Untuk menyertakan tanda minus, buatlah karakter pertama atau terakhir yang terdaftar Bagian ini mencantumkan perintah-perintah bawaan yang dibuat karena mereka perlu melakukan beberapa operasi yang tidak dapat dilakukan oleh proses terpisah. Selain ini, ada beberapa perintah lain yang mungkin dibangun untuk efisiensi (misalnya, gema 1). : Perintah null yang mengembalikan nilai keluar 0 (true). . mengajukan Perintah-perintah dalam file yang ditentukan dibaca dan dieksekusi oleh shell. alias nama = string … Jika name = string ditentukan, shell mendefinisikan alias nama dengan nilai tali Jika adil nama ditentukan, nilai alias nama dicetak. Tanpa argumen, itualias builtin mencetak nama dan nilai dari semua alias yang didefinisikan (lihatunalias) bg pekerjaan … Lanjutkan pekerjaan yang ditentukan (atau pekerjaan saat ini jika tidak ada pekerjaan yang diberikan) di latar belakang. perintah perintah arg … Jalankan perintah bawaan yang ditentukan. (Ini berguna ketika Anda memiliki fungsi shell dengan nama yang sama sebagai perintah builtin.) CD direktori Beralih ke direktori yang ditentukan (default$ HOME) Jika sebuah entri untukCDPATH muncul di lingkunganCD perintah atau variabel shellCDPATH diatur dan nama direktori tidak dimulai dengan garis miring, kemudian direktori yang tercantum diCDPATH akan dicari untuk direktori yang ditentukan. Format dariCDPATH sama sepertiPATH Dalam shell interaktif, yangCD perintah akan mencetak nama direktori yang benar-benar beralih ke jika ini berbeda dari nama yang diberikan pengguna. Ini mungkin berbeda baik karenaCDPATH mekanisme digunakan atau karena tautan simbolis disilangkan. eval tali… Gabungkan semua argumen dengan spasi. Kemudian kembali parse dan jalankan perintah. exec perintah arg … Kecuali perintah dihilangkan, proses shell diganti dengan program yang ditentukan (yang harus merupakan program nyata, bukan shell builtin atau fungsi). Setiap pengalihan padaexecperintah ditandai sebagai permanen, sehingga mereka tidak diurungkan saatexec perintah selesai. keluar exitstatus Hentikan proses shell. Jika exitstatus diberikan itu digunakan sebagai status keluar dari shell; jika tidak, status keluar dari perintah sebelumnya digunakan. ekspor nama… ekspor -p Nama yang ditentukan diekspor sehingga mereka akan muncul di lingkungan perintah berikutnya. Satu-satunya cara untuk un-ekspor variabel adalah untuk membatalkannya. Shell memungkinkan nilai variabel yang akan ditetapkan pada saat yang sama diekspor dengan menulis nama ekspor = nilai Tanpa argumen, perintah ekspor mencantumkan nama semua variabel yang diekspor. Dengan -popsi yang ditentukan output akan diformat sesuai untuk penggunaan non-interaktif. fc-e editor pertama terakhir fc-l -no pertama terakhir fc -s lama = baru pertama Itufc daftar bawaan, atau pengeditan dan eksekusi ulang, perintah yang sebelumnya dimasukkan ke shell interaktif. -e editor Gunakan editor yang bernama oleh editor untuk mengedit perintah. String editor adalah nama perintah, yang dapat ditelusuri melaluiPATH variabel. Nilai dalamFCEDIT variabel digunakan sebagai default saat -e tidak ditentukan. JikaFCEDIT adalah nol atau tidak disetel, nilai dariEDITOR variabel digunakan. JikaEDITOR null atau tidak disetel, ed (1) digunakan sebagai editor. -l (ell) Buat daftar perintah daripada menggunakan editor pada mereka. Perintah-perintah ditulis dalam urutan yang ditunjukkan oleh operan pertama dan terakhir, yang dipengaruhi oleh -r dengan setiap perintah yang didahului oleh nomor perintah. -n Menekan nomor perintah saat mendaftar dengan -l. -r Membalik urutan perintah yang terdaftar (dengan -l atau diedit (dengan tidak -l atau -s) -s Jalankan ulang perintah tanpa menggunakan editor. pertama terakhir Pilih perintah untuk daftar atau edit. Jumlah perintah sebelumnya yang dapat diakses ditentukan oleh nilai dariHISTSIZE variabel. Nilai pertama atau terakhir atau keduanya adalah salah satu dari yang berikut: + angka Bilangan positif yang mewakili nomor perintah; nomor perintah dapat ditampilkan dengan -l pilihan. -jumlah Angka desimal negatif yang mewakili perintah yang dieksekusi sejumlah perintah sebelumnya. Misalnya, -1 adalah perintah langsung sebelumnya. tali String yang menunjukkan perintah yang paling baru dimasukkan yang dimulai dengan string itu. Jika operand = baru yang lama tidak ditentukan dengan -s bentuk string dari operan pertama tidak dapat memuat tanda yang disematkan. Variabel lingkungan berikut mempengaruhi pelaksanaan fc: FCEDIT Nama editor untuk digunakan. HISTSIZE Jumlah perintah sebelumnya yang dapat diakses. fg pekerjaan Pindahkan pekerjaan yang ditentukan atau pekerjaan saat ini ke latar depan. getopts optstring var ItuPOSIX getopts perintah, jangan dikelirukan dengan Bell Labs -selesai getopt (1). Argumen pertama harus berupa serangkaian huruf, yang masing-masing dapat secara opsional diikuti oleh titik dua untuk menunjukkan bahwa opsi tersebut memerlukan argumen. Variabel yang ditentukan diatur ke opsi parsing. Itugetopts Perintah deprecates yang lebih tua getopt (1) utilitas karena penanganannya argumen yang mengandung spasi. Itugetopts builtin dapat digunakan untuk mendapatkan opsi dan argumennya dari daftar parameter. Saat dipanggil,getopts menempatkan nilai opsi berikutnya dari string opsi dalam daftar di variabel shell yang ditentukan oleh var dan itu indeks dalam variabel shellOPTIND Ketika shell dipanggil,OPTIND diinisialisasi ke 1. Untuk setiap opsi yang membutuhkan argumen,getopts builtin akan menempatkannya dalam variabel shellOPTARG Jika opsi tidak diizinkan untuk di tali pengikat kemudianOPTARG akan dibatalkan. tali pengikat adalah serangkaian huruf opsi yang dikenal. Jika huruf diikuti oleh titik dua, opsi ini diharapkan memiliki argumen yang mungkin atau mungkin tidak dipisahkan dari itu oleh spasi. Jika karakter opsi tidak ditemukan di tempat yang diharapkan,getopts akan mengatur variabel var ke ``? ''getopts kemudian akan tidak disetelOPTARG dan tulis output ke standard error. Dengan menetapkan titik dua sebagai karakter pertama tali pengikat semua kesalahan akan diabaikan. Nilai bukan nol dikembalikan ketika opsi terakhir tercapai. Jika tidak ada argumen yang tersisa,getopts akan diatur var ke opsi khusus, `` - '' jika tidak, itu akan diatur var ke ``? '' Fragmen kode berikut menunjukkan bagaimana seseorang dapat memproses argumen untuk sebuah perintah yang dapat mengambil opsi a dan b dan opsi c yang membutuhkan argumen. sementara getopts abc: fmelakukanhuruf $ f dalama | b) bendera = $ f ;;c) carg = $ OPTARG ;;?) echo $ USAGE; keluar 1 ;;esacselesaishift `expr $ OPTIND - 1` Kode ini akan menerima hal-hal berikut sebagai yang setara: file file cmd -acargfile file cmd -a -c argcmd -carg -a file filecmd -a -carg - file file hash -rv perintah… Shell mempertahankan tabel hash yang mengingat lokasi perintah. Tanpa argumen apapun, ituhash perintah mencetak isi dari tabel ini. Entri yang belum dilihat sejak terakhirCD perintah ditandai dengan tanda bintang; mungkin entri-entri ini tidak valid. Dengan argumen, ituhash perintah menghapus perintah yang ditentukan dari tabel hash (kecuali mereka berfungsi) dan kemudian menempatkan mereka. Dengan -v pilihan, hash mencetak lokasi dari perintah ketika menemukan mereka. -r opsi menyebabkan perintah hash untuk menghapus semua entri dalam tabel hash kecuali untuk fungsi. pekerja pekerjaan Cetak proses id dari proses dalam pekerjaan. Jika itu pekerjaan argumen dihilangkan, pekerjaan saat ini digunakan. pekerjaan Perintah ini mencantumkan semua proses latar belakang yang merupakan anak-anak dari proses shell saat ini. pwd Cetak direktori saat ini. Perintah builtin mungkin berbeda dari program dengan nama yang sama karena perintah builtin mengingat apa direktori saat ini daripada mengkomputasi ulang setiap kali. Ini membuatnya lebih cepat. Namun, jika direktori saat ini berganti nama, versi bawaan daripwd akan terus mencetak nama lama untuk direktori. Baca baca-p cepat -r variabel… Prompt dicetak jika -p opsi ditentukan dan input standar adalah terminal. Kemudian garis dibaca dari input standar. Garis akhir baru dihapus dari garis dan garis dibagi seperti yang dijelaskan di bagian pada pembagian kata di atas, dan potongan-potongan ditugaskan ke variabel dalam urutan. Setidaknya satu variabel harus ditentukan. Jika ada lebih banyak bagian dari variabel, bagian yang tersisa (bersama dengan karakter dalamIFS yang memisahkan mereka) ditugaskan ke variabel terakhir. Jika ada lebih banyak variabel daripada potongan, variabel yang tersisa diberi string null. ItuBaca baca builtin akan menunjukkan keberhasilan kecuali EOF ditemukan pada input, di mana kegagalan terjadi. Secara default, kecuali -r opsi ditentukan, backslash `` '' bertindak sebagai karakter pelarian, menyebabkan karakter berikut diperlakukan secara harfiah. Jika backslash diikuti oleh newline, backslash dan newline akan dihapus. hanya bisa dibaca nama… hanya baca -p Nama yang ditentukan ditandai sebagai hanya-baca, sehingga mereka tidak dapat dimodifikasi atau tidak disetel. Shell memungkinkan nilai variabel yang akan ditetapkan pada saat yang sama ditandai bertanda hanya dengan menulis nama baca = nilai Tanpa argumen, perintah hanya-baca mencantumkan nama semua variabel hanya-baca. Dengan -p opsi yang ditentukan output akan diformat sesuai untuk penggunaan non-interaktif. set { -opsi | + opsi | - arg … Ituset perintah melakukan tiga fungsi berbeda. Tanpa argumen, daftar nilai dari semua variabel shell. Jika opsi diberikan, itu menetapkan bendera opsi yang ditentukan, atau membersihkan mereka seperti yang dijelaskan di bagian yang disebut Sx Argument List Processing. Penggunaan ketiga dari perintah set adalah untuk mengatur nilai parameter posisi shell ke argumen yang ditentukan. Untuk mengubah parameter posisi tanpa mengubah opsi apa pun, gunakan `` - '' sebagai argumen pertama yang ditetapkan. Jika tidak ada arg, maka perintah set akan menghapus semua parameter posisi (setara dengan mengeksekusi `` shift $ #. '' nilai variabel Menetapkan nilai ke variabel. (Secara umum lebih baik menulis variabel = nilai daripada menggunakansetvar setvardimaksudkan untuk digunakan dalam fungsi yang menetapkan nilai ke variabel yang namanya dilewatkan sebagai parameter.) bergeser n Geser parameter posisional n kali. SEBUAHbergeser menetapkan nilai $1 untuk nilai $2 nilai dari $2 untuk nilai $3 dan seterusnya, menurunkan nilai $# dengan satu. Jika n lebih besar dari jumlah parameter posisi,bergeser akan mengeluarkan pesan kesalahan, dan keluar dengan status pengembalian 2. waktu Cetak akumulasi pengguna dan waktu sistem untuk shell dan untuk proses yang dijalankan dari shell. Status kembalinya adalah 0. perangkap tindakan sinyal… Penyebab shell mem-parsing dan mengeksekusi aksi ketika ada sinyal yang ditentukan diterima. Sinyal ditentukan oleh nomor sinyal. Jika sinyal aku s0 aksi dijalankan ketika shell keluar. tindakan mungkin null atau `` - '' yang pertama menyebabkan sinyal yang ditentukan diabaikan dan yang terakhir menyebabkan tindakan default yang akan diambil. Ketika shell bercabang dari subkulit, ia mengatur ulang sinyal yang terperangkap (tetapi tidak diabaikan) ke tindakan default. Ituperangkap perintah tidak berpengaruh pada sinyal yang diabaikan saat masuk ke shell. mengetik nama … Tafsirkan setiap nama sebagai perintah dan cetak resolusi pencarian perintah. Kemungkinan resolusinya adalah: shell keyword, alias, shell builtin, perintah, dilacak alias dan tidak ditemukan. Untuk alias, perluasan alias dicetak; untuk perintah dan dilacak alias pathname lengkap dari perintah dicetak. ulimit-H -S -a -tfdscmlpn nilai Tanyakan tentang atau tetapkan batas keras atau lunak pada proses atau tetapkan batas baru.Pilihan antara batas keras (yang tidak ada proses diperbolehkan untuk melanggar, dan yang mungkin tidak dibangkitkan setelah telah diturunkan) dan batas lunak (yang menyebabkan proses yang akan ditandai tetapi tidak harus dibunuh, dan yang mungkin dibangkitkan) dibuat dengan bendera-bendera ini: -H mengatur atau menanyakan tentang batas keras -S mengatur atau menanyakan tentang batas-batas lunak. Jika tidak -H atau -S ditentukan, batas lunak ditampilkan atau kedua batas diatur. Jika keduanya ditentukan, yang terakhir menang. Batas untuk diinterogasi atau diatur, kemudian, dipilih dengan menentukan salah satu dari bendera-bendera ini: -Sebuah tampilkan semua batasan saat ini -t tampilkan atau atur batas waktu CPU (dalam detik) -f tampilkan atau tetapkan batas pada file terbesar yang dapat dibuat (dalam blok 512-byte) -d tampilkan atau atur batas pada ukuran segmen data dari suatu proses (dalam kilobyte) -s tampilkan atau tetapkan batas pada ukuran tumpukan dari suatu proses (dalam kilobyte) -c tampilkan atau atur batas ukuran inti dump terbesar yang dapat diproduksi (dalam blok 512-byte) -m tampilkan atau atur batas pada total memori fisik yang dapat digunakan oleh suatu proses (dalam kilobyte) -l tampilkan atau atur batas pada berapa banyak memori yang dapat dikunci dengan mlock (2) (dalam kilobyte) -p tampilkan atau tetapkan batas jumlah proses yang dapat dimiliki pengguna ini pada satu waktu -n tampilkan atau atur batas pada nomor file yang bisa dibuka proses sekaligus Jika tidak ada yang ditentukan, itu adalah batas ukuran file yang ditampilkan atau disetel. Jika nilai ditentukan, batas diatur ke nomor itu; jika tidak, batas saat ini ditampilkan. Batas proses arbitrer dapat ditampilkan atau diatur menggunakan utilitas sysctl (8). umask topeng Set nilai umask (lihat umask (2)) ke nilai oktal yang ditentukan. Jika argumen dihilangkan, nilai umask dicetak. unalias-Sebuah nama Jika nama ditentukan, shell menghapus alias itu. Jika -Sebuah ditentukan, semua alias dihapus. tidak disetel nama… Variabel dan fungsi yang ditentukan tidak disetel dan tidak dieksport. Jika nama yang diberikan sesuai dengan variabel dan fungsi, baik variabel maupun fungsinya tidak disetel. Tunggu pekerjaan Tunggu pekerjaan yang ditentukan untuk menyelesaikan dan mengembalikan status keluar dari proses terakhir dalam pekerjaan. Jika argumen dihilangkan, tunggu semua pekerjaan selesai dan kembalikan status keluar dari nol. KapanSH sedang digunakan secara interaktif dari terminal, perintah saat ini dan sejarah perintah (lihatfc di Sx Builtins) dapat diedit menggunakan pengeditan baris perintah vi-mode. Mode ini menggunakan perintah, yang dijelaskan di bawah ini, mirip dengan subset dari yang dijelaskan di halaman manual vi. Perintah `set '-o vi memungkinkan pengeditan vi-mode dan menempatkan sh ke mode vi insert. Dengan vi-mode diaktifkan, sh dapat dialihkan antara mode insert dan mode perintah. Editor tidak dijelaskan secara lengkap di sini, tetapi akan ada di dokumen selanjutnya. Ini mirip dengan vi: mengetik Aq ESC akan melemparkan Anda ke mode perintah perintah VI. Memukul Aq kembali saat dalam mode perintah akan meneruskan baris ke shell. Menggunakan pria perintah ( % pria ) untuk melihat bagaimana perintah digunakan pada komputer khusus Anda. Mengutip
Backslash
Kutipan Tunggal
Kutipan Ganda
Kata-kata yang Dicadangkan
Alias
Perintah
Perintah Sederhana
Pencarian dan Eksekusi
Pencarian Jalur
Perintah Kompleks
Saluran pipa
Perintah Latar Belakang -
Daftar - Umumnya Berbicara
Operator Daftar Sirkuit Pendek
Flow-Control Constructs - jika, sementara, untuk, case
Mengelompokkan Perintah Bersama
Variabel dan Parameter
Parameter Posisional
Parameter Khusus
Tilde Expansion (mengganti direktori home pengguna)
Ekspansi Parameter
Ekspansi Aritmatika
Pemisahan Ruang Putih (Pemisahan Lapangan)
Ekspansi Pathname (Nama File Generasi)
Pola Kerang
Builtins
Pengeditan Baris Perintah




