InggrisPerancisSpanyol

Ad


favorit OnWorks

mksh - Online di Cloud

Jalankan mksh di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah mksh yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


mksh, sh — Kulit Korn MirBSD

RINGKASAN


mksh [-+abCefhiklmnprUuvXx] [-T [!]tty | -] [-+o Option] [-c tali | -s | fillet
[argumen ...]]
nama bawaan [argumen ...]

DESKRIPSI


mksh adalah juru bahasa perintah yang ditujukan untuk penggunaan skrip interaktif dan shell. Nya
bahasa perintah adalah superset dari bahasa shell sh(C) dan sebagian besar kompatibel dengan
kulit Korn asli. Terkadang, halaman manual ini dapat memberikan saran penulisan skrip; sementara itu
terkadang mempertimbangkan skrip shell portabel atau berbagai standar semua
informasi pertama dan terutama disajikan dengan mksh dalam pikiran dan harus diambil seperti itu.

Saya m an Android Pengguna, so apa mksh?
mksh adalah penerjemah perintah shell / UNIX, mirip dengan COMMAND.COM or CMD.EXE, yang memiliki
telah disertakan dengan Proyek Open Source Android untuk sementara waktu sekarang. Pada dasarnya, ini adalah sebuah program
yang berjalan di terminal (jendela konsol), mengambil input pengguna dan menjalankan perintah atau skrip,
yang juga dapat diminta untuk dilakukan oleh program lain, bahkan di latar belakang. Hak istimewa apa pun
pop-up yang mungkin Anda temui tidak demikian mksh masalah tetapi pertanyaan oleh beberapa orang lain
program yang memanfaatkannya.

Doa
Sebagian besar bawaan dapat dipanggil secara langsung, misalnya jika tautan menunjuk dari namanya ke
kerang; tidak semua masuk akal, telah diuji atau bekerja sama sekali sekalipun.

Pilihannya adalah sebagai berikut:

-c tali mksh akan menjalankan perintah yang terkandung dalam tali.

-i Cangkang interaktif. Shell yang membaca perintah dari input standar adalah
"interaktif" jika opsi ini digunakan atau jika input standar dan kesalahan standar
dilampirkan ke tty(4). Shell interaktif memiliki kontrol pekerjaan yang diaktifkan, abaikan
sinyal SIGINT, SIGQUIT, dan SIGTERM, dan mencetak petunjuk sebelum membaca input
(lihat parameter PS1 dan PS2). Itu juga memproses parameter ENV atau
mkshrc berkas (lihat di bawah). Untuk shell non-interaktif, trackall pilihan aktif
secara default (lihat set perintah di bawah).

-l Shell masuk. Jika nama dasar shell dipanggil dengan (yaitu argv[0]) dimulai dengan
'-' atau jika opsi ini digunakan, shell diasumsikan sebagai shell login; Lihat
startup arsip di bawah.

-p Cangkang istimewa. Shell adalah "hak istimewa" jika ID pengguna atau ID grup yang sebenarnya melakukannya
tidak cocok dengan ID pengguna atau ID grup yang efektif (lihat getuid(2) dan menjadi pusing(2)).
Menghapus opsi istimewa menyebabkan shell mengatur ID pengguna yang efektif
(ID grup) ke ID pengguna sebenarnya (ID grup). Untuk implikasi lebih lanjut, lihat startup
arsip. Jika shell diistimewakan dan flag ini tidak disetel secara eksplisit,
Opsi "istimewa" dihapus secara otomatis setelah memproses file startup.

-r Cangkang terbatas. Shell "dibatasi" jika opsi ini digunakan. Pengikut
pembatasan mulai berlaku setelah shell memproses profil apa pun dan ENV
file:

· Grafik cd (Dan chdir) perintah dinonaktifkan.
· Parameter SHELL, ENV, dan PATH tidak dapat diubah.
· Nama perintah tidak dapat ditentukan dengan jalur absolut atau relatif.
· Grafik -p opsi perintah bawaan Command tidak dapat digunakan.
· Pengalihan yang membuat file tidak dapat digunakan (yaitu '>', '>|', '>>', '<>').

-s Shell membaca perintah dari input standar; semua argumen non-opsi adalah
parameter posisi.

-T nama Menelurkan mksh pada tty(4) perangkat yang diberikan. Jalan-jalan nama, /dev/ttyCname dan
/dev/ttyname dicoba berurutan. Kecuali nama diawali dengan tanda seru
('!'), ini dilakukan dalam subkulit dan segera kembali. Jika nama adalah tanda hubung
('-'), lepaskan dari terminal pengontrol (daemonise) sebagai gantinya.

Selain di atas, opsi yang dijelaskan dalam set perintah bawaan juga dapat digunakan
pada baris perintah: keduanya [-+abCefhkmnuvXx] Dan [-+o Option] dapat digunakan untuk satu huruf
atau opsi panjang, masing-masing.

Jika keduanya tidak -c maupun -s opsi ditentukan, argumen non-opsi pertama menentukan
nama file tempat shell membaca perintah. Jika tidak ada argumen non-opsi,
shell membaca perintah dari input standar. Nama shell (yaitu isi dari
$0) ditentukan sebagai berikut: jika -c opsi digunakan dan ada argumen non-opsi,
itu digunakan sebagai nama; jika perintah sedang dibaca dari file, file tersebut digunakan sebagai
nama; jika tidak, nama dasar yang digunakan shell (yaitu argv[0]) digunakan.

Status keluar dari shell adalah 127 jika file perintah yang ditentukan pada baris perintah dapat
tidak dibuka, atau bukan nol jika kesalahan sintaks yang fatal terjadi selama eksekusi a
naskah. Dengan tidak adanya kesalahan fatal, status keluar adalah dari perintah terakhir
dieksekusi, atau nol, jika tidak ada perintah yang dieksekusi.

startup arsip
Untuk lokasi sebenarnya dari file-file ini, lihat FILE. Shell login memproses sistem
profil dulu. Shell yang diistimewakan kemudian memproses profil suid. Login tanpa hak istimewa
shell memproses profil pengguna selanjutnya. Shell interaktif non-istimewa memeriksa nilainya
dari parameter ENV setelah tunduk pada parameter, perintah, aritmatika dan tilde ('~')
pengganti; jika tidak disetel atau kosong, profil mkshrc pengguna diproses; jika tidak, jika file
yang namanya hasil substitusi ada, diproses; ketidakberadaan adalah diam-diam
diabaikan. Shell yang diistimewakan kemudian menjatuhkan hak istimewa jika tidak ada -p pilihan yang diberikan pada
baris perintah atau diatur selama eksekusi file startup.

perintah sintaksis
Shell mulai mengurai inputnya dengan menghapus kombinasi garis miring terbalik-baris baru, lalu
memecahnya menjadi kata. Kata-kata (yang merupakan urutan karakter) dibatasi oleh tanda kutip
karakter spasi putih (spasi, tab, dan baris baru) atau karakter meta ('<', '>', '|', ';', '(',
')', dan '&'). Selain membatasi kata, spasi dan tab diabaikan, sementara baris baru
biasanya membatasi perintah. Meta-karakter digunakan dalam membangun berikut: token:
'<', '<&', '<<', '<<<', '>', '>&', '>>', '&>', dll. digunakan untuk menentukan pengalihan (lihat
Input / Output redirection di bawah); '|' digunakan untuk membuat saluran pipa; '|&' digunakan untuk membuat co-
proses (lihat Proses bersama di bawah); ';' digunakan untuk memisahkan perintah; '&' digunakan untuk membuat
pipa asinkron; '&&' dan '||' digunakan untuk menentukan eksekusi bersyarat; ';;', ';&'
dan ';|' digunakan dalam kasus pernyataan; '(( .. ))' digunakan dalam ekspresi aritmatika; dan
terakhir, '( .. )' digunakan untuk membuat subkulit.

Spasi dan karakter meta dapat dikutip satu per satu menggunakan garis miring terbalik ('\'), atau di
kelompok menggunakan tanda kutip ganda ('"') atau tunggal ("'"). Perhatikan bahwa karakter berikut adalah
juga diperlakukan secara khusus oleh cangkang dan harus dikutip jika mereka ingin mewakili diri mereka sendiri:
'\', '"', ''', '#', '$', '`', '~', '{', '}', '*', '?', dan '['. tiga yang pertama
adalah karakter kutipan yang disebutkan di atas (lihat Mengutip di bawah); '#', jika digunakan di
awal kata, memperkenalkan komentar – semuanya setelah '#' hingga yang terdekat
baris baru diabaikan; '$' digunakan untuk memperkenalkan parameter, perintah, dan aritmatika
substitusi (lihat Substitusi di bawah); ''`' memperkenalkan substitusi perintah gaya lama
(Lihat Substitusi di bawah); '~' memulai perluasan direktori (lihat Tilde perluasan di bawah); '{'
dan batas '}' csh(1) pergantian gaya (lihat Penjepit perluasan di bawah); dan akhirnya, '*',
'?', dan '[' digunakan dalam pembuatan nama file (lihat File nama pola bawah).

Saat kata dan token diuraikan, shell membuat perintah, yang terdiri dari dua perintah dasar:
jenis: perintah-sederhana, biasanya program yang dijalankan, dan perintah majemukseperti itu
as untuk dan if pernyataan, pengelompokan konstruksi, dan definisi fungsi.

Perintah sederhana terdiri dari beberapa kombinasi penetapan parameter (lihat parameter
di bawah), pengalihan input/output (lihat Input / Output pengalihan bawah), dan kata-kata perintah;
satu-satunya batasan adalah bahwa penetapan parameter datang sebelum kata perintah apa pun. NS
kata perintah, jika ada, mendefinisikan perintah yang akan dieksekusi dan argumennya. NS
perintah dapat berupa perintah bawaan shell, fungsi, atau perintah eksternal (yaitu perintah terpisah
file yang dapat dieksekusi yang terletak menggunakan parameter PATH; Lihat perintah eksekusi bawah).
Perhatikan bahwa semua konstruksi perintah memiliki status keluar: untuk perintah eksternal, ini terkait
ke status yang dikembalikan oleh menunggu(2) (jika perintah tidak dapat ditemukan, status keluarnya adalah
127; jika tidak dapat dieksekusi, status keluarnya adalah 126); status keluar dari perintah lain
konstruksi (perintah bawaan, fungsi, perintah gabungan, saluran pipa, daftar, dll.) semuanya
didefinisikan dengan baik dan dijelaskan di mana konstruk dijelaskan. Status keluar dari a
perintah yang hanya terdiri dari penetapan parameter adalah perintah substitusi terakhir
dilakukan selama penetapan parameter atau 0 jika tidak ada substitusi perintah.

Perintah dapat dirantai bersama menggunakan '|' token untuk membentuk saluran pipa, di mana
keluaran standar dari setiap perintah tetapi yang terakhir disalurkan (lihat pipa(2)) ke input standar dari
perintah berikut. Status keluar dari pipa adalah perintah terakhirnya, kecuali
itu kegagalan pipa opsi diatur (lihat di sana). Semua perintah pipa dieksekusi secara terpisah
subkulit; ini diperbolehkan oleh POSIX tetapi berbeda dari kedua varian AT&T UNIX ksh, Di mana
semua kecuali perintah terakhir dieksekusi dalam subkulit; lihat Baca baca deskripsi bawaan untuk
implikasi dan solusi. Pipeline mungkin diawali dengan '!' kata cadangan yang
menyebabkan status keluar dari pipa dilengkapi secara logis: jika status aslinya
adalah 0, status yang dilengkapi akan menjadi 1; jika status aslinya bukan 0, yang dilengkapi
statusnya akan menjadi 0.

daftar perintah dapat dibuat dengan memisahkan pipa dengan salah satu token berikut:
'&&', '||', '&', '|&', dan ';'. Dua yang pertama adalah untuk eksekusi bersyarat: “cmd1 && cmd2"
mengeksekusi cmd2 hanya jika status keluar dari cmd1 adalah nol; '||' adalah kebalikan- cmd2 is
dieksekusi hanya jika status keluar dari cmd1 bukan nol. '&&' dan '||' memiliki prioritas yang sama
yang lebih tinggi dari '&', '|&', dan ';', yang juga memiliki prioritas yang sama. Catatan
bahwa '&&' dan '||' operator adalah "kiri-asosiatif". Misalnya, keduanya
perintah hanya akan mencetak "bar":

$ false && echo foo || bilah gema
$ benar || echo foo && bilah gema

Token '&' menyebabkan perintah sebelumnya dieksekusi secara asinkron; yaitu cangkang
memulai perintah tetapi tidak menunggu sampai selesai (Shell memang melacak
status perintah asinkron; Lihat Pekerjaan kontrol di bawah). Ketika perintah asinkron adalah
dimulai ketika kontrol pekerjaan dinonaktifkan (yaitu di sebagian besar skrip), perintah dimulai dengan
sinyal SIGINT dan SIGQUIT diabaikan dan dengan input dialihkan dari / dev / null (Namun,
pengalihan yang ditentukan dalam perintah asinkron didahulukan). Operator '|&'
memulai proses bersama yang merupakan jenis khusus dari proses asinkron (lihat Proses bersama
di bawah). Perhatikan bahwa perintah harus mengikuti '&&' dan '||' operator, sementara itu tidak perlu
ikuti '&', '|&', atau ';'. Status keluar dari daftar adalah perintah terakhir yang dieksekusi,
dengan pengecualian daftar asinkron, yang status keluarnya adalah 0.

Perintah gabungan dibuat menggunakan kata-kata khusus berikut. Kata-kata ini hanya
dikenali jika tidak dikutip dan jika digunakan sebagai kata pertama dari suatu perintah (mis
mereka tidak dapat didahului oleh penetapan parameter atau pengalihan):

kasus fungsi lain kemudian ! (
lakukan esac jika waktu [[ ((
selesai sampai {
elif untuk memilih sementara }

Dalam deskripsi perintah gabungan berikut, daftar perintah (dilambangkan sebagai daftar) yaitu
diikuti oleh kata-kata khusus harus diakhiri dengan titik koma, baris baru, atau (secara sintaksis
benar) kata yang dicadangkan. Misalnya, berikut ini semua valid:

${ echo foo; bilah gema; }
${ echo foo; bilah gema }
$ { { echo foo; bilah gema; } }

Ini tidak valid:

${ echo foo; bilah gema }

(daftar)
Eksekusi daftar dalam subkulit. Tidak ada cara implisit untuk melewatkan perubahan lingkungan dari
subkulit kembali ke induknya.

{ daftar; }
Konstruksi majemuk; daftar dieksekusi, tetapi tidak dalam subkulit. Perhatikan bahwa '{' dan '}'
adalah kata-kata yang dicadangkan, bukan meta-karakter.

kasus kata di dalam [[(] belt hold [| belt hold] ...) daftar terminator] ... esak
Grafik kasus pernyataan mencoba untuk mencocokkan kata terhadap yang ditentukan belt hold; itu daftar
terkait dengan pola pertama yang berhasil dicocokkan dieksekusi. Pola yang digunakan dalam
kasus pernyataan sama dengan yang digunakan untuk pola nama file kecuali bahwa
pembatasan tentang '.' dan '/' dihilangkan. Perhatikan bahwa setiap ruang tanpa tanda kutip sebelumnya
dan setelah pola dilucuti; setiap ruang dalam suatu pola harus dikutip. Keduanya
kata dan pola tunduk pada parameter, perintah, dan substitusi aritmatika,
serta substitusi tilde.

Untuk alasan historis, kurung kurawal buka dan tutup dapat digunakan sebagai pengganti in dan esac misalnya
kasus $foo { *) gema bar ;; }.

Daftar terminatoradalah:

';;' Hentikan setelah daftar.

';&' Masuk ke daftar berikutnya.

';|' Evaluasi tupel daftar pola yang tersisa.

Status keluar dari a kasus pernyataan adalah yang dieksekusi daftar; jika tidak daftar is
dieksekusi, status keluar adalah nol.

untuk nama [di kata ...]; melakukan daftar; selesai
Untuk setiap kata dalam daftar kata yang ditentukan, parameter nama diatur ke kata dan
daftar dieksekusi. Jika in tidak digunakan untuk menentukan daftar kata, parameter posisi
($1, $2, dll.) digunakan sebagai gantinya. Untuk alasan historis, kurung kurawal buka dan tutup mungkin
digunakan sebagai pengganti do dan dilakukan misalnya untuk i; { gema $i; }. Status keluar dari a untuk
pernyataan adalah status keluar terakhir dari daftar; jika daftar tidak pernah dieksekusi, status keluar
adalah nol.

if daftar; kemudian daftar; [elif daftar; kemudian daftar;] ... [lain daftar;] fi
Jika status keluar yang pertama daftar adalah nol, yang kedua daftar dijalankan; sebaliknya,
itu daftar mengikuti elif, jika ada, dieksekusi dengan konsekuensi serupa. Aku jatuh
daftar berikut if dan elifs gagal (yaitu keluar dengan status bukan nol), daftar
mengikuti lain dieksekusi. Status keluar dari an if pernyataan adalah non-
bersyarat daftar yang dieksekusi; jika tidak tanpa syarat daftar dijalankan, pintu keluar
statusnya nol.

memilih nama [di kata ...]; melakukan daftar; selesai
Grafik memilih pernyataan menyediakan metode otomatis untuk menyajikan menu kepada pengguna
dan memilih darinya. Daftar enumerasi dari yang ditentukan kata(s) dicetak pada
kesalahan standar, diikuti dengan prompt (PS3: biasanya '#? '). Angka yang sesuai dengan
salah satu kata yang disebutkan kemudian dibaca dari input standar, nama diatur ke
kata yang dipilih (atau tidak disetel jika pilihan tidak valid), REPLY diatur ke apa yang telah dibaca
(ruang depan/belakang dilucuti), dan daftar dieksekusi. Jika baris kosong (mis
nol atau lebih oktet IFS) dimasukkan, menu dicetak ulang tanpa dijalankan daftar.

Ketika daftar selesai, daftar enumerasi dicetak jika REPLY adalah NULL, promptnya adalah
dicetak, dan sebagainya. Proses ini berlanjut sampai akhir file dibaca, interupsi
diterima, atau istirahat pernyataan dieksekusi di dalam loop. Jika "dalam kata ..." adalah
dihilangkan, parameter posisi digunakan (yaitu $1, $2, dll.). Untuk sejarah
alasan, kawat gigi buka dan tutup dapat digunakan sebagai pengganti do dan dilakukan misalnya memilih i; {
gema $i; }. Status keluar dari a memilih pernyataan adalah nol jika istirahat pernyataan adalah
digunakan untuk keluar dari loop, bukan nol sebaliknya.

sampai daftar; melakukan daftar; selesai
Ini berfungsi seperti sementara, kecuali bahwa tubuh dijalankan hanya saat status keluar dari
yang pertama daftar bukan nol.

sementara daftar; melakukan daftar; selesai
A sementara adalah loop yang sudah diperiksa sebelumnya. Tubuhnya dieksekusi sesering status keluar dari
yang pertama daftar adalah nol. Status keluar dari a sementara pernyataan adalah status keluar terakhir
dari daftar di badan loop; jika tubuh tidak dieksekusi, status keluarnya adalah
nol.

fungsi nama { daftar; }
Mendefinisikan fungsi nama (Lihat Fungsi di bawah). Perhatikan bahwa pengalihan ditentukan
setelah definisi fungsi dilakukan setiap kali fungsi dijalankan, bukan ketika
definisi fungsi dijalankan.

nama() Command
Hampir sama dengan fungsi (Lihat Fungsi di bawah). Spasi putih (spasi atau tab) setelahnya
nama akan diabaikan sebagian besar waktu.

fungsi nama() { daftar; }
Sama seperti nama() (menamparaliran). NS fungsi kata kunci diabaikan.

waktu [-p] [pipa saluran]
Grafik perintah eksekusi bagian menjelaskan waktu kata yang dipesan.

(( ekspresi ))
Ekspresi aritmatika ekspresi dievaluasi; setara dengan "biarkan ekspresi" (lihat
Hitung ekspresi dan membiarkan perintah, di bawah) dalam konstruksi majemuk.

[[ ekspresi ]]
Serupa dengan uji dan [ ... ] perintah (dijelaskan nanti), dengan berikut
pengecualian:

· Pemisahan bidang dan pembuatan nama file tidak dilakukan pada argumen.

· Grafik -a (Dan dan -o (ATAU) operator masing-masing diganti dengan '&&' dan '||'.

· Operator (misalnya '-f', '=', '!') harus diberi tanda kutip.

· Substitusi parameter, perintah, dan aritmatika dilakukan sebagai ekspresi
dievaluasi dan evaluasi ekspresi malas digunakan untuk '&&' dan '||' operator.
Ini berarti bahwa dalam pernyataan berikut, $( dievaluasi jika dan hanya jika
file foo ada dan dapat dibaca:

$ [[ -r untuk && $(

· Operan kedua dari ekspresi '!=' dan '=' adalah subset dari pola (mis
perbandingan [[ foobar = NS ]] berhasil). Ini bahkan bekerja secara tidak langsung:

$bar=foobar; baz='f*r'
$[[ $bar = $baz ]]; gema $?
$[[ $bar = "$baz" ]]; gema $?

Mungkin mengejutkan, perbandingan pertama berhasil, sedangkan yang kedua tidak.
Ini tidak berlaku untuk semua metakarakter extglob, saat ini.

Mengutip
Mengutip digunakan untuk mencegah shell memperlakukan karakter atau kata secara khusus. Ada
tiga cara mengutip. Pertama, '\' mengutip karakter berikut, kecuali jika berada di
akhir baris, dalam hal ini baik '\' dan baris baru dilucuti. Kedua, tunggal
kutipan (“'”) mengutip semuanya hingga kutipan tunggal berikutnya (ini mungkin mencakup baris). Ketiga,
tanda kutip ganda ('"') tanda kutip semua karakter, kecuali '$', ''`' dan '\', hingga unescaped berikutnya
kutipan ganda. '$' dan '`' di dalam tanda kutip ganda memiliki arti yang biasa (yaitu parameter,
aritmatika, atau substitusi perintah) kecuali tidak ada pemisahan bidang yang dilakukan pada hasil
substitusi tanda kutip ganda, dan bentuk substitusi perintah gaya lama memiliki
backslash-quoting untuk tanda kutip ganda diaktifkan. Jika '\' di dalam string bertanda kutip ganda adalah
diikuti oleh '\', '$', '`', atau '"', diganti dengan karakter kedua; jika diikuti
oleh baris baru, baik '\' dan baris baru dihapus; jika tidak, baik '\' dan
karakter berikut tidak berubah.

Jika string bertanda kutip tunggal didahului oleh '$', ekspansi garis miring terbalik gaya C (lihat
di bawah) diterapkan (bahkan karakter kutipan tunggal di dalamnya dapat diloloskan dan tidak dihentikan
string kemudian); hasil yang diperluas diperlakukan sebagai string yang dikutip tunggal lainnya. Jika sebuah
string yang dikutip ganda didahului oleh '$' yang tidak dikutip, '$' diabaikan begitu saja.

Backslash perluasan
Di tempat di mana garis miring terbalik diperluas, C dan AT&T UNIX tertentu ksh atau GNU menampar gaya
melarikan diri diterjemahkan. Ini termasuk '\a', '\b', '\f', '\n', '\r', '\t', '\U########',
'\u####', dan '\v'. Untuk '\U########' dan '\u####', “#” berarti digit heksadesimal, dari
mungkin tidak ada sampai empat atau delapan; pelarian ini menerjemahkan titik kode Unicode ke UTF-8.
Selanjutnya, '\E' dan '\e' diperluas ke karakter escape.

Dalam majalah mencetak mode bawaan, '\"', '\'', dan '\?' secara eksplisit dikecualikan; urutan oktal
harus tidak ada hingga tiga digit oktal yang diawali dengan angka nol ('\0###');
barisan heksadesimal '\x##' dibatasi hingga dua digit heksadesimal “#”; keduanya
urutan oktal dan heksadesimal dikonversi ke oktet mentah; '\#', di mana # bukan salah satu dari yang di atas,
diterjemahkan ke \# (garis miring terbalik dipertahankan).

Ekspansi garis miring terbalik dalam mode gaya C sedikit berbeda: urutan oktal '\###' harus dimiliki
tidak ada digit nol yang mengawali satu hingga tiga digit oktal “#” dan menghasilkan oktet mentah;
deret heksadesimal '\x#*' dengan rakus memakan sebanyak mungkin digit heksadesimal “#” dan
diakhiri dengan digit non-heksadesimal pertama; ini menerjemahkan titik kode Unicode ke
UTF-8. Urutan '\c#', di mana "#" adalah oktet apa pun, diterjemahkan menjadi Ctrl-# (yang pada dasarnya
artinya, '\c?' menjadi DEL, yang lainnya bitwise ANDed dengan 0x1F). Akhirnya, '\#', di mana
# bukan salah satu dari yang di atas, diterjemahkan menjadi # (telah garis miring terbalik dipangkas), meskipun itu a
garis baru.

alias
Ada dua jenis alias: alias perintah normal dan alias terlacak. Alias ​​perintah
biasanya digunakan sebagai tangan pendek untuk perintah yang panjang atau sering digunakan. Cangkangnya mengembang
perintah alias (yaitu mengganti nama alias untuk nilainya) ketika membaca kata pertama
dari sebuah perintah. Alias ​​yang diperluas diproses ulang untuk memeriksa lebih banyak alias. Jika sebuah perintah
alias berakhir dengan spasi atau tab, kata berikut juga diperiksa untuk perluasan alias. NS
proses perluasan alias berhenti ketika kata yang bukan alias ditemukan, ketika kata yang dikutip
ditemukan, atau ketika kata alias yang sedang diperluas ditemukan. Alias ​​​​adalah
khusus fitur interaktif: sementara mereka bekerja dalam skrip dan di
baris perintah dalam beberapa kasus, alias diperluas selama lexing, jadi penggunaannya harus dalam a
memisahkan pohon perintah dari definisinya; jika tidak, alias tidak akan ditemukan.
Terlihat, daftar perintah (dipisahkan dengan titik koma, dalam substitusi perintah juga oleh baris baru)
mungkin satu pohon parse yang sama.

Alias ​​perintah berikut didefinisikan secara otomatis oleh shell:

autoload='\typeset -fu'
fungsi='\typeset -f'
hash='\alias bawaan -t'
history='\builtin fc -l'
integer='\typeset -i'
lokal='\typeset'
login='\exec masuk'
nameref='\typeset -n'
nohup='nohup'
r='\builtin fc -e -'
type='\bawaan dari mana -v'

Alias ​​​​yang dilacak memungkinkan shell untuk mengingat di mana ia menemukan perintah tertentu. Pertama
waktu shell melakukan pencarian jalur untuk perintah yang ditandai sebagai alias yang dilacak, itu menghemat
path lengkap dari perintah. Saat berikutnya perintah dijalankan, shell memeriksa
jalur yang disimpan untuk melihat bahwa itu masih valid, dan jika demikian, menghindari pengulangan pencarian jalur.
Alias ​​yang dilacak dapat dicantumkan dan dibuat menggunakan alias -t. Perhatikan bahwa mengubah PATH
parameter menghapus jalur yang disimpan untuk semua alias yang dilacak. jika trackall pilihan diatur
(yaitu set -o trackall or set -h), shell melacak semua perintah. Opsi ini disetel
otomatis untuk shell non-interaktif. Untuk shell interaktif, hanya berikut ini
perintah dilacak secara otomatis: kucing(1) cc(1) chmod(1) cp(1) tanggal(1) ed(1)
emacs(1) grep(1) ls(1) membuat(1) mv(1) pr(1) rm(1) sed(1) sh(1) vi(1), dan yang(1).

Substitusi
Langkah pertama yang dilakukan shell dalam menjalankan perintah sederhana adalah melakukan substitusi pada
kata-kata perintah. Ada tiga jenis substitusi: parameter, perintah, dan
hitung. Substitusi parameter, yang dijelaskan secara rinci di bagian selanjutnya,
ambil bentuk $nama atau ${...}; substitusi perintah berbentuk $(Command) atau
(tidak digunakan lagi) `Command` atau (dieksekusi di lingkungan saat ini) ${ Command;} dan strip
mengikuti baris baru; dan substitusi aritmatika berbentuk $((ekspresi)). Menguraikan
Substitusi perintah lingkungan saat ini membutuhkan spasi, tab, atau baris baru setelah pembukaan
kurung kurawal dan kurung kurawal penutup dikenali sebagai kata kunci (yaitu didahului oleh baris baru
atau titik koma). Mereka juga disebut funsubs (substitusi fungsi) dan berperilaku seperti
fungsi di dalamnya lokal dan kembali bekerja, dan dalam hal itu keluar mengakhiri shell induk; kerang
opsi dibagikan.

Varian lain dari substitusi adalah valsubs (substitusi nilai) ${|Command;} yang mana
juga dieksekusi di lingkungan saat ini, seperti funsub, tetapi berbagi I/O dengan induknya;
sebagai gantinya, mereka mengevaluasi ke apa pun, variabel ekspresi-lokal yang awalnya kosong, REPLY adalah
diatur ke dalam Commands.

Jika substitusi muncul di luar tanda kutip ganda, hasil dari substitusi tersebut adalah
umumnya tunduk pada pemisahan kata atau bidang sesuai dengan nilai IFS saat ini
parameter. Parameter IFS menentukan daftar oktet yang digunakan untuk memecah string
menjadi beberapa kata; oktet apa pun dari ruang yang ditetapkan, tab, dan baris baru yang muncul di IFS
oktet disebut "IFS spasi". Urutan dari satu atau lebih oktet spasi putih IFS, dalam
kombinasi dengan nol atau satu oktet spasi putih non-IFS, membatasi bidang. Sebagai kasus khusus,
spasi putih IFS awal dan akhir dilucuti (yaitu tidak ada bidang kosong awal atau akhir yang
diciptakan olehnya); spasi putih non-IFS di depan atau di belakang memang membuat bidang kosong.

Contoh: Jika IFS diatur ke “ :”, dan VAR disetel ke
“ A : B::D”, penggantian $VAR menghasilkan empat bidang: 'A',
'B', '' (bidang kosong), dan 'D'. Perhatikan bahwa jika parameter IFS disetel ke kosong
string, tidak ada pemisahan bidang yang dilakukan; jika tidak disetel, nilai default spasi, tab, dan
baris baru digunakan.

Juga, perhatikan bahwa pemisahan bidang hanya berlaku untuk hasil langsung dari
pengganti. Menggunakan contoh sebelumnya, substitusi untuk $VAR:E menghasilkan:
bidang: 'A', 'B', '', dan 'D:E', bukan 'A', 'B', '', 'D', dan 'E'. Perilaku ini adalah POSIX
sesuai, tetapi tidak kompatibel dengan beberapa implementasi shell lain yang melakukan pemisahan bidang
pada kata yang mengandung substitusi atau menggunakan IFS sebagai pembatas spasi umum.

Hasil substitusi, kecuali ditentukan lain, juga tunduk pada ekspansi penjepit
dan perluasan nama file (lihat bagian yang relevan di bawah).

Substitusi perintah digantikan oleh output yang dihasilkan oleh perintah yang ditentukan yaitu
dijalankan dalam subkulit. Untuk $(Command) dan ${|Command;} dan ${ Command;} substitusi, normal
aturan mengutip digunakan ketika Command diuraikan; namun, untuk ` . yang tidak digunakan lagiCommand`bentuk, a
'\' diikuti oleh salah satu dari '$', '`', atau '\' dilucuti (seperti '"' ketika substitusi adalah bagian
dari string yang dikutip ganda); garis miring terbalik '\' diikuti oleh karakter lain tidak berubah.
Sebagai kasus khusus dalam substitusi perintah, perintah berbentukfillet ditafsirkan menjadi
berarti mengganti isi fillet. Catat itu $( memiliki efek yang sama dengan $(kucing foo).

Perhatikan bahwa beberapa shell tidak menggunakan parser rekursif untuk substitusi perintah, yang mengarah ke
kegagalan untuk konstruksi tertentu; untuk menjadi portabel, gunakan sebagai solusi 'x=$(cat) <<"EOF"' (atau
newline-keeping ekstensi 'x=<<"EOF"') alih-alih hanya menyeruput string. IEEE Std 1003.1
(“POSIX.1”) merekomendasikan untuk menggunakan pernyataan kasus dalam bentuk 'x=$(case $foo in (bar) echo $bar
;; (*) echo $baz ;; esac)' sebagai gantinya, yang akan berfungsi tetapi tidak berfungsi sebagai contoh untuk ini
masalah portabilitas.

x=$(case $foo di bar) echo $bar ;; *) echo $baz ;; esac)
# di atas gagal diurai pada shell lama; di bawah ini adalah solusinya
x=$(eval $(kucing)) <<"EOF"
case $foo di bar) echo $bar ;; *) echo $baz ;; esac
EOF

Substitusi aritmatika diganti dengan nilai ekspresi yang ditentukan. Untuk
contoh, perintah mencetak $((2+3*4)) menampilkan 14. Lihat Hitung ekspresi untuk
deskripsi sebuah ekspresi.

parameter
Parameter adalah variabel shell; mereka dapat diberi nilai dan nilainya dapat diakses
menggunakan substitusi parameter. Nama parameter adalah salah satu dari single spesial
parameter karakter tanda baca atau angka yang dijelaskan di bawah ini, atau huruf yang diikuti oleh nol atau
lebih banyak huruf atau angka ('_' dihitung sebagai huruf). Bentuk terakhir dapat diperlakukan sebagai array
dengan menambahkan indeks array dari formulir [cepat] dimana cepat adalah ekspresi aritmatika.
Indeks array di mksh terbatas pada kisaran 0 hingga 4294967295, inklusif. Itu adalah,
mereka adalah bilangan bulat tidak bertanda 32-bit.

Substitusi parameter berbentuk $nama, ${nama}, atau ${nama[cepat]} di mana nama adalah
nama parameter. Substitusi semua elemen array dengan ${nama[*]} dan ${nama[@]} berfungsi
setara dengan $* dan $@ untuk parameter posisi. Jika substitusi dilakukan pada
parameter (atau elemen parameter array) yang tidak disetel, string nol diganti
kecuali kata benda pilihan (set -o kata benda or set -u) diatur, dalam hal ini terjadi kesalahan.

Parameter dapat diberikan nilai dalam beberapa cara. Pertama, shell secara implisit ditetapkan
beberapa parameter seperti '#', 'PWD', dan '$'; ini adalah satu-satunya cara karakter tunggal khusus
parameter ditetapkan. Kedua, parameter diimpor dari lingkungan shell di
rintisan. Ketiga, parameter dapat diberi nilai pada baris perintah: misalnya, FOO = bar
setel parameter "FOO" ke "bar"; beberapa tugas parameter dapat diberikan pada satu
baris perintah dan mereka dapat diikuti oleh perintah sederhana, dalam hal ini tugasnya adalah
berlaku hanya selama durasi perintah (penugasan tersebut juga diekspor; lihat
di bawah ini untuk implikasinya). Perhatikan bahwa nama parameter dan '=' harus
tanda kutip untuk Shell untuk mengenali penetapan parameter. Konstruksinya FOO+=baz juga
dikenali; nilai-nilai lama dan baru segera digabungkan. Cara pengaturan keempat
sebuah parameter dengan ekspor, global, dibaca saja, dan mengeset perintah; lihat mereka
deskripsi di perintah eksekusi bagian. Kelima, untuk dan memilih loop mengatur parameter
serta getopt, Baca baca, dan set -A perintah. Terakhir, parameter dapat ditetapkan
nilai menggunakan operator penugasan di dalam ekspresi aritmatika (lihat Hitung ekspresi
di bawah) atau menggunakan ${nama=nilai} bentuk substitusi parameter (lihat di bawah).

Parameter dengan atribut ekspor (diatur menggunakan ekspor or mengeset -x perintah, atau dengan
penetapan parameter diikuti dengan perintah sederhana) diletakkan di lingkungan (lihat
tentang(7)) dari perintah yang dijalankan oleh shell sebagai nama=nilai berpasangan. Urutan parameter
muncul di lingkungan perintah tidak ditentukan. Ketika shell dimulai, itu
mengekstrak parameter dan nilainya dari lingkungannya dan secara otomatis mengatur ekspor
atribut untuk parameter tersebut.

Pengubah dapat diterapkan ke ${nama} bentuk substitusi parameter:

${nama:-kata}
If nama diatur dan bukan NULL, itu diganti; sebaliknya, kata diganti.

${nama:+kata}
If nama diatur dan bukan NULL, kata diganti; jika tidak, tidak ada yang diganti.

${nama:=kata}
If nama diatur dan bukan NULL, itu diganti; jika tidak, itu ditugaskan kata dan
nilai yang dihasilkan dari nama diganti.

${nama:?kata}
If nama diatur dan bukan NULL, itu diganti; sebaliknya, kata dicetak pada
kesalahan standar (didahului oleh nama:) dan terjadi kesalahan (biasanya menyebabkan penghentian
dari skrip shell, fungsi, atau skrip yang bersumber menggunakan '.' bawaan). Jika kata is
dihilangkan, string "parameter null or not set" digunakan sebagai gantinya. Saat ini bug,
if kata adalah variabel yang diperluas ke string nol, pesan kesalahannya juga
dicetak.

Perhatikan bahwa, untuk semua hal di atas, kata sebenarnya dianggap dikutip, dan penguraian khusus
aturan berlaku. Aturan penguraian juga berbeda pada apakah ekspresi dikutip ganda: kata
kemudian menggunakan aturan kutip ganda, kecuali untuk kutip ganda itu sendiri ('"') dan penutup
brace, yang, jika backslash lolos, akan diterapkan penghapusan kutipan.

Dalam pengubah di atas, ':' dapat dihilangkan, dalam hal ini kondisinya hanya bergantung pada
nama sedang diatur (sebagai lawan dari set dan bukan NULL). Jika kata diperlukan, parameter, perintah,
aritmatika, dan substitusi tilde dilakukan di atasnya; jika kata tidak diperlukan, tidak
dievaluasi.

Bentuk substitusi parameter berikut juga dapat digunakan (jika nama adalah array,
elemen dengan kunci "0" akan diganti dalam konteks skalar):

${#nama}
Jumlah parameter posisi jika nama adalah '*', '@', atau tidak ditentukan; sebaliknya
panjang (dalam karakter) dari nilai string parameter nama.

${#nama[*]}
${#nama[@]}
Jumlah elemen dalam array nama.

${%nama}
Lebar (dalam kolom layar) dari nilai string parameter nama, atau -1 jika
${nama} berisi karakter kontrol.

${!nama}
Nama variabel yang dirujuk oleh nama. Ini akan menjadi nama kecuali kapan nama is
referensi nama (variabel terikat), dibuat oleh namaref perintah (yang merupakan alias
untuk mengeset -n).

${!nama[*]}
${!nama[@]}
Nama-nama indeks (kunci) dalam array nama.

${nama#belt hold}
${nama##belt hold}
If belt hold cocok dengan awal nilai parameter nama, teks yang cocok adalah
dihapus dari hasil substitusi. Satu '#' menghasilkan yang terpendek
pertandingan, dan dua di antaranya menghasilkan pertandingan terlama. Tidak dapat diterapkan ke vektor
(${*} atau ${@} atau ${array[*]} atau ${array[@]}).

${nama%belt hold}
${nama%%belt hold}
Seperti substitusi ${..#..}, tetapi menghapus dari akhir nilai. Tidak bisa
diterapkan pada vektor.

${nama/pola/tali}
${nama/#pola/tali}
${nama/%pola/tali}
${nama//pola/tali}
Pertandingan terpanjang belt hold dalam nilai parameter nama diganti dengan tali
(dihapus jika tali kosong; garis miring ('/') dapat dihilangkan dalam kasus itu).
Garis miring yang diikuti oleh '#' atau '%' menyebabkan pola ditambatkan pada
awal atau akhir nilai, masing-masing; kosong tidak terikat belt holds menyebabkan tidak
penggantian; satu garis miring atau penggunaan a belt hold yang cocok dengan yang kosong
string menyebabkan penggantian terjadi hanya sekali; dua garis miring menyebabkan semua
kemunculan kecocokan dalam nilai yang akan diganti. Tidak dapat diterapkan pada vektor.
Implementasi yang tidak efisien, mungkin lambat.

${nama:pos:len}
Pertama len karakter dari nama, mulai dari posisi pos, disubstitusi. Keduanya
pos dan:len adalah opsional. Jika pos negatif, penghitungan dimulai pada akhir
rangkaian; jika dihilangkan, defaultnya adalah 0. Jika len dihilangkan atau lebih besar dari
panjang string yang tersisa, semuanya diganti. Keduanya pos dan len adalah
dievaluasi sebagai ekspresi aritmatika. Saat ini, pos harus dimulai dengan spasi,
kurung buka atau angka yang akan dikenali. Tidak dapat diterapkan pada vektor.

${nama@#}
Hash (menggunakan algoritma BAFH) dari perluasan nama. Ini juga digunakan
secara internal untuk hashtables Shell.

${nama@Q}
Ekspresi kutipan yang aman untuk masuk kembali, yang nilainya adalah nilai dari nama
parameter, diganti.

Perhatikan bahwa belt hold mungkin perlu pola globbing yang diperluas (@(...)), tunggal ('...') atau ganda
("...") kutipan keluar kecuali -o sh diatur.

Parameter khusus berikut secara implisit diatur oleh shell dan tidak dapat diatur secara langsung
menggunakan tugas:

! ID proses dari proses latar belakang terakhir dimulai. Jika tidak ada proses latar belakang memiliki
telah dimulai, parameter tidak disetel.

# Jumlah parameter posisi ($1, $2, dll.).

$ PID shell, atau PID shell asli jika itu adalah subkulit. Mengerjakan JANGAN
gunakan mekanisme ini untuk menghasilkan nama file sementara; Lihat mktemp(1) sebagai gantinya.

- Penggabungan opsi huruf tunggal saat ini (lihat set perintah di bawah
untuk daftar opsi).

? Status keluar dari perintah non-asinkron terakhir yang dijalankan. Jika perintah terakhir
dibunuh oleh sinyal, $? diatur ke 128 ditambah nomor sinyal, tetapi paling banyak 255.

0 Nama shell, ditentukan sebagai berikut: argumen pertama ke mksh Andai saja
dipanggil dengan -c pilihan dan argumen diberikan; jika tidak fillet argumen, jika
itu disediakan; atau nama dasar shell yang dipanggil (yaitu argv[0]). $0
juga diatur ke nama skrip saat ini atau nama fungsi saat ini,
jika didefinisikan dengan fungsi kata kunci (yaitu fungsi gaya shell Korn).

1 .. 9 Sembilan parameter posisi pertama yang dipasok ke shell, function, or
skrip bersumber menggunakan '.' built-in. Parameter posisi lebih lanjut mungkin
diakses menggunakan ${jumlah}.

* Semua parameter posisi (kecuali 0), yaitu $1, $2, $3, ...
Jika digunakan di luar tanda kutip ganda, parameter adalah kata-kata terpisah (yang dikenakan
untuk kata membelah); jika digunakan dalam tanda kutip ganda, parameter dipisahkan oleh
karakter pertama dari parameter IFS (atau string kosong jika IFS adalah NULL).

@ Sama dengan $*, kecuali jika digunakan di dalam tanda kutip ganda, dalam hal ini kata yang terpisah adalah
dihasilkan untuk setiap parameter posisi. Jika tidak ada parameter posisi, tidak ada
kata dihasilkan. $@ dapat digunakan untuk mengakses argumen, kata demi kata, tanpa kehilangan
Argumen NULL atau argumen pemisahan dengan spasi.

Parameter berikut ditetapkan dan/atau digunakan oleh shell:

_ (garis bawah) Ketika perintah eksternal dijalankan oleh shell, parameter ini
diatur di lingkungan proses baru ke jalur yang dieksekusi
memerintah. Dalam penggunaan interaktif, parameter ini juga diatur di shell induk ke
kata terakhir dari perintah sebelumnya.

BASHPID PID dari shell atau subkulit.

CDPATH Seperti PATH, tetapi digunakan untuk menyelesaikan argumen ke cd perintah bawaan. Catatan
bahwa jika CDPATH disetel dan tidak mengandung '.' atau elemen string kosong, the
direktori saat ini tidak dicari. Juga cd perintah bawaan akan ditampilkan
direktori yang dihasilkan ketika kecocokan ditemukan di jalur pencarian apa pun selain dari
jalan kosong.

COLUMNS Atur ke jumlah kolom pada terminal atau jendela. Selalu disetel, default
hingga 80, kecuali nilainya seperti yang dilaporkan oleh sty(1) bukan nol dan cukup waras
(minimal 12x3); serupa untuk LINES. Parameter ini digunakan oleh
mode pengeditan baris interaktif, dan oleh memilih, set -o, dan membunuh -l perintah
untuk memformat kolom informasi. Mengimpor dari lingkungan atau membatalkan pengaturan
parameter ini menghapus pengikatan ke ukuran terminal aktual demi
nilai yang diberikan.

ENV Jika parameter ini ditemukan disetel setelah file profil dijalankan,
nilai yang diperluas digunakan sebagai file startup shell. Ini biasanya berisi fungsi
dan definisi alias.

ERRNO Nilai integer dari shell salah variabel. Ini menunjukkan alasan yang terakhir
panggilan sistem gagal. Belum dilaksanakan.

EXECSHELL Jika disetel, parameter ini dianggap berisi shell yang akan digunakan untuk
menjalankan perintah yang eksekutif(2) gagal untuk mengeksekusi dan yang tidak dimulai dengan a
“#!tempurung" urutan.

FCEDIT Editor yang digunakan oleh fc perintah (lihat di bawah).

FPATH Seperti PATH, tetapi digunakan ketika fungsi yang tidak ditentukan dijalankan untuk mencari file
mendefinisikan fungsi. Itu juga dicari ketika perintah tidak dapat ditemukan menggunakan
JALUR. Lihat Fungsi di bawah ini untuk informasi lebih lanjut.

HISTFILE Nama file yang digunakan untuk menyimpan riwayat perintah. Saat ditetapkan ke atau tidak disetel,
file dibuka, riwayat terpotong kemudian dimuat dari file; setelah
perintah baru (mungkin terdiri dari beberapa baris) ditambahkan setelah mereka
berhasil dikompilasi. Juga, beberapa pemanggilan shell akan dibagikan
history jika parameter HISTFILE mereka semua mengarah ke file yang sama.

Note: Jika HISTFILE tidak disetel atau kosong, tidak ada file riwayat yang digunakan. Ini adalah
berbeda dari AT&T UNIX ksh.

HISTSIZE Jumlah perintah yang biasanya disimpan untuk riwayat. Standarnya adalah 2047. Lakukan
tidak menetapkan nilai ini ke nilai yang sangat tinggi seperti 1000000000 karena mksh bisa
maka tidak mengalokasikan cukup memori untuk sejarah dan tidak akan mulai.

HOME Direktori default untuk cd perintah dan nilai yang diganti dengan an
tidak memenuhi syarat ~ (Lihat Tilde perluasan bawah).

Pemisah bidang internal IFS, digunakan selama substitusi dan oleh Baca baca perintah, untuk
membagi nilai menjadi argumen yang berbeda; biasanya diatur ke spasi, tab, dan baris baru.
Lihat Substitusi di atas untuk detailnya.

Note: Parameter ini tidak diimpor dari lingkungan saat shell
mulai.

KSHEGID Grup id efektif dari shell.

KSHGID ID grup asli dari shell.

KSHUID ID pengguna sebenarnya dari shell.

KSH_VERSION Nama dan versi shell (hanya-baca). Lihat juga perintah versi
in Emacs mengedit mode dan Vi mengedit mode bagian, di bawah.

LINENO Nomor baris dari fungsi atau skrip shell yang sedang digunakan
dieksekusi.

LINES Atur ke jumlah baris pada terminal atau jendela. Selalu disetel, default ke
24. Lihat KOLOM.

WAKTU NYATA
Waktu sejak zaman, seperti yang dikembalikan oleh dapatkan waktu hari ini(2), diformat sebagai desimal
tv_detik diikuti oleh titik ('.') dan tv_usec diisi dengan tepat enam desimal
digit.

OLDPWD Direktori kerja sebelumnya. Hapus jika cd belum berhasil diubah
direktori sejak Shell dimulai, atau jika Shell tidak tahu di mana itu.

OPTARG Saat menggunakan getopt, itu berisi argumen untuk opsi yang diuraikan, jika itu
membutuhkan satu.

OPTIND Indeks argumen berikutnya yang akan diproses saat menggunakan getopt. Menetapkan 1
parameter ini menyebabkan getopt untuk memproses argumen dari awal
lain kali itu dipanggil.

PATH Tanda titik dua (titik koma pada OS/2) memisahkan daftar direktori yang dicari
saat mencari perintah dan file yang bersumber menggunakan '.' perintah (lihat di bawah).
String kosong yang dihasilkan dari titik dua awal atau akhir, atau dua yang berdekatan
titik dua, diperlakukan sebagai '.' (direktori saat ini).

PGRP ID proses dari pemimpin grup proses shell.

PIPESTATUS Array yang berisi kode tingkat kesalahan (status keluar), satu per satu, dari yang terakhir
pipa berjalan di latar depan.

PPID ID proses dari induk shell.

PS1 Prompt utama untuk shell interaktif. Parameter, perintah, dan aritmatika
penggantian dilakukan, dan '!' diganti dengan perintah saat ini
nomor (lihat fc perintah di bawah). Sebuah '!' dapat dimasukkan ke dalam prompt oleh
menempatkan '!!' di PS1.

Prompt default adalah '$ ' untuk pengguna non-root, '# ' untuk root. Jika mksh is
dipanggil oleh root dan PS1 tidak mengandung karakter '#', nilai default
akan digunakan bahkan jika PS1 sudah ada di lingkungan.

Grafik mksh distribusi dilengkapi dengan sampel dot.mkshrc mengandung canggih
contoh, tetapi Anda mungkin menyukai yang berikut (perhatikan bahwa
${HOSTNAME:=$(hostname)} dan klausa pembeda root-vs-user adalah (dalam
contoh ini) dieksekusi pada waktu penugasan PS1, sedangkan $USER dan $PWD adalah
lolos dan dengan demikian akan dievaluasi setiap kali prompt ditampilkan):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(hostname)}:\$PWD $(
jika (( USER_ID )); lalu cetak \$; lain cetak \\; fi) "

Perhatikan bahwa karena editor baris perintah mencoba mencari tahu berapa lama prompt
adalah (agar mereka tahu seberapa jauh jaraknya ke tepi layar), kode pelarian di
prompt cenderung mengacaukan segalanya. Anda dapat memberi tahu shell untuk tidak menghitung dengan pasti
urutan (seperti kode pelarian) dengan mengawali prompt Anda dengan karakter
(seperti Ctrl-A) diikuti dengan carriage return dan kemudian membatasi escape
kode dengan karakter ini. Setiap kemunculan karakter itu di prompt adalah
tidak dicetak. Omong-omong, jangan salahkan saya atas peretasan ini; itu berasal dari
asli ksh88(1), yang mencetak karakter pembatas sehingga Anda kehabisan
beruntung jika Anda tidak memiliki karakter non-cetak.

Karena Garis miring terbalik dan karakter khusus lainnya dapat ditafsirkan oleh shell,
untuk mengatur PS1 lolos dari garis miring terbalik itu sendiri, atau gunakan tanda kutip ganda. NS
terakhir lebih praktis. Ini adalah contoh yang lebih kompleks, menghindari secara langsung
masukkan karakter khusus (misalnya dengan ^V dalam mode pengeditan emacs), yang
menyematkan direktori kerja saat ini, dalam video terbalik (warna akan berfungsi,
juga), dalam string Prompt:

x=$(cetak \\001)
PS1="$x$(cetak \\r)$x$(tput jadi)$x\$PWD$x$(tput se)$x> "

Karena saran yang kuat dari David G. Korn, mksh sekarang juga mendukung
bentuk berikut:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

String prompt sekunder PS2, secara default '> ', digunakan ketika lebih banyak input diperlukan untuk
menyelesaikan sebuah perintah.

PS3 Prompt digunakan oleh memilih pernyataan saat membaca pilihan menu. Standarnya
adalah '#? '.

PS4 Digunakan untuk mengawali perintah yang dicetak selama pelacakan eksekusi (lihat set
-x perintah di bawah). Substitusi parameter, perintah, dan aritmatika adalah
dilakukan sebelum dicetak. Standarnya adalah '+'. Anda mungkin ingin mengaturnya
ke '[$EPOCHREALTIME] ' sebagai gantinya, untuk menyertakan cap waktu.

PWD Direktori kerja saat ini. Mungkin tidak disetel atau NULL jika shell tidak tahu
dimana.

RANDOM Setiap kali RANDOM direferensikan, ia diberi nomor antara 0 dan 32767
dari PRNG Linear Congruential terlebih dahulu.

REPLY Parameter default untuk Baca baca perintah jika tidak ada nama yang diberikan. Juga digunakan dalam
memilih loop untuk menyimpan nilai yang dibaca dari input standar.

SECONDS Jumlah detik sejak shell dimulai atau, jika parameternya adalah
diberi nilai integer, jumlah detik sejak penetapan ditambah
nilai yang ditugaskan.

TMOUT Jika diatur ke bilangan bulat positif dalam shell interaktif, itu menentukan maksimum
jumlah detik shell akan menunggu input setelah mencetak yang utama
cepat (PS1). Jika waktu terlampaui, shell keluar.

TMPDIR Direktori file shell sementara dibuat. Jika parameter ini tidak
set, atau tidak berisi jalur absolut dari direktori yang dapat ditulis, sementara
file dibuat di / Tmp.

USER_ID ID pengguna efektif dari shell.

Tilde perluasan
Ekspansi tilde yang dilakukan secara paralel dengan substitusi parameter, dilakukan pada kata-kata
dimulai dengan tanda '~' tanpa tanda kutip. Karakter yang mengikuti tilde, hingga '/' pertama, jika
any, dianggap sebagai nama login. Jika nama login kosong, '+', atau '-', nilai
parameter HOME, PWD, atau OLDPWD masing-masing diganti. Jika tidak, kata sandi
file dicari untuk nama login, dan ekspresi tilde diganti dengan nama pengguna
direktori rumah. Jika nama login tidak ditemukan dalam file kata sandi atau jika ada kutipan atau
substitusi parameter terjadi pada nama login, tidak ada substitusi yang dilakukan.

Dalam penetapan parameter (seperti yang mendahului perintah sederhana atau yang terjadi di
argumen dari alias, ekspor, global, dibaca saja, dan mengeset), ekspansi tilde dilakukan setelah
tugas apa pun (yaitu setelah tanda sama dengan) atau setelah titik dua tanpa tanda kutip (':'); nama login
juga dibatasi oleh titik dua.

Direktori home dari nama login yang diperluas sebelumnya di-cache dan digunakan kembali. NS alias -d
perintah dapat digunakan untuk membuat daftar, mengubah, dan menambah cache ini (mis alias -d
fac=/usr/local/fasilitas; cd ~faks/bin).

Penjepit perluasan (alternasi)
Ekspresi kurung mengambil bentuk berikut:

awalan{str1,...,strN}akhiran

Ekspresi diperluas menjadi N kata-kata, yang masing-masing merupakan gabungan dari awalan, stri,
dan akhiran (misalnya “a{c,b{X,Y},d}e” diperluas menjadi empat kata: “ace”, “abXe”, “abYe”, dan “ade”).
Seperti disebutkan dalam contoh, ekspresi kurung kurawal dapat bersarang dan kata-kata yang dihasilkan tidak
diurutkan. Ekspresi kurung kurawal harus berisi koma tanpa tanda kutip (',') agar ekspansi terjadi (mis
{} dan {foo} tidak diperluas). Ekspansi brace dilakukan setelah substitusi parameter
dan sebelum pembuatan nama file.

File nama pola
Pola nama file adalah kata yang mengandung satu atau lebih tanda kutip '?', '*', '+', '@', atau '!'
karakter atau urutan “[..]”. Setelah ekspansi brace telah dilakukan, shell menggantikan
pola nama file dengan nama yang diurutkan dari semua file yang cocok dengan pola tersebut (jika tidak ada
file cocok, kata dibiarkan tidak berubah). Elemen pola memiliki arti sebagai berikut:

? Cocok dengan karakter tunggal apa pun.

* Cocok dengan urutan oktet apa pun.

[..] Cocok dengan salah satu oktet di dalam tanda kurung. Rentang oktet dapat ditentukan oleh:
memisahkan dua oktet dengan '-' (misalnya “[a0-9]” cocok dengan huruf 'a' atau angka apa pun).
Untuk mewakili dirinya sendiri, tanda '-' harus dikutip atau oktet pertama atau terakhir
dalam daftar oktet. Demikian pula, tanda ']' harus dikutip atau oktet pertama dalam daftar
jika itu untuk mewakili dirinya sendiri alih-alih akhir daftar. Juga sebuah '!' muncul
di awal daftar memiliki arti khusus (lihat di bawah), jadi untuk mewakili dirinya sendiri itu
harus dikutip atau muncul kemudian dalam daftar.

[!..] Suka [..], kecuali cocok dengan oktet apa pun yang tidak ada di dalam tanda kurung.

*(belt hold|...|belt hold)
Cocok dengan string oktet apa pun yang cocok dengan nol atau lebih kemunculan dari yang ditentukan
pola. Contoh: Pola *(huu|batang) cocok dengan string “”, “foo”, “bar”,
"foobarfoo", dll.

+(belt hold|...|belt hold)
Cocok dengan string oktet apa pun yang cocok dengan satu atau lebih kemunculan dari yang ditentukan
pola. Contoh: Pola + (foo|batang) cocok dengan string "foo", "bar",
"foobar", dll.

?(belt hold|...|belt hold)
Cocok dengan string kosong atau string yang cocok dengan salah satu pola yang ditentukan.
Contoh: Pola ? (foo|batang) hanya cocok dengan string "", "foo", dan "bar".

@(belt hold|...|belt hold)
Mencocokkan string yang cocok dengan salah satu pola yang ditentukan. Contoh: Pola
@(aduh|batang) hanya cocok dengan string "foo" dan "bar".

!(belt hold|...|belt hold)
Cocok dengan string apa pun yang tidak cocok dengan salah satu pola yang ditentukan. Contoh: The
belt hold !(huu|batang) cocok dengan semua string kecuali "foo" dan "bar"; pola !(*)
tidak cocok dengan string; pola !(?)* cocok dengan semua string (pikirkan).

Perhatikan bahwa globbing yang rumit, terutama dengan alternatif, lambat; menggunakan terpisah
perbandingan mungkin (atau mungkin tidak) lebih cepat.

Perhatikan bahwa mksh (Dan pdksh) tidak pernah cocok dengan '.' dan '..', tapi AT&T UNIX ksh, Bourne sh, dan GNU
menampar lakukan.

Perhatikan bahwa tidak ada elemen pola di atas yang cocok dengan titik ('.') di awal a
nama file atau garis miring ('/'), meskipun secara eksplisit digunakan dalam urutan [..]; juga
nama '.' dan '..' tidak pernah cocok, bahkan dengan pola '.*'.

Jika markdir opsi diatur, direktori apa pun yang dihasilkan dari pembuatan nama file adalah
ditandai dengan tanda '/'.

Input / Output redirection
Ketika sebuah perintah dieksekusi, input standarnya, output standar, dan kesalahan standar (file
deskriptor 0, 1, dan 2, masing-masing) biasanya diwarisi dari shell. Tiga
pengecualian untuk ini adalah perintah dalam saluran pipa, yang input standar dan/atau standar
output adalah yang diatur oleh pipa, perintah asinkron dibuat saat kontrol pekerjaan
dinonaktifkan, yang input standar awalnya ditetapkan dari / dev / null, dan perintah untuk
yang mana salah satu dari pengalihan berikut telah ditentukan:

>fillet Output standar diarahkan ke fillet. Jika fillet tidak ada, itu dibuat;
jika memang ada, adalah file biasa, dan noclobber opsi disetel, kesalahan
terjadi; jika tidak, file akan terpotong. Perhatikan bahwa ini berarti perintah cmd
<foo > foo akan buka foo untuk membaca dan kemudian memotongnya ketika dibuka untuk
menulis, sebelum cmd mendapat kesempatan untuk benar-benar membaca foo.

>|fillet Sama dengan >, kecuali file terpotong, meskipun noclobber pilihan diatur.

>>fillet Sama dengan >, kecuali jika fillet ada itu ditambahkan ke bukannya terpotong.
Selain itu, file dibuka dalam mode penambahan, jadi penulisan selalu berakhir
berkas (lihat Buka(2)).

<fillet Masukan standar dialihkan dari fillet, yang dibuka untuk dibaca.

<>fillet Sama dengan <, kecuali file dibuka untuk membaca dan menulis.

<<penanda Setelah membaca baris perintah yang berisi pengalihan semacam ini (disebut a
"di sini dokumen"), shell menyalin baris dari sumber perintah ke a
file sementara sampai garis yang cocok penanda adalah membaca. Ketika perintahnya adalah
dieksekusi, input standar dialihkan dari file sementara. Jika penanda
tidak mengandung karakter yang dikutip, konten file sementara diproses
seolah-olah diapit dalam tanda kutip ganda setiap kali perintah dijalankan, jadi parameter,
perintah, dan substitusi aritmatika dilakukan, bersama dengan garis miring terbalik ('\')
lolos untuk '$', '`', '\', dan '\baris baru', tetapi tidak untuk '"'. Jika banyak di sini
dokumen digunakan pada baris perintah yang sama, mereka disimpan secara berurutan.

Jika tidak penanda diberikan, dokumen di sini berakhir di berikutnya << dan substitusi
akan dilakukan. Jika penanda hanya satu set "''" tunggal atau ganda '""'
kutipan tanpa apa-apa di antaranya, dokumen di sini berakhir pada baris kosong berikutnya
dan substitusi tidak akan dilakukan.

<<-penanda Sama dengan <<, kecuali tab utama dihilangkan dari baris dalam dokumen di sini.

<<kata Sama dengan <<, kecuali itu kata is dokumen di sini. Ini disebut di sini
String.

<&fd Input standar diduplikasi dari deskriptor file fd. fd bisa berupa angka,
menunjukkan nomor deskriptor file yang ada; huruf 'p', menunjukkan
deskriptor file yang terkait dengan output dari proses bersama saat ini; atau
karakter '-', menunjukkan input standar akan ditutup. Perhatikan bahwa fd is
terbatas pada satu digit di sebagian besar implementasi Shell.

>&fd Sama dengan <&, kecuali operasi dilakukan pada output standar.

&>fillet Sama dengan >fillet 2> & 1. Ini adalah GNU (warisan) yang tidak digunakan lagi menampar ekstensi didukung
by mksh yang juga mendukung nomor fd eksplisit sebelumnya, misalnya,
3&>fillet sama dengan 3>fillet 2> & 3 in mksh tetapi kesalahan sintaks di GNU menampar.

&>|fillet, &>>fillet, &>&fd
Sama dengan >|fillet, >>fillet, atau >&fd, Diikuti oleh 2> & 1, seperti di atas. Ini adalah mksh
ekstensi.

Dalam salah satu pengalihan di atas, deskriptor file yang dialihkan (yaitu standar
input atau output standar) dapat diberikan secara eksplisit dengan mendahului pengalihan dengan angka
(portable, hanya satu digit). Substitusi parameter, perintah, dan aritmatika, tilde
substitusi, dan (jika shell interaktif) pembuatan nama file semua dilakukan pada
itu fillet, penanda, dan fd argumen pengalihan. Namun, perhatikan bahwa hasil dari
pembuatan nama file hanya digunakan jika satu file cocok; jika beberapa file cocok, the
Word dengan karakter generasi nama file yang diperluas digunakan. Perhatikan bahwa dalam batasan
shell, pengalihan yang dapat membuat file tidak dapat digunakan.

Untuk perintah sederhana, pengalihan dapat muncul di mana saja dalam perintah; untuk perintah majemuk
(if pernyataan, dll.), setiap pengalihan harus muncul di akhir. Pengalihan sedang diproses
setelah saluran pipa dibuat dan dalam urutan yang diberikan, jadi berikut ini akan mencetak:
kesalahan dengan nomor baris di depannya:

$ cat /foo/bar 2>&1 >/dev/null | pr -n -t

Deskriptor file yang dibuat oleh pengalihan I/O bersifat pribadi untuk shell.

Hitung ekspresi
Ekspresi aritmatika bilangan bulat dapat digunakan dengan membiarkan perintah, di dalam ekspresi $((..)),
referensi array di dalam (mis nama[cepat]), sebagai argumen numerik untuk uji perintah, dan sebagai
nilai penugasan ke parameter integer. peringatan: Ini juga mempengaruhi implisit
konversi ke bilangan bulat, misalnya seperti yang dilakukan oleh membiarkan perintah. Tak pernah gunakan pengguna yang tidak dicentang
masukan, misalnya dari lingkungan, dalam aritmatika!

Ekspresi dihitung menggunakan aritmatika bertanda dan mksh_ari_t ketik (yang ditandatangani 32-bit
integer), kecuali jika dimulai dengan karakter '#' tunggal, dalam hal ini mereka menggunakan mksh_uari_t (a
bilangan bulat tidak bertanda 32-bit).

Ekspresi mungkin berisi pengidentifikasi parameter alfanumerik, referensi array, dan bilangan bulat
konstanta dan dapat dikombinasikan dengan operator C berikut (terdaftar dan dikelompokkan dalam
meningkatkan urutan prioritas):

Operator unary:

+ - ! ~++--

Operator biner:

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

Operator terner:

?: (diutamakan segera lebih tinggi dari tugas)

Operator pengelompokan:

()

Konstanta dan ekspresi bilangan bulat dihitung menggunakan lebar 32-bit, bertanda or
unsigned, ketik dengan sampul diam pada integer overflow. Konstanta bilangan bulat mungkin
ditentukan dengan basis arbitrer menggunakan notasi mendasarkan#jumlah, Di mana mendasarkan adalah desimal
bilangan bulat yang menentukan basis, dan jumlah adalah angka dalam basis yang ditentukan. Selain itu,
bilangan bulat basis-16 dapat ditentukan dengan mengawalinya dengan '0x' (tidak peka huruf besar/kecil) di semua
bentuk ekspresi aritmatika, kecuali sebagai argumen numerik untuk uji perintah bawaan.
Awalan angka dengan satu digit nol ('0') tidak menyebabkan interpretasi sebagai oktal, karena
itu tidak aman untuk dilakukan.

Sebagai yang spesial mksh ekstensi, angka ke dasar satu diperlakukan sebagai (8-bit
transparan) ASCII atau titik kode Unicode, tergantung pada shell mode utf8 bendera (saat ini
pengaturan). UNIX AT&T ksh93 sintaks "'x'" alih-alih "1#x" juga didukung. Catatan
bahwa NUL byte (nilai integral nol) tidak dapat digunakan. Parameter yang tidak disetel atau kosong
mengevaluasi ke 0 dalam konteks integer. Dalam mode Unicode, oktet mentah dipetakan ke dalam rentang
EF80..EFFF seperti pada OPTU-8, yang ada di PUA dan telah ditetapkan oleh CSUR untuk penggunaan ini. Jika
lebih dari satu oktet dalam mode ASCII, atau urutan lebih dari satu oktet tidak membentuk valid
dan urutan CESU-8 minimal dilewatkan, perilaku tidak terdefinisi (biasanya, shell dibatalkan
dengan kesalahan parse, tetapi jarang berhasil, misalnya pada urutan C2 20). Itu sebabnya kamu
harus selalu menggunakan mode ASCII kecuali Anda tahu bahwa inputnya adalah UTF-8 yang terbentuk dengan baik di
kisaran 0000..FFFD jika Anda menggunakan fitur ini, sebagai lawan dari Baca baca -a.

Operator dievaluasi sebagai berikut:

unary +
Hasil adalah argumen (termasuk untuk kelengkapan).

unary -
Penyangkalan.

! TIDAK logis; hasilnya adalah 1 jika argumennya nol, 0 jika tidak.

~ Aritmatika (sedikit-bijaksana) TIDAK.

++ Kenaikan; harus diterapkan ke parameter (bukan ekspresi literal atau lainnya).
Parameter bertambah 1. Saat digunakan sebagai operator awalan, hasilnya
adalah nilai parameter yang bertambah; ketika digunakan sebagai operator postfix,
hasilnya adalah nilai asli dari parameter.

-- Mirip dengan ++, kecuali parameternya dikurangi 1.

, Memisahkan dua ekspresi aritmatika; sisi kiri dievaluasi terlebih dahulu,
kemudian kanan. Hasilnya adalah nilai dari ekspresi di sebelah kanan
side.

= Tugas; variabel di sebelah kiri diatur ke nilai di sebelah kanan.

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
Operator penugasan.adalah><op>=cepat> sama denganadalah>=adalah><op><cepat>,
dengan prioritas operator apa pun dicepat> dipertahankan. Misalnya, “var1 *= 5 +
3” sama dengan menentukan “var1 = var1 * (5 + 3)”.

|| logis ATAU; hasilnya adalah 1 jika salah satu argumen bukan nol, 0 jika tidak. NS
argumen kanan dievaluasi hanya jika argumen kiri adalah nol.

&& Logis DAN; hasilnya adalah 1 jika kedua argumen bukan nol, 0 jika tidak. NS
argumen kanan dievaluasi hanya jika argumen kiri bukan nol.

| Aritmatika (bit-bijaksana) ATAU.

^ Aritmatika (bit-bijaksana) XOR (eksklusif-ATAU).

& Aritmatika (bijaksana sedikit) DAN.

== Sama; hasilnya adalah 1 jika kedua argumen sama, 0 jika tidak.

!= Tidak sama; hasilnya adalah 0 jika kedua argumen sama, 1 jika tidak.

< Kurang dari; hasilnya adalah 1 jika argumen kiri kurang dari kanan, 0 jika
tidak.

<= > >=
Kurang dari atau sama, lebih besar dari, lebih besar dari atau sama. Lihat <.

<<<>>>
Putar ke kiri (kanan); hasilnya mirip dengan shift (lihat <<) kecuali bahwa
bit yang digeser keluar di satu ujung digeser di ujung yang lain, bukan nol
atau tanda bit.

<< >> Geser ke kiri (kanan); hasilnya adalah argumen kiri dengan bitnya digeser ke kiri
(kanan) dengan jumlah yang diberikan dalam argumen yang benar.

+ - * /
Penjumlahan, pengurangan, perkalian, dan pembagian.

% Sisa; hasilnya adalah sisa simetris dari pembagian kiri
argumen dengan hak. Untuk mendapatkan modulus matematika dari “a mod b”, gunakan
rumus “(a % b + b) % b”.

<argumen1>?argumen2>:argumen3>
Jikaargumen1> bukan nol, hasilnya adalahargumen2>; jika tidak hasilnya adalahargumen3>.
Argumen non-hasil tidak dievaluasi.

Proses bersama
Proses bersama (yang merupakan jalur pipa yang dibuat dengan operator '|&') adalah proses asinkron
bahwa Shell dapat menulis keduanya (menggunakan mencetak -p) dan membaca dari (menggunakan Baca baca -p). masukan
dan output dari proses bersama juga dapat dimanipulasi menggunakan >&p dan </p pengalihan,
masing-masing. Setelah co-proses telah dimulai, yang lain tidak dapat dimulai sampai co-proses
proses keluar, atau sampai input co-proses dialihkan menggunakan eksekutif n>&p
pengalihan. Jika input co-proses dialihkan dengan cara ini, co-proses berikutnya menjadi
mulai akan berbagi output dengan co-proses pertama, kecuali output dari awal
co-process telah dialihkan menggunakan eksekutif n</p pengalihan.

Beberapa catatan tentang co-proses:

· Satu-satunya cara untuk menutup input co-process (sehingga co-process membaca end-of-file) adalah
untuk mengarahkan input ke deskriptor file bernomor dan kemudian tutup deskriptor file itu:
eksekutif 3>&p; eksekutif 3>&-

· Agar proses bersama dapat berbagi keluaran yang sama, shell harus menyimpan penulisan
bagian dari pipa keluaran terbuka. Ini berarti akhir file tidak akan terdeteksi sampai
semua co-proses yang berbagi output co-proses telah keluar (ketika mereka semua keluar,
shell menutup salinan pipanya). Ini dapat dihindari dengan mengarahkan output ke a
deskriptor file bernomor (karena ini juga menyebabkan Shell menutup salinannya). Perhatikan bahwa
perilaku ini sedikit berbeda dari cangkang Korn asli yang menutup salinannya
dari bagian tulis dari output co-proses ketika co-proses yang paling baru dimulai
(bukan ketika semua berbagi proses bersama) keluar.

· mencetak -p akan mengabaikan sinyal SIGPIPE selama penulisan jika sinyal tidak terjebak atau
diabaikan; hal yang sama berlaku jika input co-proses telah diduplikasi ke file lain
deskriptor dan mencetak -un digunakan.

Fungsi
Fungsi didefinisikan menggunakan salah satu kulit Korn fungsi nama-fungsi sintaks atau
Cangkang Bourne/POSIX nama-fungsi() sintaks (lihat di bawah untuk perbedaan antara keduanya
formulir). Fungsinya seperti .‐scripts (yaitu skrip yang bersumber menggunakan '.' built-in) di dalamnya
mereka dieksekusi di lingkungan saat ini. Namun, tidak seperti .-script, argumen shell
(yaitu parameter posisi $1, $2, dll.) tidak pernah terlihat di dalamnya. Ketika cangkangnya
menentukan lokasi perintah, fungsi dicari setelah built-in khusus
perintah, sebelum builtin dan PATH dicari.

Fungsi yang ada dapat dihapus menggunakan tidak disetel -f nama-fungsi. Daftar fungsi dapat
diperoleh menggunakan mengeset +f dan definisi fungsi dapat didaftar menggunakan mengeset -f.
Grafik pengisian otomatis perintah (yang merupakan alias untuk mengeset -fu) dapat digunakan untuk membuat undefined
fungsi: ketika fungsi yang tidak ditentukan dijalankan, shell mencari jalur yang ditentukan dalam
parameter FPATH untuk file dengan nama yang sama dengan fungsi yang, jika ditemukan, dibaca
dan dieksekusi. Jika setelah menjalankan file, fungsi bernama ditemukan didefinisikan,
fungsi dijalankan; jika tidak, pencarian perintah normal dilanjutkan (yaitu shell
mencari tabel perintah bawaan reguler dan PATH). Perhatikan bahwa jika perintah tidak ditemukan
menggunakan PATH, upaya dilakukan untuk memuat fungsi secara otomatis menggunakan FPATH (ini tidak terdokumentasi
fitur cangkang Korn asli).

Fungsi dapat memiliki dua atribut, "jejak" dan "ekspor", yang dapat diatur dengan mengeset -kaki
dan mengeset -fx, masing-masing. Ketika fungsi yang dilacak dijalankan, shell's jejak x
opsi diaktifkan untuk durasi fungsi. Atribut fungsi "ekspor" adalah
saat ini tidak digunakan. Di shell Korn asli, fungsi yang diekspor terlihat oleh shell
skrip yang dieksekusi.

Karena fungsi dijalankan di lingkungan shell saat ini, penetapan parameter dibuat
fungsi di dalam terlihat setelah fungsi selesai. Jika ini bukan yang diinginkan
efek, itu mengeset perintah dapat digunakan di dalam fungsi untuk membuat parameter lokal. Catatan
bahwa AT&T UNIX ksh93 menggunakan pelingkupan statis (satu cakupan global, satu cakupan lokal per fungsi)
dan mengizinkan variabel lokal hanya pada fungsi gaya Korn, sedangkan mksh menggunakan pelingkupan dinamis
(cakupan bersarang dari berbagai lokalitas). Perhatikan bahwa parameter khusus (mis $$, $!) tidak bisa
dilingkupi dengan cara ini.

Status keluar dari suatu fungsi adalah perintah terakhir yang dieksekusi dalam fungsi tersebut. A
fungsi dapat dibuat untuk segera selesai menggunakan kembali memerintah; ini juga dapat digunakan
untuk secara eksplisit menentukan status keluar.

Fungsi yang didefinisikan dengan fungsi kata yang dilindungi undang-undang diperlakukan secara berbeda sebagai berikut:
cara dari fungsi yang didefinisikan dengan () notasi:

· Parameter $0 diatur ke nama fungsi (fungsi gaya Bourne meninggalkan $0
tidak tersentuh).

· Penetapan parameter sebelum panggilan fungsi tidak disimpan di lingkungan shell
(menjalankan fungsi gaya Bourne akan menyimpan tugas).

· OPTIND disimpan/direset dan dipulihkan saat masuk dan keluar dari fungsi jadi getopt dapat
digunakan dengan benar baik di dalam maupun di luar fungsi (fungsi gaya Bourne meninggalkan OPTIND
tidak tersentuh, jadi gunakan getopt di dalam suatu fungsi mengganggu penggunaan getopt di luar
fungsi).

· Opsi cangkang (set -o) memiliki ruang lingkup lokal, yaitu perubahan di dalam suatu fungsi diatur ulang pada
pintu keluarnya.

Di masa depan, perbedaan berikut juga dapat ditambahkan:

· Lingkungan perangkap/sinyal terpisah akan digunakan selama eksekusi fungsi. Ini
berarti jebakan yang dipasang di dalam suatu fungsi tidak akan memengaruhi jebakan dan sinyal shell
yang tidak diabaikan di shell (tetapi mungkin terjebak) akan memiliki efek default di
sebuah fungsi.

· Perangkap EXIT, jika diatur dalam suatu fungsi, akan dieksekusi setelah fungsi kembali.

perintah eksekusi
Setelah evaluasi argumen baris perintah, pengalihan, dan penetapan parameter,
jenis perintah ditentukan: perintah bawaan khusus, fungsi, bawaan normal, atau
nama file yang akan dieksekusi ditemukan menggunakan parameter PATH. Pengecekan dilakukan di
di atas pesanan. Perintah bawaan khusus berbeda dari perintah lain karena PATH
parameter tidak digunakan untuk menemukannya, kesalahan selama eksekusi dapat menyebabkan non-
shell interaktif untuk keluar, dan penetapan parameter yang ditentukan sebelum perintah
disimpan setelah perintah selesai. Perintah bawaan biasa berbeda hanya dalam hal itu
parameter PATH tidak digunakan untuk menemukannya.

Asli ksh dan POSIX agak berbeda di mana perintah dianggap khusus atau
reguler.

Utilitas bawaan khusus POSIX:

., :, istirahat, terus, evaluasi, eksekutif, keluar, ekspor, dibaca saja, kembali, set, bergeser, kali, perangkap,
tidak disetel

Tambahan mksh perintah menjaga tugas:

builtin, global, sumber, mengeset, menunggu

Builtin yang tidak istimewa:

[, alias, bg, mengikat, kucing, cd, Command, gema, palsu, fc, fg, getopt, pekerjaan, membunuh, membiarkan, mencetak,
pwd, Baca baca, jalan nyata, mengubah nama, tidur, menangguhkan, uji, benar, batas, umask, Unalias, dari mana

Setelah jenis perintah ditentukan, penetapan parameter baris perintah apa pun adalah
dilakukan dan diekspor selama durasi perintah.

Berikut ini menjelaskan perintah built-in khusus dan reguler dan built-in-like reserved
kata-kata:

. fillet [arg ...]
Ini disebut perintah "titik". Jalankan perintah di fillet pada saat ini
lingkungan. File dicari di direktori PATH. Jika argumen adalah
diberikan, parameter posisi dapat digunakan untuk mengaksesnya sementara fillet menjadi
dieksekusi. Jika tidak ada argumen yang diberikan, parameter posisi adalah parameter dari
lingkungan tempat perintah digunakan.

: [...]
Perintah nol. Status keluar diatur ke nol.

[ ekspresi ]
Lihat uji.

alias [-d | -t [-r] | +-x] [-p] [+] [nama [=nilai] ...]
Tanpa argumen, alias daftar semua alias. Untuk nama apa pun tanpa nilai,
alias yang ada terdaftar. Nama apa pun dengan nilai mendefinisikan alias (lihat alias
atas).

Saat mendaftar alias, salah satu dari dua format digunakan. Biasanya, alias terdaftar sebagai
nama=nilai, Di mana nilai dikutip. Jika opsi didahului dengan '+', atau satu-satunya '+'
diberikan pada baris perintah, hanya nama dicetak.

Grafik -d opsi menyebabkan alias direktori yang digunakan dalam ekspansi tilde terdaftar
atau atur (lihat Tilde perluasan atas).

Jika -p option digunakan, setiap alias diawali dengan string “alias”.

Grafik -t opsi menunjukkan bahwa alias yang dilacak harus dicantumkan/ditetapkan (nilai yang ditentukan
pada baris perintah diabaikan untuk alias yang dilacak). Itu -r pilihan menunjukkan bahwa
semua alias yang dilacak harus diatur ulang.

Grafik -x set pilihan (+x membersihkan) atribut ekspor dari sebuah alias, atau, jika tidak ada nama adalah
diberikan, daftar alias dengan atribut ekspor (mengekspor alias tidak memiliki
efek).

bg [pekerjaan ...]
Lanjutkan pekerjaan yang dihentikan yang ditentukan di latar belakang. Jika tidak ada pekerjaan yang ditentukan, %+
diasumsikan. Melihat Pekerjaan kontrol di bawah ini untuk informasi lebih lanjut.

mengikat [-l]
Binding saat ini terdaftar. jika -l bendera diberikan, mengikat sebagai gantinya mencantumkan
nama-nama fungsi yang kuncinya dapat diikat. Melihat Emacs mengedit mode keahlian yang lebih
informasi.

mengikat [-m] tali=[pengganti] ...
mengikat tali=[perintah-edit] ...
Perintah pengeditan yang ditentukan terikat pada yang diberikan tali, yang harus terdiri dari
karakter kontrol opsional didahului oleh salah satu dari dua karakter awalan dan
opsional digantikan oleh karakter tilde. Masukan masa depan dari tali akan menyebabkan
perintah pengeditan untuk segera dipanggil. jika -m bendera diberikan, yang ditentukan
memasukkan tali setelah itu akan segera diganti dengan yang diberikan pengganti tali
yang mungkin berisi perintah pengeditan tetapi tidak makro lainnya. Jika postfix tilde adalah
diberikan, tilde yang mengikuti satu atau dua prefiks dan karakter kontrol diabaikan,
karakter tambahan lainnya akan diproses setelahnya.

Karakter kontrol dapat ditulis menggunakan notasi tanda sisipan yaitu ^X mewakili Ctrl-X.
Perhatikan bahwa meskipun hanya dua karakter awalan (biasanya ESC dan ^X) yang didukung,
beberapa urutan multi-karakter dapat didukung.

Binding default berikut menunjukkan bagaimana tombol panah, home, end dan delete key
pada terminal layar BSD wsvt25, xterm-xfree86 atau GNU terikat (tentu saja beberapa
urutan pelarian tidak akan berhasil dengan baik):

ikat '^X'=awalan-2
ikat '^[['=awalan-2
ikat '^XA'=up-history
ikat '^XB'=down-history
ikat '^XC'=forward-char
ikat '^XD'=backward-char
ikat '^X1~'=awal-baris
ikat '^X7~'=awal-baris
ikat '^XH'=awal-baris
ikat '^X4~'=end-of-line
ikat '^X8~'=end-of-line
ikat '^XF'=end-of-line
ikat '^X3~'=delete-char-forward

istirahat [tingkat]
Keluar dari tingkatth paling dalam untuk, memilih, sampai, atau sementara Loop. tingkat default ke 1.

builtin [--] Command [arg ...]
Jalankan perintah bawaan Command.

kucing [-u] [fillet ...]
Baca file secara berurutan, dalam urutan baris perintah, dan tulis ke output standar.
Jika fillet adalah tanda hubung tunggal ('-') atau tidak ada, dibaca dari input standar. Untuk langsung
panggilan bawaan, POSIX -u opsi didukung sebagai no-op. Untuk panggilan dari shell, jika
opsi apa pun diberikan, eksternal kucing(1) utilitas lebih disukai daripada builtin.

cd [-L] [dir]
cd -P [-e] [dir]
chdir [-eLP] [dir]
Setel direktori kerja ke dir. Jika parameter CDPATH disetel, ia mencantumkan:
jalur pencarian untuk direktori yang berisi dir. Jalur NULL berarti arus
direktori. Jika dir ditemukan di komponen mana pun dari jalur pencarian CDPATH selain dari
NULL path, nama direktori kerja baru akan ditulis ke output standar.
If dir tidak ada, direktori home HOME digunakan. Jika dir adalah '-', sebelumnya
direktori kerja digunakan (lihat parameter OLDPWD).

Jika -L opsi (jalur logis) digunakan atau jika fisik opsi tidak disetel (lihat
set perintah di bawah), referensi ke '..' di dir relatif terhadap jalan yang digunakan untuk sampai ke
direktori. jika -P opsi (jalur fisik) digunakan atau jika fisik pilihannya adalah
set, '..' relatif terhadap pohon direktori sistem file. PWD dan OLDPWD
parameter diperbarui untuk mencerminkan direktori kerja saat ini dan lama,
masing-masing. jika -e opsi diatur untuk traversal sistem file fisik, dan PWD
tidak dapat disetel, kode keluarnya adalah 1; lebih besar dari 1 jika terjadi kesalahan, 0
jika tidak.

cd [-eLP] tua yang baru
chdir [-eLP] tua yang baru
Tali yang baru diganti untuk tua di direktori saat ini, dan shell
mencoba untuk mengubah ke direktori baru.

Command [-pVv] cmd [arg ...]
Jika keduanya tidak -v maupun -V pilihan diberikan, cmd dieksekusi persis seperti jika Command memiliki
tidak ditentukan, dengan dua pengecualian: pertama, cmd tidak bisa menjadi fungsi shell; dan
kedua, perintah built-in khusus kehilangan kekhususannya (yaitu pengalihan dan
kesalahan utilitas tidak menyebabkan shell keluar, dan penetapan perintah tidak
permanen).

Jika -p opsi diberikan, jalur pencarian default digunakan sebagai ganti nilai saat ini
dari PATH, nilai aktual yang bergantung pada sistem.

Jika -v opsi diberikan, alih-alih mengeksekusi cmd, informasi tentang apa yang akan terjadi
dieksekusi diberikan (dan hal yang sama dilakukan untuk arg ...). Untuk bawaan, fungsi dan
kata kunci, nama mereka hanya dicetak; untuk alias, perintah yang mendefinisikannya adalah
dicetak; untuk utilitas yang ditemukan dengan mencari parameter PATH, path lengkap dari
perintah dicetak. Jika tidak ada perintah yang ditemukan (yaitu pencarian jalur gagal), tidak ada yang
dicetak dan Command keluar dengan status bukan nol. Itu -V pilihannya seperti -v
pilihan, kecuali itu lebih bertele-tele.

terus [tingkat]
Melompat ke awal tingkatth paling dalam untuk, memilih, sampai, atau sementara Loop.
tingkat default ke 1.

gema [-A] [arg ...]
Peringatan: utilitas ini tidak portabel; gunakan cangkang Korn bawaan mencetak sebagai gantinya.

Mencetak argumennya (dipisahkan dengan spasi) diikuti oleh baris baru, ke standar
keluaran. Baris baru ditekan jika ada argumen yang mengandung garis miring terbalik
urutan '\c'. Lihat mencetak perintah di bawah ini untuk daftar urutan garis miring terbalik lainnya
yang diakui.

Opsi disediakan untuk kompatibilitas dengan skrip shell BSD. Itu -n Option
menekan baris baru yang tertinggal, -e memungkinkan interpretasi garis miring terbalik (tanpa operasi, karena
ini biasanya dilakukan), dan -E menekan interpretasi garis miring terbalik.

Jika POSIX or sh opsi diatur atau ini adalah panggilan bawaan langsung, hanya yang pertama
argumen diperlakukan sebagai opsi, dan hanya jika itu tepat "-n”. Garis miring terbalik
interpretasi dinonaktifkan.

evaluasi Command ...
Argumen digabungkan (dengan spasi di antaranya) untuk membentuk string tunggal
yang kemudian diurai dan dijalankan oleh shell di lingkungan saat ini.

eksekutif [-a argv0] [-c] [Command [arg ...]]
Perintah dijalankan tanpa forking, menggantikan proses shell. Ini
saat ini mutlak, yaitu eksekutif tidak pernah kembali, bahkan jika Command tidak ditemukan. Itu
-a opsi mengizinkan pengaturan nilai argv[0] yang berbeda, dan -c membersihkan lingkungan
sebelum menjalankan proses anak, kecuali untuk variabel _ dan penugasan langsung.

Jika tidak ada perintah yang diberikan kecuali untuk pengalihan I/O, pengalihan I/O bersifat permanen
dan cangkang tidak diganti. Setiap deskriptor file yang lebih besar dari 2 yang dibuka
or dup(2) dengan cara ini tidak tersedia untuk perintah lain yang dieksekusi (mis
perintah yang tidak ada di dalam shell). Perhatikan bahwa cangkang Bourne berbeda
di sini; itu meneruskan deskriptor file ini.

keluar [status]
Shell keluar dengan status keluar yang ditentukan. Jika status tidak ditentukan, pintu keluar
status adalah nilai saat ini dari $? parameter.

ekspor [-p] [parameter[=nilai]]
Menyetel atribut ekspor dari parameter bernama. Parameter yang diekspor diteruskan
lingkungan untuk menjalankan perintah. Jika nilai ditentukan, parameter bernama
juga ditugaskan.

Jika tidak ada parameter yang ditentukan, semua parameter dengan set atribut ekspor adalah
dicetak satu per baris; baik nama mereka, atau, jika '-' tanpa huruf pilihan adalah
ditentukan, nama=pasangan nilai, atau, dengan -p, ekspor perintah yang cocok untuk masuk kembali.

palsu Perintah yang keluar dengan status bukan nol.

fc [-e editor | -l [-n]] [-r] [pertama [terakhir]]
pertama dan terakhir pilih perintah dari sejarah. Perintah dapat dipilih berdasarkan sejarah
number (angka negatif mundur dari baris saat ini, terbaru,) atau a
string yang menentukan perintah terbaru yang dimulai dengan string itu. Itu -l Option
daftar perintah pada output standar, dan -n menghambat nomor perintah default.
Grafik -r opsi membalikkan urutan daftar. Tanpa -l, perintah yang dipilih adalah
diedit oleh editor yang ditentukan dengan -e pilihan, atau jika tidak ada -e ditentukan,
editor yang ditentukan oleh parameter FCEDIT (jika parameter ini tidak disetel, /bin/ed is
digunakan), dan kemudian dieksekusi oleh shell.

fc -e - | -s [-g] [tua=yang baru] [awalan]
Jalankan kembali perintah yang dipilih (perintah sebelumnya secara default) setelah melakukan
substitusi opsional dari tua dengan yang baru. Jika -g ditentukan, semua kemunculan
tua diganti dengan yang baru. Arti dari -e - dan -s identik: jalankan kembali
perintah yang dipilih tanpa menggunakan editor. Perintah ini biasanya diakses dengan
yang telah ditentukan: alias r='fc -e -'

fg [pekerjaan ...]
Lanjutkan pekerjaan yang ditentukan di latar depan. Jika tidak ada pekerjaan yang ditentukan, %+ is
diasumsikan. Melihat Pekerjaan kontrol di bawah ini untuk informasi lebih lanjut.

getopt string pilihan nama [arg ...]
Digunakan oleh prosedur shell untuk mengurai argumen yang ditentukan (atau parameter posisi,
jika tidak ada argumen yang diberikan) dan untuk memeriksa opsi hukum. string pilihan berisi
huruf pilihan yang getopt adalah untuk mengenali. Jika sebuah huruf diikuti oleh titik dua, maka
pilihan diharapkan memiliki argumen. Opsi yang tidak mengambil argumen mungkin
dikelompokkan dalam satu argumen. Jika suatu opsi membutuhkan argumen dan opsi
karakter bukanlah karakter terakhir dari argumen yang ditemukan, sisa dari
argumen dianggap sebagai argumen opsi; jika tidak, argumen berikutnya adalah
argumen opsi.

Tiap kali getopt dipanggil, itu menempatkan opsi berikutnya di parameter shell nama
dan indeks argumen yang akan diproses oleh panggilan berikutnya ke getopt dalam
parameter cangkang OPTIND. Jika opsi diperkenalkan dengan '+', opsi ditempatkan
in nama diawali dengan '+'. Ketika sebuah opsi membutuhkan argumen, getopt tempat
dalam parameter shell OPTARG.

Ketika opsi ilegal atau argumen opsi yang hilang ditemukan, tanda tanya
atau titik dua ditempatkan di nama (menunjukkan opsi ilegal atau argumen yang hilang,
masing-masing) dan OPTARG diatur ke karakter opsi yang menyebabkan masalah.
Selanjutnya, jika string pilihan tidak dimulai dengan titik dua, tanda tanya ditempatkan di
nama, OPTARG tidak disetel, dan pesan kesalahan dicetak ke kesalahan standar.

Ketika akhir opsi ditemukan, getopt keluar dengan jalan keluar bukan nol
status. Opsi berakhir pada argumen pertama (argumen non-opsi) yang tidak dimulai
dengan '-', atau ketika argumen '--' ditemukan.

Penguraian opsi dapat diatur ulang dengan menyetel OPTIND ke 1 (ini dilakukan secara otomatis
setiap kali shell atau prosedur shell dipanggil).

Peringatan: Mengubah nilai parameter shell OPTIND ke nilai selain 1, atau
menguraikan set argumen yang berbeda tanpa mengatur ulang OPTIND, dapat menyebabkan hal yang tidak terduga
hasil.

global ...
Lihat mengeset.

hash [-r] [nama ...]
Tanpa argumen, nama jalur perintah hash yang dapat dieksekusi akan dicantumkan. Itu -r Option
menyebabkan semua perintah hash dihapus dari tabel hash. Setiap nama sedang dicari
seolah-olah itu adalah nama perintah dan ditambahkan ke tabel hash jika itu dapat dieksekusi
perintah.

pekerjaan [-lnp] [pekerjaan ...]
Menampilkan informasi tentang pekerjaan yang ditentukan; jika tidak ada pekerjaan yang ditentukan, semua pekerjaan
ditampilkan. Itu -n opsi menyebabkan informasi ditampilkan hanya untuk pekerjaan yang
telah berubah status sejak pemberitahuan terakhir. jika -l opsi yang digunakan,
ID proses dari setiap proses dalam pekerjaan juga terdaftar. Itu -p pilihan hanya menyebabkan
kelompok proses dari setiap pekerjaan yang akan dicetak. Melihat Pekerjaan kontrol di bawah ini untuk format pekerjaan
dan pekerjaan yang ditampilkan.

membunuh [-s tanda tangan | -tanda tangan | -tanda tangan] { pekerjaan | pid | pgrp } ...
Kirim sinyal yang ditentukan ke pekerjaan yang ditentukan, ID proses, atau grup proses. Jika
tidak ada sinyal yang ditentukan, sinyal TERM dikirim. Jika pekerjaan ditentukan, sinyal
dikirim ke grup proses pekerjaan. Melihat Pekerjaan kontrol di bawah ini untuk format pekerjaan.

membunuh -l [status keluar ...]
Cetak nama sinyal yang sesuai dengan status keluar. Jika tidak ada argumen yang ditentukan, a
daftar semua sinyal, nomornya, dan deskripsi singkatnya dicetak.

membiarkan [ekspresi ...]
Setiap ekspresi dievaluasi (lihat Hitung ekspresi di atas). Jika semua ekspresi
berhasil dievaluasi, status keluarnya adalah 0 (1) jika ekspresi terakhir dievaluasi
menjadi bukan nol (nol). Jika terjadi kesalahan selama penguraian atau evaluasi suatu
ekspresi, status keluar lebih besar dari 1. Karena ekspresi mungkin perlu
dikutip, (( cepat )) adalah gula sintaksis untuk { let 'cepat'; }.

membiarkan] Alias ​​​​yang digunakan secara internal untuk membiarkan.

mknod [-m mode] nama b|c utama minor
mknod [-m mode] nama p
Buat file khusus perangkat. Jenis file mungkin: b (perangkat tipe blok), c
(perangkat tipe karakter), atau p (bernama pipa, FIFO). File yang dibuat dapat dimodifikasi
menurut nya mode (Melalui -m pilihan), utama (nomor perangkat utama), dan minor
(nomor perangkat kecil). Ini biasanya bukan bagian dari mksh; namun, distributor dapat
telah menambahkan ini sebagai bawaan sebagai peretasan kecepatan.

mencetak [-nprsu[n] | -R [en]] [argumen ...]
mencetak mencetak argumennya pada output standar, dipisahkan oleh spasi dan diakhiri
dengan baris baru. Itu -n opsi menekan baris baru. Secara default, C tertentu lolos
diterjemahkan. Ini termasuk yang disebutkan dalam Backslash perluasan di atas juga
sebagai '\c', yang setara dengan menggunakan -n pilihan. Ekspansi garis miring terbalik mungkin
dihambat dengan -r pilihan. Itu -s opsi mencetak ke file riwayat alih-alih
keluaran standar; itu -u opsi dicetak ke deskriptor file n (n default ke 1 jika
dihilangkan); dan -p opsi dicetak ke proses bersama (lihat Proses bersama atas).

Grafik -R option digunakan untuk meniru, sampai tingkat tertentu, BSD gema(1) perintah yang melakukan
tidak memproses urutan '\' kecuali jika -e pilihan diberikan. Seperti di atas, -n Option
menekan baris baru yang tertinggal.

Printf format [argumen ...]
Keluaran yang diformat. Kurang lebih sama dengan Printf(1), utilitas, kecuali kegunaannya
sama Backslash perluasan dan kode I/O dan tidak menangani floating point sebagai
Sisa mksh. Utilitas eksternal lebih disukai daripada builtin. Ini bukan
biasanya bagian dari mksh; namun, distributor mungkin telah menambahkan ini sebagai bawaan sebagai
peretasan kecepatan. Jangan gunakan dalam kode baru.

pwd [-LP]
Cetak direktori kerja saat ini. jika -L opsi digunakan atau jika fisik
opsi tidak disetel (lihat set perintah di bawah), jalur logis dicetak (mis
jalan yang digunakan untuk cd ke direktori saat ini). jika -P opsi (jalur fisik) digunakan
atau jika fisik opsi diatur, jalur ditentukan dari sistem file (oleh
berikut '..' direktori ke direktori root) dicetak.

Baca baca [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]] [-t n] [-rs] [p ...]
Membaca baris input, memisahkan input ke dalam bidang menggunakan parameter IFS (lihat
Substitusi di atas), dan menetapkan setiap bidang ke parameter yang ditentukan p. Jika tidak
parameter ditentukan, parameter REPLY digunakan untuk menyimpan hasilnya. Dengan
-A dan -a pilihan, hanya tidak ada atau satu parameter yang diterima. Jika ada lebih banyak
parameter daripada bidang, parameter tambahan diatur ke string kosong atau 0; jika
ada lebih banyak bidang daripada parameter, parameter terakhir ditetapkan sisanya
bidang (termasuk pemisah kata).

Pilihannya adalah sebagai berikut:

-A Simpan hasilnya ke dalam parameter p (atau REPLY) sebagai susunan kata.

-a Simpan hasilnya tanpa pemisahan kata menjadi parameter p (atau REPLY) sebagai
array karakter (karakter lebar jika mode utf8 opsi diberlakukan,
oktet sebaliknya); titik kode dikodekan sebagai angka desimal secara default.

-d x Gunakan byte pertama dari x, NUL jika kosong, bukan karakter baris baru ASCII
sebagai pembatas jalur masukan.

-N z Alih-alih membaca sampai akhir, bacalah dengan tepat z byte. Jika EOF atau a
timeout terjadi, pembacaan sebagian dikembalikan dengan status keluar 1.

-n z Alih-alih membaca sampai akhir, bacalah sampai z byte tetapi kembali segera setelah
setiap byte dibaca, misalnya dari perangkat terminal yang lambat, atau jika EOF atau batas waktu
terjadi.

-p Baca dari proses bersama yang saat ini aktif, lihat Proses bersama di atas untuk detailnya
hal ini.

-u[n] Baca dari deskriptor file n (default ke 0, yaitu input standar). Itu
argumen harus segera mengikuti karakter opsi.

-t n Interupsi membaca setelah n detik (ditetapkan sebagai nilai desimal positif dengan an
bagian pecahan opsional). Status keluar dari Baca baca adalah 1 jika batas waktu
terjadi, tetapi pembacaan sebagian masih dapat dikembalikan.

-r Biasanya, karakter garis miring terbalik ASCII lolos dari arti khusus dari
karakter berikut dan dihapus dari input; Baca baca tidak berhenti ketika
menghadapi urutan garis miring terbalik-baris baru dan tidak menyimpan baris baru itu di
hasil. Opsi ini mengaktifkan mode mentah, di mana garis miring terbalik tidak
diproses.

-s Baris input disimpan ke riwayat.

Jika inputnya adalah terminal, keduanya -N dan -n opsi mengaturnya ke mode mentah; mereka
baca seluruh file jika -1 dilewatkan sebagai z argumen.

Parameter pertama mungkin memiliki tanda tanya dan string yang ditambahkan padanya, di mana
jika string digunakan sebagai prompt (dicetak ke kesalahan standar sebelum input apa pun adalah
baca) jika inputnya adalah a tty(4) (misalnya Baca baca nfoo?'nomor of foo: ').

Jika tidak ada input yang terbaca atau terjadi timeout, Baca baca keluar dengan status bukan nol.

Kumpulan trik praktis lainnya: If Baca baca dijalankan dalam satu lingkaran seperti sementara Baca baca foo; do ...;
dilakukan maka spasi putih terkemuka akan dihapus (IFS) dan garis miring terbalik diproses. Anda
mungkin ingin menggunakan sementara IFS = Baca baca -r foo; do ...; dilakukan untuk I/O murni. Demikian pula,
saat menggunakan -a pilihan, penggunaan -r pilihan mungkin bijaksana; hal yang sama berlaku
untuk:

Temukan . -ketik f -print0 |& \
sementara IFS= baca -d '' -pr nama file; melakukan
print -r -- "ditemukan <${namafile#./}>"
dilakukan

Loop dalam akan dieksekusi dalam subkulit dan perubahan variabel tidak dapat dilakukan
disebarkan jika dieksekusi dalam pipa:

bar | baz | sambil membaca foo; melakukan ...; selesai

Gunakan proses bersama sebagai gantinya:

bar | baz |&
saat membaca -p foo; melakukan ...; selesai
eksekutif 3>&p; eksekutif 3>&-

dibaca saja [-p] [parameter [=nilai] ...]
Menyetel atribut read-only dari parameter bernama. Jika nilai diberikan,
parameter diatur ke mereka sebelum mengatur atribut. Setelah parameter dibuat
read-only, tidak dapat disetel dan nilainya tidak dapat diubah.

Jika tidak ada parameter yang ditentukan, nama semua parameter dengan read-only
atribut dicetak satu per baris, kecuali jika -p opsi digunakan, dalam hal ini
dibaca saja perintah yang mendefinisikan semua parameter read-only, termasuk nilainya, adalah
dicetak.

jalan nyata [--] nama
Mencetak nama path absolut yang diselesaikan sesuai dengan nama. Jika nama diakhiri dengan
slash ('/'), itu juga diperiksa keberadaannya dan apakah itu direktori;
jika tidak, jalan nyata mengembalikan 0 jika nama path ada atau dapat dibuat
segera, yaitu semua kecuali komponen terakhir ada dan merupakan direktori.

mengubah nama [--] dari untuk
Mengganti nama file dari untuk untuk. Keduanya harus nama path lengkap dan pada perangkat yang sama.
Builtin ini ditujukan untuk situasi darurat di mana: /bin/mv menjadi tidak dapat digunakan, dan
langsung menelepon mengubah nama(2).

kembali [status]
Kembali dari fungsi atau . skrip, dengan status keluar status. Jika tidak status diberikan,
status keluar dari perintah yang dieksekusi terakhir digunakan. Jika digunakan di luar fungsi
or . skrip, itu memiliki efek yang sama dengan keluar. Catat itu mksh memperlakukan profil dan
File ENV sebagai . skrip, sedangkan cangkang Korn asli hanya memperlakukan profil sebagai .
script.

set [+-abCefhiklmnprsUuvXx] [+-o Option] [+-A nama] [--] [arg ...]
Grafik set perintah dapat digunakan untuk mengatur (-) atau jelas (+) opsi shell, atur posisi
parameter, atau mengatur parameter array. Opsi dapat diubah menggunakan +-o Option
sintaks, di mana Option adalah nama panjang dari sebuah opsi, atau menggunakan +-surat sintaksis,
dimana surat adalah nama huruf tunggal opsi (tidak semua opsi memiliki satu huruf
nama). Tabel berikut mencantumkan huruf pilihan (jika ada) dan nama panjang
bersama dengan deskripsi tentang apa yang dilakukan opsi:

-A nama
Mengatur elemen parameter array nama untuk arg ... If -A digunakan, itu
array diatur ulang (yaitu dikosongkan) terlebih dahulu; jika +A digunakan, elemen N pertama ditetapkan
(di mana N adalah jumlah argumen); sisanya dibiarkan tak tersentuh.

Sintaks alternatif untuk perintah set -A foo -- a b c yang kompatibel untuk
GNU menampar dan juga didukung oleh AT&T UNIX ksh93 adalah: foo=(suatu b C); foo+=(d e)

-a | -o semua ekspor
Semua parameter baru dibuat dengan atribut ekspor.

-b | -o memberitahukan
Cetak pesan pemberitahuan pekerjaan secara asinkron, bukan tepat sebelum
mengingatkan. Hanya digunakan jika kontrol pekerjaan diaktifkan (-m).

-C | -o noclobber
Cegah > pengalihan dari menimpa file yang ada. Sebaliknya, >| harus digunakan
untuk memaksa menimpa. Perhatikan bahwa ini tidak aman digunakan untuk pembuatan
file sementara atau file kunci karena TOCTOU dalam pemeriksaan yang memungkinkan seseorang untuk mengarahkan ulang
output ke / dev / null atau file perangkat lain bahkan dalam noclobber mode.

-e | -o salah
Keluar (setelah menjalankan perangkap ERR) segera setelah terjadi kesalahan atau perintah
gagal (yaitu keluar dengan status bukan nol). Ini tidak berlaku untuk perintah
yang status keluarnya diuji secara eksplisit oleh konstruksi shell seperti if, sampai,
sementara, atau ! pernyataan. Untuk && atau ||, hanya status dari perintah terakhir yang
diuji.

-f | -o noglob
Jangan memperluas pola nama file.

-h | -o trackall
Buat alias terlacak untuk semua perintah yang dijalankan (lihat alias di atas). Diaktifkan
secara default untuk shell non-interaktif.

-i | -o interaktif
Shell adalah cangkang interaktif. Opsi ini hanya dapat digunakan ketika shell
dipanggil. Lihat di atas untuk penjelasan tentang apa artinya ini.

-k | -o kata kunci
Penetapan parameter dikenali di mana saja dalam suatu perintah.

-l | -o masuk
Shell adalah shell login. Opsi ini hanya dapat digunakan jika shellnya
dipanggil. Lihat di atas untuk penjelasan tentang apa artinya ini.

-m | -o Monitor
Aktifkan kontrol pekerjaan (default untuk shell interaktif).

-n | -o noexec
Jangan menjalankan perintah apa pun. Berguna untuk memeriksa sintaks skrip (diabaikan
jika interaktif).

-p | -o istimewa
Shell adalah cangkang istimewa. Ini diatur secara otomatis jika, ketika shell
dimulai, UID atau GID yang sebenarnya tidak cocok dengan UID (EUID) atau GID yang efektif
(EGID), masing-masing. Lihat di atas untuk penjelasan tentang apa artinya ini.

-r | -o terbatas
Cangkang adalah cangkang terbatas. Opsi ini hanya dapat digunakan jika shellnya
dipanggil. Lihat di atas untuk penjelasan tentang apa artinya ini.

-s | -o stdin
Jika digunakan saat shell dipanggil, perintah dibaca dari input standar. Mengatur
secara otomatis jika shell dipanggil tanpa argumen.

Ketika -s digunakan dengan set perintah itu menyebabkan argumen yang ditentukan menjadi
diurutkan sebelum menetapkannya ke parameter posisi (atau ke array nama, Jika
-A digunakan).

-U | -o mode utf8
Aktifkan dukungan UTF-8 di Emacs mengedit mode dan penanganan string internal
fungsi. Bendera ini dinonaktifkan secara default, tetapi dapat diaktifkan dengan menyetelnya
pada baris perintah shell; diaktifkan secara otomatis untuk shell interaktif jika
diminta pada waktu kompilasi, sistem Anda mendukung setlokal(LC_CTYPE, "") Dan
opsional nl_langinfo(SET KODE), atau lingkungan LC_ALL, LC_CTYPE, atau LANG
variabel, dan setidaknya salah satu dari ini mengembalikan sesuatu yang cocok dengan "UTF-8" atau
"utf8" tidak peka huruf besar/kecil; untuk panggilan bawaan langsung tergantung pada
variabel lingkungan tersebut di atas; atau untuk stdin atau skrip, jika input
dimulai dengan UTF-8 Byte Order Mark.

Dalam waktu dekat, pelacakan lokal akan diterapkan, yang berarti bahwa set -+kamu is
berubah setiap kali salah satu variabel lingkungan terkait lokal POSIX berubah.

-u | -o kata benda
Referensi parameter yang tidak disetel, selain “$@” atau “$*”, diperlakukan sebagai
kesalahan, kecuali salah satu pengubah '-', '+', atau '=' digunakan.

-v | -o bertele-tele
Tulis input shell ke kesalahan standar saat dibaca.

-X | -o markdir
Tandai direktori dengan tanda '/' selama pembuatan nama file.

-x | -o jejak x
Cetak pohon perintah saat dijalankan, didahului dengan nilai PS4.

-o bagus
Pekerjaan latar belakang dijalankan dengan prioritas lebih rendah.

-o braceexpand
Aktifkan ekspansi brace (alias pergantian). Ini diaktifkan secara default. Jika
dinonaktifkan, ekspansi tilde setelah tanda sama dengan dinonaktifkan sebagai efek samping.

-o emacs
Aktifkan pengeditan baris perintah seperti emacs BRL (hanya shell interaktif); melihat Emacs
mengedit mode.

-o gmac
Aktifkan pengeditan baris perintah seperti gmacs (hanya shell interaktif). Saat ini
identik dengan pengeditan emacs kecuali bahwa karakter transpose (^T) bertindak sedikit
berbeda.

-o mengabaikan
Shell tidak akan (dengan mudah) keluar saat akhir file dibaca; keluar harus digunakan.
Untuk menghindari infinite loop, shell akan keluar jika EOF dibaca 13 kali berturut-turut.

-o mewarisi-xtrace
Jangan mengatur ulang -o jejak x saat memasuki fungsi. Ini diaktifkan secara default.

-o nohup
Jangan matikan pekerjaan yang sedang berjalan dengan sinyal SIGHUP saat shell login keluar.
Saat ini disetel secara default, tetapi ini dapat berubah di masa mendatang agar kompatibel
dengan AT&T UNIX ksh, yang tidak memiliki opsi ini, tetapi mengirimkan SIGHUP
sinyal.

-o nolog
Tidak berpengaruh. Di kulit Korn asli, ini mencegah definisi fungsi dari
disimpan dalam file sejarah.

-o fisik
Menyebabkan cd dan pwd perintah untuk menggunakan "fisik" (yaitu sistem file) '..'
direktori alih-alih direktori "logis" (yaitu shell menangani '..', yang
memungkinkan pengguna untuk tidak menyadari tautan simbolik ke direktori). Hapus oleh
bawaan. Perhatikan bahwa menyetel opsi ini tidak memengaruhi nilai saat ini dari
parameter PD; hanya cd perintah mengubah PWD. Lihat cd dan pwd perintah
di atas untuk lebih jelasnya.

-o kegagalan pipa
Jadikan status keluar dari pipa (sebelum melengkapi secara logis) the
tingkat kesalahan bukan nol paling kanan, atau nol jika semua perintah keluar dengan nol.

-o POSIX
Berperilaku lebih dekat dengan standar (lihat POSIX mode untuk rincian). Secara otomatis
diaktifkan jika nama dasar dari pemanggilan shell dimulai dengan "sh" dan ini
fitur autodetection dikompilasi di (bukan di MirBSD). Sebagai efek samping, pengaturan
bendera ini padam braceexpand mode, yang dapat diaktifkan kembali secara manual, dan
sh mode (kecuali keduanya diaktifkan secara bersamaan).

-o sh
Aktifkan / Bin / sh (kludge) mode (lihat SH mode). Diaktifkan secara otomatis jika
nama dasar doa shell dimulai dengan "sh" dan fitur deteksi otomatis ini
dikompilasi di (bukan di MirBSD). Sebagai efek samping, pengaturan bendera ini mati
braceexpand mode, yang dapat diaktifkan kembali secara manual, dan POSIX modus (kecuali
keduanya diaktifkan secara bersamaan).

-o vi
Aktifkan viPengeditan baris perintah seperti (1) (hanya shell interaktif). Melihat Vi
mengedit mode untuk dokumentasi dan keterbatasan.

-o vi-esclengkap
Dalam pengeditan baris perintah vi, lakukan penyelesaian perintah dan nama file saat melarikan diri (^[)
dimasukkan dalam mode perintah.

-o vi-tab selesai
Dalam pengeditan baris perintah vi, lakukan penyelesaian perintah dan nama file ketika tab (^I) adalah
dimasukkan dalam mode penyisipan. Ini adalah default.

-o virus
Tidak berpengaruh. Dalam cangkang Korn asli, kecuali virus telah diatur, perintah vi-
mode garis akan membiarkan tty(4) driver melakukan pekerjaan sampai ESC (^[) dimasukkan.
mksh selalu dalam mode viraw.

Opsi-opsi ini juga dapat digunakan pada pemanggilan shell. Himpunan saat ini
options (dengan nama satu huruf) dapat ditemukan di parameter '$-'. set -o dengan
tidak ada nama opsi yang akan mencantumkan semua opsi dan apakah masing-masing aktif atau tidak aktif; set +o akan
cetak nama panjang dari semua opsi yang sedang aktif. Dalam versi mendatang, set
+o akan berperilaku sesuai dengan POSIX dan mencetak perintah untuk mengembalikan opsi saat ini
sebagai gantinya.

Argumen yang tersisa, jika ada, adalah parameter posisi dan ditugaskan, secara berurutan, ke
parameter posisi (yaitu $1, $2, dll.). Jika opsi diakhiri dengan '-' dan di sana
tidak ada argumen yang tersisa, semua parameter posisi dihapus. Jika tidak ada pilihan atau
argumen diberikan, nilai semua nama dicetak. Untuk sejarah yang tidak diketahui
alasan, satu-satunya opsi '-' diperlakukan secara khusus – ini menghapus keduanya -v dan -x
Pilihan.

bergeser [jumlah]
Parameter posisi jumlah+ 1, jumlah+2, dst. diganti namanya menjadi '1', '2', dst.
jumlah default ke 1.

tidur detik
Menangguhkan eksekusi selama minimal detik ditentukan sebagai nilai desimal positif
dengan bagian pecahan opsional. Pengiriman sinyal dapat melanjutkan eksekusi lebih awal.

sumber fillet [arg ...]
Seperti . (“titik”), kecuali bahwa direktori kerja saat ini ditambahkan ke pencarian
jalur (GNU menampar perpanjangan).

menangguhkan
Menghentikan shell seolah-olah telah menerima karakter penangguhan dari terminal. Dia
tidak mungkin untuk menangguhkan shell login kecuali proses induknya adalah anggota dari
sesi terminal yang sama tetapi merupakan anggota dari grup proses yang berbeda. Sebagai seorang jenderal
aturan, jika shell dimulai oleh shell lain atau melalui su(1), dapat ditangguhkan.

uji ekspresi
[ ekspresi ]
uji mengevaluasi ekspresi dan mengembalikan status nol jika benar, 1 jika salah, atau lebih besar
dari 1 jika ada kesalahan. Biasanya digunakan sebagai perintah kondisi dari if dan
sementara pernyataan. Tautan simbolis diikuti untuk semua fillet ekspresi kecuali -h dan
-L.

Ekspresi dasar berikut tersedia:

-a fillet fillet ada

-b fillet fillet adalah perangkat khusus blok.

-c fillet fillet adalah perangkat khusus karakter.

-d fillet fillet adalah sebuah direktori.

-e fillet fillet ada

-f fillet fillet adalah file biasa.

-G fillet fillet's group adalah ID grup efektif shell.

-g fillet filletmode 's memiliki setgid bit yang disetel.

-H fillet fillet adalah direktori yang bergantung pada konteks (hanya berguna pada HP-UX).

-h fillet fillet adalah tautan simbolis.

-k fillet filletmode memiliki lengket(8) sedikit diatur.

-L fillet fillet adalah tautan simbolis.

-O fillet fillet's owner adalah ID pengguna efektif shell.

-o Option Kulit Option diatur (lihat set perintah di atas untuk daftar
pilihan). Sebagai ekstensi non-standar, jika opsi dimulai dengan
a '!', tes dinegasikan; tes selalu gagal jika Option
tidak ada (jadi [ -o foo -o -o !foo ] mengembalikan nilai true jika dan hanya
jika opsi foo ada). Hal yang sama dapat dicapai dengan [ -o ?foo ]
seperti di AT&T UNIX ksh93. Option juga bisa menjadi bendera pendek yang dipimpin oleh
baik '-' atau '+' (tidak ada negasi logis), misalnya '-x' atau '+x'
bukannya 'xtrace'.

-p fillet fillet adalah pipa bernama (FIFO).

-r fillet fillet ada dan dapat dibaca.

-S fillet fillet adalah unix(4) soket domain.

-s fillet fillet tidak kosong.

-t fd Deskriptor file fd adalah tty(4) perangkat.

-u fillet filletmode 's memiliki setuid bit yang disetel.

-w fillet fillet ada dan dapat ditulis.

-x fillet fillet ada dan dapat dieksekusi.

file1 -tidak file2 file1 lebih baru dari file2 or file1 ada dan file2 tidak.

file1 -ot file2 file1 lebih tua dari file2 or file2 ada dan file1 tidak.

file1 -ef file2 file1 adalah file yang sama dengan file2.

tali tali memiliki panjang bukan nol.

-n tali tali tidak kosong.

-z tali tali kosong.

tali = tali String adalah sama.

tali == tali String adalah sama.

tali > tali Operan string pertama lebih besar dari operan string kedua.

tali < tali Operan string pertama kurang dari operan string kedua.

tali != tali String tidak sama.

jumlah -persamaan jumlah Angka membandingkan sama.

jumlah -satu jumlah Angka membandingkan tidak sama.

jumlah -ge jumlah Angka membandingkan lebih besar dari atau sama.

jumlah -gt jumlah Angka membandingkan lebih besar dari.

jumlah -NS jumlah Angka membandingkan kurang dari atau sama.

jumlah -lt jumlah Angka membandingkan kurang dari.

Ekspresi dasar di atas, di mana operator unary lebih diutamakan daripada biner
operator, dapat digabungkan dengan operator berikut (tercantum dalam urutan meningkat
diutamakan):

expr -o expr Logis ATAU.
expr -a expr Logis DAN.
! expr Logis TIDAK.
( expr ) Pengelompokan.

Perhatikan bahwa angka sebenarnya mungkin merupakan ekspresi aritmatika, seperti matematika
istilah atau nama variabel integer:

x=1; [ "x" -eq 1 ] bernilai benar

Perhatikan bahwa beberapa aturan khusus diterapkan (milik POSIX) jika jumlah
argumen untuk uji atau di dalam kurung [ ... ] kurang dari lima: jika memimpin '!'
argumen dapat dilucuti sedemikian rupa sehingga hanya satu hingga tiga argumen yang tersisa, maka
perbandingan yang diturunkan dijalankan; (terima kasih kepada XSI) tanda kurung \( ... \) lebih rendah empat- dan
bentuk tiga argumen menjadi bentuk dua dan satu argumen, masing-masing; tiga argumen
bentuk akhirnya lebih memilih operasi biner, diikuti oleh negasi dan kurung
penurunan; bentuk argumen dua dan empat lebih memilih negasi diikuti oleh tanda kurung; itu
bentuk satu-argumen selalu menyiratkan -n.

Note: Kesalahan umum adalah menggunakan “if [ $foo = bar ]” yang gagal jika parameter “foo”
adalah NULL atau tidak disetel, jika memiliki ruang tertanam (yaitu oktet IFS), atau jika itu adalah unary
operator seperti '!' atau '-n'. Gunakan tes seperti “jika [ x"$foo" = x"bar" ]” sebagai gantinya, atau
operator kurung ganda “if [[ $foo = bar ]]” atau, untuk menghindari pencocokan pola (lihat [[
di atas): “jika [[ $foo = "$bar" ]]”

Grafik [[ ... ]] konstruksi tidak hanya lebih aman untuk digunakan tetapi juga sering kali lebih cepat.

waktu [-p] [pipa saluran]
Jika pipa saluran diberikan, waktu yang digunakan untuk mengeksekusi pipa dilaporkan. Jika tidak
pipa diberikan, maka pengguna dan waktu sistem yang digunakan oleh shell itu sendiri, dan semua
perintah yang telah dijalankannya sejak dimulai, dilaporkan. Waktu yang dilaporkan adalah
waktu nyata (waktu yang berlalu dari awal hingga akhir), waktu CPU pengguna (waktu yang dihabiskan
berjalan dalam mode pengguna), dan waktu CPU sistem (waktu yang dihabiskan untuk berjalan dalam mode kernel).
Waktu dilaporkan ke kesalahan standar; format keluarannya adalah:

0m0.00s nyata 0m0.00s pengguna 0m0.00s sistem

Jika -p opsi yang diberikan outputnya sedikit lebih panjang:

nyata 0.00
pengguna 0.00
sys 0.00

Ini adalah kesalahan untuk menentukan -p pilihan kecuali pipa saluran adalah perintah sederhana.

Pengalihan sederhana dari kesalahan standar tidak mempengaruhi output dari waktu perintah:

$ waktu tidur 1 2>afile
$ { waktu tidur 1; } 2>file

Waktu untuk perintah pertama tidak pergi ke "afile", tetapi perintah kedua melakukannya.

kali Cetak akumulasi waktu pengguna dan sistem yang digunakan baik oleh shell maupun oleh proses
bahwa shell mulai yang telah keluar. Format keluarannya adalah:

0m0.00dtk 0m0.00dtk
0m0.00dtk 0m0.00dtk

perangkap n [sinyal ...]
Jika operan pertama adalah bilangan bulat desimal yang tidak ditandatangani, ini mengatur ulang semua sinyal yang ditentukan
ke tindakan default, yaitu sama dengan memanggil perangkap dengan tanda minus ('-') sebagai
handler, diikuti dengan argumen (n [sinyal ...]), yang semuanya diperlakukan sebagai
sinyal.

perangkap [handler sinyal ...]
Menetapkan penangan perangkap yang akan dieksekusi ketika salah satu dari yang ditentukan sinyaladalah
diterima. handler adalah string kosong, yang menunjukkan sinyalnya adalah
diabaikan, tanda minus ('-'), menunjukkan bahwa tindakan default harus diambil untuk
sinyal (lihat sinyal(3)), atau string yang berisi perintah shell untuk dieksekusi pada
kesempatan pertama (yaitu ketika perintah saat ini selesai, atau sebelum mencetak
prompt PS1 berikutnya) setelah menerima salah satu sinyal. sinyal adalah nama dari
sinyal (misalnya PIPA atau ALRM) atau nomor sinyal (lihat membunuh -l Command
atas).

Ada dua sinyal khusus: EXIT (juga dikenal sebagai 0), yang dijalankan ketika
shell akan segera keluar, dan ERR, yang dijalankan setelah terjadi kesalahan; kesalahan adalah
sesuatu yang akan menyebabkan shell keluar jika set -e or set -o salah Option
ditetapkan. Penangan EXIT dieksekusi di lingkungan yang terakhir dieksekusi
perintah.

Perhatikan bahwa, untuk cangkang non-interaktif, pengendali perangkap tidak dapat diubah untuk sinyal
yang diabaikan ketika shell dimulai.

Tanpa argumen, status jebakan saat ini yang telah ditetapkan sejak shell
dimulai ditampilkan sebagai rangkaian perangkap perintah. Perhatikan bahwa keluaran dari perangkap tidak bisa
berguna untuk disalurkan ke proses lain (artefak fakta bahwa perangkap dibersihkan
ketika subproses dibuat).

Perangkap DEBUG cangkang Korn asli dan penanganan perangkap ERR dan EXIT di
fungsi belum dilaksanakan.

benar Perintah yang keluar dengan nilai nol.

global [[+-alpnrtUux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-tux]] [nama [=nilai] ...]
mengeset [[+-alpnrtUux] [-LRZ[n]] [-i[n]] | -f [-tux]] [nama [=nilai] ...]
Menampilkan atau mengatur atribut parameter. Dengan tidak nama argumen, atribut parameter
ditampilkan; jika tidak ada opsi yang digunakan, atribut saat ini dari semua parameter adalah
dicetak sebagai mengeset perintah; jika opsi diberikan (atau '-' tanpa huruf opsi),
semua parameter dan nilainya dengan atribut yang ditentukan dicetak; jika pilihan
diperkenalkan dengan '+', nilai parameter tidak dicetak.

If nama argumen diberikan, atribut dari parameter bernama ditetapkan (-) atau
dibersihkan (+). Nilai untuk parameter dapat ditentukan secara opsional. Untuk nama[*],
perubahan mempengaruhi seluruh array, dan tidak ada nilai yang dapat ditentukan.

If mengeset digunakan di dalam suatu fungsi, parameter apa pun yang ditentukan dilokalkan. Ini
tidak dilakukan dengan cara lain yang identik global. Note: Artinya mksh 's global
perintah adalah tidak setara dengan bahasa pemrograman lain 'karena tidak memungkinkan a
fungsi dipanggil dari fungsi lain untuk mengakses parameter pada lingkup yang benar-benar global,
tetapi hanya mencegah menempatkan yang diakses ke dalam lingkup lokal.

Ketika -f digunakan, mengeset beroperasi pada atribut fungsi. Seperti
parameter, jika tidak nama argumen diberikan, fungsi terdaftar dengan nilainya
(yaitu definisi) kecuali opsi diperkenalkan dengan '+', dalam hal ini hanya
nama fungsi dilaporkan.

-a Atribut array yang diindeks.

-f Modus fungsi. Tampilkan atau atur fungsi dan atributnya, alih-alih
parameter.

-i[n] Atribut bilangan bulat. n menentukan basis yang akan digunakan saat menampilkan bilangan bulat
(jika tidak ditentukan, basis yang diberikan dalam tugas pertama digunakan).
Parameter dengan atribut ini dapat diberi nilai yang berisi aritmatika
ekspresi.

-L[n] Atribut justify kiri. n menentukan lebar bidang. Jika n tidak ditentukan,
lebar parameter saat ini (atau lebar nilai pertama yang ditetapkan)
digunakan. Spasi di depan (dan nol, jika digunakan dengan -Z pilihan) adalah
dilucuti. Jika perlu, nilainya dipotong atau diberi spasi agar pas
lebar lapangan.

-l Atribut huruf kecil. Semua karakter huruf besar dalam nilai dikonversi ke
huruf kecil. (Dalam shell Korn asli, parameter ini berarti "integer panjang"
bila digunakan dengan -i pilihan.)

-n Buat variabel terikat (referensi nama): akses apa pun ke variabel nama
akan mengakses variabel nilai dalam lingkup saat ini (ini berbeda dari
AT&T UNIX ksh93!) sebagai gantinya. Juga berbeda dari AT&T UNIX ksh93 adalah bahwa
nilai malas dievaluasi pada saat itu nama diakses. Ini dapat digunakan oleh
berfungsi untuk mengakses variabel yang namanya dilewatkan sebagai parameter, sebagai gantinya
menggunakan evaluasi.

-p Cetak selesai mengeset perintah yang dapat digunakan untuk membuat kembali atribut
dan nilai parameter.

-R[n] Benar membenarkan atribut. n menentukan lebar bidang. Jika n tidak
ditentukan, lebar parameter saat ini (atau lebar parameter pertama
nilai yang ditetapkan) digunakan. Trailing spasi putih dilucuti. Jika diperlukan,
nilai dihilangkan dari karakter utama atau diberi spasi untuk membuatnya
sesuai dengan lebar lapangan.

-r Atribut hanya baca. Parameter dengan atribut ini tidak boleh ditetapkan ke
atau tidak disetel. Setelah atribut ini disetel, itu tidak dapat dimatikan.

-t Atribut tanda. Tidak ada artinya bagi cangkang; disediakan untuk penggunaan aplikasi.

Untuk fungsi, -t adalah atribut jejak. Saat berfungsi dengan jejak
atribut dieksekusi, the jejak x (-x) opsi shell untuk sementara diubah
pada.

-U Atribut bilangan bulat yang tidak ditandatangani. Bilangan bulat dicetak sebagai nilai yang tidak ditandatangani (gabungkan
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. -i pilihan). Opsi ini tidak ada di cangkang Korn asli.

-u Atribut huruf besar. Semua karakter huruf kecil dalam nilai dikonversi ke
huruf besar. (Dalam cangkang Korn asli, parameter ini berarti "tidak ditandatangani"
bilangan bulat” bila digunakan dengan -i opsi yang berarti huruf besar akan
jangan pernah digunakan untuk basa yang lebih besar dari 10. Lihat -U pilihan.)

Untuk fungsi, -u adalah atribut yang tidak ditentukan. Melihat Fungsi di atas untuk
implikasi dari ini.

-x Ekspor atribut. Parameter (atau fungsi) ditempatkan di lingkungan
setiap perintah yang dieksekusi. Fungsi yang diekspor belum diimplementasikan.

-Z[n] Atribut isian nol. Jika tidak digabungkan dengan -L, ini sama dengan -R, kecuali
zero padding digunakan sebagai pengganti space padding. Untuk bilangan bulat, bilangan
bukannya alasnya empuk.

Jika salah satu dari -i, -L, -l, -R, -U, -u, atau -Z opsi diubah, semua yang lain dari ini
set dihapus, kecuali jika mereka juga diberikan pada baris perintah yang sama.

batas [-aBCcdefHilMmnOPpqrSsTtVvw] [nilai]
Menampilkan atau mengatur batas proses. Jika tidak ada opsi yang digunakan, batas ukuran file (-f) aku s
diasumsikan. nilai, jika ditentukan, dapat berupa ekspresi aritmatika atau kata
"tak terbatas". Batas mempengaruhi shell dan proses yang dibuat oleh shell
setelah diberikan batasan. Perhatikan bahwa beberapa sistem mungkin tidak mengizinkan batasan menjadi
meningkat setelah mereka ditetapkan. Perhatikan juga bahwa jenis batas yang tersedia adalah sistem
dependen – beberapa sistem hanya memiliki -f membatasi.

-a Tampilkan semua batasan; kecuali kalau -H digunakan, batas lunak ditampilkan.

-B n Atur ukuran buffer soket ke n kibibyte.

-C n Setel jumlah utas yang di-cache ke n.

-c n Terapkan batas ukuran sebesar n blok pada ukuran core dumps.

-d n Terapkan batas ukuran sebesar n kibibyte pada ukuran area data.

-e n Atur keindahan maksimal ke n.

-f n Terapkan batas ukuran sebesar n blok pada file yang ditulis oleh shell dan anaknya
proses (file dari berbagai ukuran dapat dibaca).

-H Tetapkan batas keras saja (standarnya adalah mengatur batas keras dan lunak).

-i n Setel jumlah sinyal tertunda ke n.

-l n Memaksakan batas n kibibyte pada jumlah memori fisik yang terkunci (berkabel).

-M n Setel memori terkunci AIO ke n kibibyte.

-m n Memaksakan batas n kibibyte pada jumlah memori fisik yang digunakan.

-n n Memaksakan batas n deskriptor file yang dapat dibuka sekaligus.

-O n Atur jumlah operasi AIO ke n.

-P n Batasi jumlah utas per proses hingga n.

-p n Memaksakan batas n proses yang dapat dijalankan oleh pengguna pada satu waktu.

-q n Batasi ukuran antrian pesan POSIX menjadi n byte.

-r n Tetapkan prioritas waktu nyata maksimum ke n.

-S Tetapkan batas lunak saja (standarnya adalah mengatur batas keras dan lunak).

-s n Terapkan batas ukuran sebesar n kibibyte pada ukuran area tumpukan.

-T n Tetapkan batas waktu n detik nyata yang akan digunakan oleh setiap proses.

-t n Tetapkan batas waktu n Detik CPU yang dihabiskan dalam mode pengguna untuk digunakan oleh masing-masing
proses.

-V n Atur jumlah monitor vnode di Haiku ke n.

-v n Memaksakan batas n kibibytes pada jumlah memori virtual (ruang alamat)
bekas.

-w n Memaksakan batas n kibibyte pada jumlah ruang swap yang digunakan.

Sejauh batas yang bersangkutan, sebuah blok adalah 512 byte.

umask [-S] [masker]
Menampilkan atau mengatur topeng pembuatan izin file, atau umask (lihat umask(2)). jika -S
opsi digunakan, topeng yang ditampilkan atau disetel adalah simbolis; jika tidak, itu adalah oktal
nomor.

Topeng simbolis seperti yang digunakan oleh chmod(1). Ketika digunakan, mereka menggambarkan apa
izin dapat dibuat tersedia (sebagai lawan dari topeng oktal di mana satu set bit berarti
bit yang sesuai harus dihapus). Misalnya, "ug=rwx,o=" mengatur topeng jadi
file tidak akan dapat dibaca, ditulis, atau dieksekusi oleh "orang lain", dan setara
(pada sebagian besar sistem) ke topeng oktal "007".

Unalias [-adt] [nama ...]
Alias ​​untuk nama yang diberikan akan dihapus. jika -a opsi digunakan, semua alias
dihapus. jika -t or -d opsi digunakan, operasi yang ditunjukkan dilakukan
keluar pada alias dilacak atau direktori, masing-masing.

tidak disetel [-fv] parameter ...
Hapus parameter bernama (-v, default) atau fungsi (-f). Dengan parameter[*],
atribut disimpan, hanya nilai yang tidak disetel.

Status keluar bukan nol jika salah satu parameter memiliki atribut read-only
ditetapkan, nol sebaliknya.

menunggu [pekerjaan ...]
Tunggu hingga pekerjaan yang ditentukan selesai. Status keluar dari menunggu adalah yang terakhir?
pekerjaan yang ditentukan; jika pekerjaan terakhir dimatikan oleh sinyal, status keluarnya adalah 128 +
nomor sinyal (lihat membunuh -l status keluar di atas); jika pekerjaan yang ditentukan terakhir tidak bisa
ditemukan (karena tidak pernah ada, atau sudah selesai), status keluar dari menunggu
adalah 127. Lihat Pekerjaan kontrol di bawah ini untuk format pekerjaan. menunggu akan kembali jika ada sinyal
yang perangkapnya telah ditetapkan diterima, atau jika sinyal SIGHUP, SIGINT, atau SIGQUIT
telah diterima.

Jika tidak ada pekerjaan yang ditentukan, menunggu menunggu semua pekerjaan yang sedang berjalan (jika ada) untuk
selesai dan keluar dengan status nol. Jika pemantauan pekerjaan diaktifkan, penyelesaiannya
status pekerjaan dicetak (hal ini tidak terjadi jika pekerjaan ditentukan secara eksplisit).

dari mana [-pv] [nama ...]
Tanpa -v pilihan, itu sama dengan Command -v, kecuali alias tidak dicetak
sebagai perintah alias. Dengan -v pilihan, itu persis sama dengan Command -V. di
kedua kasus, -p opsi berbeda: jalur pencarian tidak terpengaruh di dari mana, tapi
pencarian dibatasi untuk jalan.

Pekerjaan kontrol
Kontrol pekerjaan mengacu pada kemampuan shell untuk memantau dan mengontrol pekerjaan yang merupakan proses atau
kelompok proses yang dibuat untuk perintah atau saluran pipa. Minimal, cangkangnya melacak
status pekerjaan latar belakang (yaitu asinkron) yang saat ini ada; ini
informasi dapat ditampilkan dengan menggunakan pekerjaan perintah. Jika kontrol pekerjaan diaktifkan sepenuhnya
(menggunakan set -m or set -o Monitor), seperti halnya untuk cangkang interaktif, proses pekerjaan
ditempatkan dalam kelompok proses mereka sendiri. Pekerjaan latar depan dapat dihentikan dengan mengetikkan suspend
karakter dari terminal (biasanya ^Z), pekerjaan dapat dimulai ulang baik di latar depan atau
latar belakang menggunakan fg dan bg perintah, dan status terminal disimpan atau dipulihkan
ketika pekerjaan latar depan dihentikan atau dimulai ulang, masing-masing.

Perhatikan bahwa hanya perintah yang membuat proses (misalnya perintah asinkron, subkulit
perintah, dan non-built-in, perintah non-fungsi) dapat dihentikan; perintah seperti Baca baca tidak bisa
menjadi.

Ketika pekerjaan dibuat, itu diberi nomor pekerjaan. Untuk cangkang interaktif, nomor ini adalah
tercetak di dalam “[..]”, diikuti dengan ID proses dari proses-proses dalam pekerjaan saat
perintah asinkron dijalankan. Suatu pekerjaan dapat dirujuk dalam bg, fg, pekerjaan, membunuh, dan menunggu
perintah baik oleh ID proses dari proses terakhir dalam pipa perintah (seperti yang disimpan dalam
itu $! parameter) atau dengan mengawali nomor pekerjaan dengan tanda persen ('%'). persen lainnya
urutan juga dapat digunakan untuk merujuk ke pekerjaan:

%+ | %% | % Pekerjaan yang terakhir dihentikan, atau, jika tidak ada pekerjaan yang dihentikan, pekerjaan yang paling lama
menjalankan pekerjaan.

%- Pekerjaan yang akan menjadi %+ pekerjaan jika yang terakhir tidak ada.

%n Pekerjaan dengan nomor pekerjaan n.

%?tali Pekerjaan dengan perintahnya yang berisi string tali (kesalahan terjadi jika
beberapa pekerjaan dicocokkan).

%tali Pekerjaan dengan perintahnya dimulai dengan string tali (kesalahan terjadi jika
beberapa pekerjaan dicocokkan).

Saat pekerjaan berubah status (misalnya pekerjaan latar belakang selesai atau pekerjaan latar depan dihentikan),
shell mencetak informasi status berikut:

[jumlah] bendera status Command

di mana...

jumlah adalah nomor pekerjaan pekerjaan;

bendera adalah karakter '+' atau '-' jika pekerjaannya adalah %+ or %- pekerjaan, masing-masing, atau ruang
jika bukan keduanya;

status menunjukkan status pekerjaan saat ini dan dapat berupa:

Selesai [jumlah]
Pekerjaan itu keluar. jumlah adalah status keluar dari pekerjaan yang dihilangkan
jika statusnya nol.

Menjalankan Pekerjaan tidak berhenti atau keluar (perhatikan bahwa menjalankan tidak
berarti menghabiskan waktu CPU – prosesnya dapat diblokir
menunggu beberapa acara).

Berhenti [sinyal]
Pekerjaan dihentikan oleh yang ditunjukkan sinyal (jika tidak ada sinyal yang diberikan,
pekerjaan dihentikan oleh SIGTSTP).

sinyal-deskripsi ["inti dibuang"]
Pekerjaan dihentikan oleh sinyal (misalnya kesalahan memori, hangup); menggunakan membunuh -l
untuk daftar deskripsi sinyal. Pesan "core dumped" menunjukkan
proses membuat file inti.

Command adalah perintah yang menciptakan proses. Jika ada beberapa proses dalam
pekerjaan, setiap proses akan memiliki garis yang menunjukkan Command dan mungkin itu status, Jika
berbeda dengan status proses sebelumnya.

Ketika upaya dilakukan untuk keluar dari shell saat ada pekerjaan dalam keadaan berhenti,
shell memperingatkan pengguna bahwa ada pekerjaan yang dihentikan dan tidak keluar. Jika upaya lain adalah
segera dibuat untuk keluar dari shell, pekerjaan yang dihentikan dikirimi sinyal SIGHUP dan shell
keluar. Demikian pula jika nohup opsi tidak disetel dan ada pekerjaan yang sedang berjalan saat upaya
dibuat untuk keluar dari shell login, shell memperingatkan pengguna dan tidak keluar. Jika yang lain
upaya segera dilakukan untuk keluar dari shell, pekerjaan yang sedang berjalan dikirimi sinyal SIGHUP dan
cangkang keluar.

POSIX mode
Memasuki set -o POSIX mode akan menyebabkan mksh untuk berperilaku lebih sesuai dengan POSIX di beberapa tempat
di mana default atau pendapat berbeda. Perhatikan bahwa mksh akan tetap beroperasi dengan unsigned
aritmatika 32-bit; menggunakan lksh jika aritmatika pada host panjang tipe data, lengkap dengan ISO C
Perilaku Tidak Terdefinisi, diperlukan; mengacu kepada lksh(1) halaman manual untuk detailnya. Kebanyakan lainnya
bersejarah, AT&T UNIX ksh-kompatibel, atau perbedaan pendapat dapat dinonaktifkan dengan menggunakan ini
mode; ini adalah:

· GNU menampar I / O redirection &>fillet tidak lagi didukung.

· Deskriptor file yang dibuat oleh pengalihan I/O diwarisi oleh proses anak.

· Angka dengan angka nol di depan ditafsirkan sebagai oktal.

· Grafik gema builtin tidak menafsirkan garis miring terbalik dan hanya mendukung opsi yang tepat “-n".

· ... (daftar tidak lengkap dan dapat berubah untuk R53)

SH mode
Mode kompatibilitas; dimaksudkan untuk digunakan dengan skrip lama yang tidak dapat diperbaiki dengan mudah; itu
perubahannya adalah sebagai berikut:

· GNU menampar I / O redirection &>fillet tidak lagi didukung.

· Deskriptor file yang dibuat oleh pengalihan I/O diwarisi oleh proses anak.

· Grafik gema builtin tidak menafsirkan garis miring terbalik dan hanya mendukung opsi yang tepat “-n".

· ... (daftar tidak lengkap dan dapat berubah untuk R53)

Interaktif memasukkan line mengedit
Shell mendukung tiga mode membaca baris perintah dari a tty(4) secara interaktif
sesi, dikendalikan oleh emacs, gmac, dan vi opsi (paling banyak salah satu dari ini dapat diatur di
satu kali). Standarnya adalah emacs. Mode pengeditan dapat diatur secara eksplisit menggunakan set built-in.
Jika tidak ada opsi ini yang diaktifkan, shell hanya membaca baris menggunakan normal tty(4)
sopir. jika emacs or gmac opsi diatur, shell memungkinkan pengeditan seperti emacs dari
memerintah; sama, jika vi opsi diatur, shell memungkinkan pengeditan seperti vi dari
memerintah. Mode ini dijelaskan secara rinci di bagian berikut.

Dalam mode pengeditan ini, jika garis lebih panjang dari lebar layar (lihat KOLOM
parameter), karakter '>', '+', atau '<' ditampilkan di kolom terakhir yang menunjukkan bahwa
ada lebih banyak karakter setelah, sebelum dan sesudah, atau sebelum posisi saat ini,
masing-masing. Garis digulir secara horizontal sesuai kebutuhan.

Baris yang telah selesai dimasukkan ke dalam riwayat, kecuali jika dimulai dengan oktet IFS atau IFS
spasi, atau sama dengan baris sebelumnya.

Emacs mengedit mode
Ketika emacs opsi diatur, pengeditan baris input interaktif diaktifkan. Peringatan: Mode ini
sedikit berbeda dari mode emacs di shell Korn asli. Dalam mode ini, berbagai
perintah pengeditan (biasanya terikat pada satu atau lebih karakter kontrol) menyebabkan tindakan segera
tanpa menunggu baris baru. Beberapa perintah pengeditan terikat pada kontrol tertentu
karakter saat shell dipanggil; ikatan ini dapat diubah menggunakan mengikat perintah.

Berikut ini adalah daftar perintah pengeditan yang tersedia. Setiap deskripsi dimulai dengan
nama perintah, diakhiri dengan titik dua; sebuah [n] (jika perintah dapat diawali dengan a
menghitung); dan tombol apa pun yang terikat oleh perintah secara default, ditulis menggunakan notasi tanda sisipan, mis
karakter ASCII ESC ditulis sebagai ^[. Urutan kontrol ini tidak peka huruf besar-kecil.
Awalan hitungan untuk perintah dimasukkan menggunakan urutan ^[n, Di mana n adalah barisan 1
atau lebih digit. Kecuali ditentukan lain, jika hitungan dihilangkan, defaultnya adalah 1.

Perhatikan bahwa nama perintah pengeditan hanya digunakan dengan mengikat memerintah. Selanjutnya, banyak
perintah pengeditan hanya berguna pada terminal dengan kursor yang terlihat. Binding default
dipilih agar menyerupai binding kunci Emacs yang sesuai. milik pengguna tty(4) karakter
(misalnya ERASE) terikat pada pengganti yang wajar dan mengesampingkan binding default.

batalkan: ^C, ^G
Batalkan perintah saat ini, kosongkan buffer baris dan atur status keluar ke
terputus.

masukkan otomatis: [n]
Cukup menyebabkan karakter muncul sebagai input literal. Karakter paling biasa
terikat untuk ini.

mundur-char: [n] ^B, ^XD, ANSI-Kiri Kiri, PC-Kiri Kiri
Memindahkan kursor ke belakang n karakter.

kata mundur: [n] ^[b, ANSI-Ctrl-CurLeft, ANSI-Alt-CurLeft
Memindahkan kursor mundur ke awal kata; kata terdiri dari
karakter alfanumerik, garis bawah ('_'), dan tanda dolar ('$').

awal sejarah: ^[
Bergerak ke awal sejarah.

awal baris: ^A, ANSI-Home, PC-Home
Memindahkan kursor ke awal baris input yang diedit.

huruf besar-kata: [n] ^[C, ^[c
Huruf besar karakter pertama di berikutnya n kata-kata, meninggalkan kursor melewati akhir
dari kata terakhir.

layar jernih: ^[^L
Mencetak urutan waktu kompilasi yang dapat dikonfigurasi untuk menghapus layar dan menempatkan kursor,
menggambar ulang seluruh prompt dan baris input yang sedang diedit. Urutan default
bekerja untuk hampir semua terminal standar.

komentar: ^[#
Jika baris saat ini tidak dimulai dengan karakter komentar, satu ditambahkan di
awal baris dan baris dimasukkan (seolah-olah kembali telah ditekan);
jika tidak, karakter komentar yang ada akan dihapus dan kursor ditempatkan di
awal baris.

lengkap: ^[^[
Secara otomatis menyelesaikan sebanyak yang unik dari nama perintah atau nama file
berisi kursor. Jika seluruh perintah atau nama file yang tersisa unik, a
spasi dicetak setelah selesai, kecuali jika itu adalah nama direktori dalam hal ini
'/' ditambahkan. Jika tidak ada perintah atau nama file dengan kata parsial saat ini
sebagai awalannya, karakter lonceng dikeluarkan (biasanya menyebabkan bunyi bip).

perintah lengkap: ^X^[
Secara otomatis menyelesaikan sebanyak yang unik dari nama perintah yang memiliki parsial
kata hingga kursor sebagai awalannya, seperti pada lengkap perintah di atas.

file lengkap: ^[^X
Secara otomatis menyelesaikan sebanyak yang unik dari nama file yang memiliki parsial
kata hingga kursor sebagai awalannya, seperti pada lengkap perintah yang dijelaskan di atas.

daftar lengkap: ^I, ^[=
Lengkapi sebanyak mungkin kata saat ini, dan tulis kemungkinannya
kelengkapan untuk itu. Jika hanya satu penyelesaian yang mungkin, cocokkan seperti pada lengkap
perintah di atas. Perhatikan bahwa ^I biasanya dihasilkan oleh kunci TAB (tabulator).

hapus-char-mundur: [n] HAPUS, ^?, ^H
Dihapus n karakter sebelum kursor.

hapus-char-maju: [n] ANSI-Del, PC-Del
Dihapus n karakter setelah kursor.

hapus-kata-mundur: [n] WERASE, ^[^?, ^[^H, ^[h
Dihapus n kata di depan kursor.

hapus-kata-maju: [n] ^[d
Menghapus karakter setelah kursor hingga akhir n kata-kata.

sejarah bawah: [n] ^N, ^XB, ANSI-CurDown, PC-CurDown
Gulir buffer sejarah ke depan n garis (nanti). Setiap baris input awalnya
dimulai tepat setelah entri terakhir di buffer riwayat, jadi sejarah bawah tidak
berguna sampai Sejarah pencarian, pencarian-sejarah-up or up-sejarah telah
dilakukan.

kata-kata kecil: [n] ^[L, ^[l
Huruf kecil berikutnya n kata-kata.

baris edit: [n] ^Xe
Edit baris n atau baris saat ini, jika tidak ditentukan, secara interaktif. Sebenarnya
perintah yang dijalankan adalah fc -e ${VISUAL:-${EDITOR:-vi}} n.

akhir sejarah: ^[>
Bergerak ke akhir sejarah.

akhir baris: ^E, ANSI-End, PC-End
Memindahkan kursor ke akhir baris input.

ato: ^_
Bertindak sebagai akhir file; ini berguna karena input mode edit menonaktifkan normal
kanonikalisasi input terminal.

eot-atau-hapus: [n] ^D
Bertindak sebagai EOT jika sendirian di garis; jika tidak bertindak sebagai hapus-char-maju.

kesalahan: (tidak terikat)
Kesalahan (membunyikan bel).

tukar-titik-dan-tanda: ^X^X
Tempatkan kursor di tempat tanda berada dan setel tanda ke tempat kursor berada.

perluas-file: ^[*
Menambahkan '*' ke kata saat ini dan mengganti kata dengan hasil dari
melakukan globbing file pada Word. Jika tidak ada file yang cocok dengan pola, bel berbunyi
anak tangga.

maju-char: [n] ^F, ^XC, ANSI-Kanan-Kanan, PC-Kanan-Kanan
Memindahkan kursor ke depan n karakter.

kata depan: [n] ^[f, ANSI-Ctrl-Kanan Kanan, ANSI-Alt-Kanan Kanan
Memindahkan kursor ke depan ke akhir nkata ke.

goto-sejarah: [n] ^[g
Pergi ke nomor sejarah n.

garis pembunuhan: KILL
Menghapus seluruh baris input.

wilayah pembunuhan: ^W
Menghapus input antara kursor dan tanda.

membunuh-ke-eol: [n] ^K
Menghapus input dari kursor ke akhir baris jika n tidak ditentukan;
jika tidak, menghapus karakter antara kursor dan kolom n.

daftar: ^[?
Mencetak daftar nama perintah atau nama file yang diurutkan dan dikolomasikan (jika ada) yang dapat
lengkapi sebagian kata yang berisi kursor. Nama direktori telah ditambahkan '/'
ke mereka.

daftar-perintah: ^X?
Mencetak daftar nama perintah yang diurutkan dan dikolomasikan (jika ada) yang dapat melengkapi
sebagian kata yang mengandung kursor.

daftar-file: ^X^Y
Mencetak daftar nama file yang diurutkan dan dikolomasikan (jika ada) yang dapat melengkapi
sebagian kata yang mengandung kursor. Indikator jenis file ditambahkan seperti yang dijelaskan
bawah daftar atas.

baris baru: ^J, ^M
Menyebabkan jalur input saat ini diproses oleh shell. Kursor saat ini
posisi mungkin di mana saja di telepon.

baris baru-dan-berikutnya: ^O
Menyebabkan baris input saat ini diproses oleh shell, dan baris berikutnya dari
sejarah menjadi garis saat ini. Ini hanya berguna setelah up-sejarah,
Sejarah pencarian or pencarian-sejarah-up.

tidak ada operasi: QUIT
Ini tidak melakukan apa-apa.

awalan-1: ^[
Memperkenalkan urutan perintah 2 karakter.

awalan-2: ^X, ^[[, ^[O
Memperkenalkan urutan perintah 2 karakter.

kata-sebelumnya-sejarah: [n] ^[., ^[_
Kata terakhir, atau, jika diberikan, the nkata ke-(berbasis nol) dari sebelumnya (di ulangi
eksekusi, perintah kedua-terakhir, ketiga-terakhir, dll.) dimasukkan pada kursor. Penggunaan
perintah pengeditan ini merusak tanda.

kutipan: ^^, ^V
Karakter berikut diambil secara harfiah daripada sebagai perintah pengeditan.

gambar ulang: ^L
Mencetak ulang baris terakhir dari string prompt dan baris input saat ini pada yang baru
line.

pencarian-karakter-mundur: [n] ^[^]
Cari mundur di baris saat ini untuk nkemunculan karakter berikutnya
diketik.

pencarian-karakter-maju: [n] ^]
Cari maju di baris saat ini untuk nkemunculan karakter berikutnya
diketik.

riwayat pencarian: ^R
Masuk ke mode pencarian tambahan. Daftar riwayat internal dicari secara terbalik
perintah yang cocok dengan input. Inisial '^' dalam string pencarian menandai
Cari. Kunci escape akan keluar dari mode pencarian. Perintah lain, termasuk urutan
melarikan diri sebagai awalan-1 diikuti dengan awalan-1 or awalan-2 kunci akan dieksekusi setelah
keluar dari mode pencarian. Itu menggugurkan (^G) perintah akan mengembalikan baris input sebelumnya
pencarian dimulai. berturut-turut Sejarah pencarian perintah terus mencari mundur ke
kemunculan pola sebelumnya. Buffer histori hanya menyimpan
jumlah baris yang terbatas; yang tertua dibuang seperlunya.

riwayat pencarian-up: ANSI-PgUp, PC-PgUp
Cari mundur melalui buffer sejarah untuk perintah yang awalnya cocok dengan
bagian dari baris input sebelum kursor. Saat digunakan pada jalur kosong, ini memiliki
efek yang sama seperti up-sejarah.

riwayat pencarian-turun: ANSI-PgDn, PC-PgDn
Cari ke depan melalui buffer riwayat untuk perintah yang awalnya cocok dengan
bagian dari baris input sebelum kursor. Saat digunakan pada jalur kosong, ini memiliki
efek yang sama seperti sejarah bawah. Ini hanya berguna setelah up-sejarah,
Sejarah pencarian or pencarian-sejarah-up.

set-mark-command: ^[
Atur tanda pada posisi kursor.

transpos-karakter: ^T
Jika di akhir baris, atau jika gmac opsi diatur, ini menukar keduanya
karakter sebelumnya; jika tidak, itu menukar karakter sebelumnya dan saat ini dan
memindahkan kursor satu karakter ke kanan.

sejarah: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
Gulir buffer sejarah ke belakang n garis (sebelumnya).

huruf besar-kata: [n] ^[kamu, ^[kamu
Huruf besar berikutnya n kata-kata.

versi: ^[^V
Tampilkan versi mksh. Buffer edit saat ini dipulihkan segera setelah kunci
ditekan. Menekan tombol pemulihan diproses, kecuali spasi.

menarik: ^Y
Menyisipkan string teks yang terakhir dimatikan pada posisi kursor saat ini.

yank-pop: ^[y
Segera setelah a merenggut, menggantikan string teks yang dimasukkan dengan yang sebelumnya sebelumnya
string teks yang terbunuh.

Vi mengedit mode
Catatan: Mode pengeditan baris perintah vi tidak digunakan lagi, namun tetap berfungsi. Ini bersih 8-bit
tetapi secara khusus tidak mendukung UTF-8 atau MBCS.

Editor baris perintah vi di mksh pada dasarnya memiliki perintah yang sama dengan vi(1) editor dengan
pengecualian berikut:

· Anda mulai dalam mode insert.

· Ada nama file dan perintah penyelesaian perintah: =, \, *, ^X, ^E, ^F, dan,
opsional, dan .

· Grafik _ perintahnya berbeda (dalam mksh, itu adalah perintah argumen terakhir; di dalam vi(1) pergi
ke awal baris saat ini).

· Grafik / dan G perintah bergerak ke arah yang berlawanan dengan j perintah.

· Perintah yang tidak masuk akal dalam editor satu baris tidak tersedia (mis. layar
perintah gerakan dan ex(1) gaya titik dua (:) perintah).

Seperti vi(1), ada dua mode: mode "masukkan" dan mode "perintah". Dalam mode penyisipan, sebagian besar
karakter hanya diletakkan di buffer pada posisi kursor saat ini saat diketik;
Namun, beberapa karakter diperlakukan secara khusus. Secara khusus, karakter berikut adalah
diambil dari arus tty(4) pengaturan (lihat sty(1)) dan memiliki arti yang biasa (nilai normal .)
dalam tanda kurung): kill (^U), erase (^?), werase (^W), eof (^D), intr (^C), dan quit (^\).
Selain di atas, karakter berikut juga diperlakukan secara khusus di sisipan:
mode:

^E Perintah dan enumerasi nama file (lihat di bawah).

^F Perintah dan nama file selesai (lihat di bawah). Jika digunakan dua kali berturut-turut, daftar
kemungkinan penyelesaian ditampilkan; jika digunakan untuk ketiga kalinya, penyelesaiannya dibatalkan.

^H Menghapus karakter sebelumnya.

^J | ^M Akhir baris. Baris saat ini dibaca, diuraikan, dan dieksekusi oleh shell.

^V Literal selanjutnya. Karakter berikutnya yang diketik tidak diperlakukan secara khusus (dapat digunakan untuk
masukkan karakter yang dijelaskan di sini).

^X Perintah dan perluasan nama file (lihat di bawah).

Menempatkan editor dalam mode perintah (lihat di bawah).

Nama file opsional dan penyelesaian perintah (lihat ^F di atas), diaktifkan dengan set -o
vi-tab selesai.

Dalam mode perintah, setiap karakter ditafsirkan sebagai perintah. Karakter yang tidak
sesuai dengan perintah, merupakan kombinasi perintah yang tidak sah, atau merupakan perintah yang tidak dapat
dilakukan, semua menyebabkan bunyi bip. Dalam deskripsi perintah berikut, sebuah [n] menunjukkan
perintah dapat diawali dengan angka (mis 10l bergerak ke kanan 10 karakter); jika tidak ada nomor
awalan digunakan, n diasumsikan 1 kecuali ditentukan lain. Istilah “saat ini”
position” mengacu pada posisi antara kursor dan karakter sebelum kursor.
"Kata" adalah urutan huruf, angka, dan karakter garis bawah atau urutan non-
karakter huruf, bukan angka, bukan garis bawah, dan bukan spasi (mis. “ab2*&^” berisi dua
kata) dan "kata besar" adalah urutan karakter non-spasi.

Khusus mksh perintah vi:

Perintah berikut tidak ada di, atau berbeda dari, editor file vi normal:

[n]_ Sisipkan spasi diikuti dengan nkata besar dari perintah terakhir dalam sejarah
pada posisi saat ini dan masuk ke mode insert; jika n tidak ditentukan, yang terakhir
kata dimasukkan.

# Masukkan karakter komentar ('#') di awal baris saat ini dan kembali
garis ke shell (setara dengan saya#^J).

[n]g Suka G, kecuali jika n tidak ditentukan, itu pergi ke yang paling baru diingat
line.

[n]v Edit baris n menggunakan vi(1) editor; jika n tidak ditentukan, baris saat ini adalah
diedit. Perintah sebenarnya yang dieksekusi adalah fc -e ${VISUAL:-${EDITOR:-vi}} n.

* dan ^X Perintah atau perluasan nama file diterapkan ke kata besar saat ini (dengan
ditambahkan '*' jika kata tidak mengandung karakter file globbing) – kata besarnya adalah
diganti dengan kata-kata yang dihasilkan. Jika kata besar saat ini adalah yang pertama di
garis atau mengikuti salah satu karakter ';', '|', '&', '(', atau ')', dan tidak
berisi garis miring ('/'), maka ekspansi perintah dilakukan; jika tidak nama file
ekspansi dilakukan. Ekspansi perintah akan cocok dengan kata besar melawan semua
alias, fungsi, dan perintah bawaan serta semua file yang dapat dieksekusi yang ditemukan
dengan mencari direktori di parameter PATH. Perluasan nama file cocok
kata besar terhadap file di direktori saat ini. Setelah ekspansi,
kursor ditempatkan tepat melewati kata terakhir dan editor dalam mode insert.

[n]\, [n]^F, [n] , dan [n]
Perintah/nama file selesai. Ganti kata besar saat ini dengan yang terpanjang
kecocokan unik yang diperoleh setelah melakukan ekspansi perintah dan nama file.
hanya diakui jika vi-tab selesai opsi diatur, sementara hanya
diakui jika vi-esclengkap opsi diatur (lihat set -o). Jika n ditentukan,
itu nth kemungkinan penyelesaian dipilih (seperti yang dilaporkan oleh perintah/nama file
perintah pencacahan).

= dan ^E Perintah/pencacahan nama file. Daftar semua perintah atau file yang cocok dengan
kata besar saat ini.

^V Menampilkan versi mksh. Buffer edit saat ini dipulihkan segera setelah
tombol ditekan. Penekanan tombol pemulihan diabaikan.

@c Ekspansi makro. Jalankan perintah yang ditemukan di alias c.

Perintah gerakan intra-line:

[n]tangan [n]^H
Bergerak ke kiri n karakter.

[n]tanah [n]
Bergerak ke kanan n karakter.

0 Pindah ke kolom 0.

^ Pindah ke karakter non-spasi pertama.

[n]| Pindah ke kolom n.

$ Pindah ke karakter terakhir.

[n]b Pindah ke belakang n kata-kata.

[n]B Pindah ke belakang n kata-kata besar.

[n]e Maju ke akhir kata, n kali.

[n]E Maju ke akhir kata besar, n kali.

[n]w Maju terus n kata-kata.

[n]W Maju n kata-kata besar.

% Temukan pasangan. Editor menantikan tanda kurung, kurung siku, atau kurung kurawal terdekat
lalu pindahkan kursor ke tanda kurung, kurung siku, atau kurung kurawal yang cocok.

[n]fc Maju ke nkemunculan karakter c.

[n]Fc Pindah ke belakang ke nkemunculan karakter c.

[n]tc Maju ke depan tepat sebelum nkemunculan karakter c.

[n]Tc Bergerak mundur ke tepat sebelum nkemunculan karakter c.

[n]; Mengulang yang terakhir f, F, t, atau T perintah.

[n], Mengulangi yang terakhir f, F, t, atau T perintah, tetapi bergerak ke arah yang berlawanan.

Perintah gerakan antar baris:

[n]J, [n]+, dan [n]^N
Pindah ke nth baris berikutnya dalam sejarah.

[n]k, [n]-, dan [n]^P
Pindah ke nbaris sebelumnya dalam sejarah.

[n]G Pindah ke baris n dalam sejarah; jika n tidak ditentukan, jumlah yang pertama
baris yang diingat digunakan.

[n]g Suka G, kecuali jika n tidak ditentukan, ia menuju ke baris yang paling baru diingat.

[n]/tali
Cari mundur melalui sejarah untuk nbaris ke-th berisi tali; jika tali
dimulai dengan '^', sisa string harus muncul di awal histori
garis agar cocok.

[n]?tali
Sama dengan /, kecuali ia menelusuri sejarah.

[n]n Cari nkemunculan string pencarian terakhir; arah pencarian
sama dengan pencarian terakhir.

[n]N Cari nkemunculan string pencarian terakhir; arah pencarian
adalah kebalikan dari pencarian terakhir.

ANSI-CurUp, PC-PgUp
Ambil karakter dari awal baris ke posisi kursor saat ini sebagai
cari string dan lakukan pencarian riwayat mundur untuk baris yang dimulai dengan ini
rangkaian; menjaga posisi kursor. Ini hanya berfungsi dalam mode penyisipan dan menyimpannya
diaktifkan.

Edit perintah

[n]a Tambahkan teks n waktu; masuk ke mode insert tepat setelah posisi saat ini. Itu
tambahkan hanya direplikasi jika mode perintah dimasukkan kembali yaitu digunakan.

[n]Sama seperti a, kecuali itu ditambahkan di akhir baris.

[n]i Sisipkan teks n waktu; masuk ke mode insert pada posisi saat ini. penyisipan
hanya direplikasi jika mode perintah dimasukkan kembali yaitu digunakan.

[n]Saya Sama seperti i, kecuali penyisipan dilakukan tepat sebelum karakter non-kosong pertama.

[n]s Ganti yang berikutnya n karakter (yaitu menghapus karakter dan masuk ke insert
mode).

S Mengganti seluruh baris. Semua karakter dari karakter non-kosong pertama hingga akhir
dari baris dihapus dan mode insert dimasukkan.

[n]cpindah-cmd
Perubahan dari posisi saat ini ke posisi yang dihasilkan dari n pindah-cmds (yaitu
hapus wilayah yang ditunjukkan dan masuk ke mode insert); jika pindah-cmd is c, Baris
mulai dari karakter non-kosong pertama diubah.

C Ubah dari posisi saat ini ke akhir baris (yaitu hapus ke akhir
baris dan masuk ke mode insert).

[n]x Hapus yang berikutnya n karakter.

[n]X Hapus yang sebelumnya n karakter.

D Hapus sampai akhir baris.

[n]dpindah-cmd
Hapus dari posisi saat ini ke posisi yang dihasilkan dari n pindah-cmds;
pindah-cmd adalah perintah gerakan (lihat di atas) atau d, dalam hal ini garis saat ini adalah
dihapus.

[n]rc Ganti berikutnya n karakter dengan karakter c.

[n]R Ganti. Masuk ke mode penyisipan tetapi timpa karakter yang ada alih-alih menyisipkan
sebelum karakter yang ada. Penggantian diulang n kali.

[n]~ Ubah kasus berikutnya n karakter.

[n]ypindah-cmd
Tarik dari posisi saat ini ke posisi yang dihasilkan dari n pindah-cmds ke dalam
tarik penyangga; jika pindah-cmd is y, seluruh baris ditarik.

Y Tarik dari posisi saat ini ke akhir baris.

[n]p Tempel isi buffer yank tepat setelah posisi saat ini, n kali.

[n]P Sama seperti p, kecuali buffer ditempelkan pada posisi saat ini.

Macam-macam perintah vi

^J dan ^M
Baris saat ini dibaca, diuraikan, dan dieksekusi oleh shell.

^L dan ^R
Gambar ulang garis saat ini.

[n]. Ulangi perintah edit terakhir n kali.

u Batalkan perintah edit terakhir.

U Membatalkan semua perubahan yang telah dibuat pada baris saat ini.

PC Home, End, Del, dan tombol kursor
Mereka bergerak seperti yang diharapkan, baik dalam mode insert dan command.

intr dan berhenti
Karakter terminal interupsi dan keluar menyebabkan baris saat ini dihapus dan
prompt baru untuk dicetak.

Gunakan mksh online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

  • 1
    Alt-f
    Alt-f
    Alt-F menyediakan sumber terbuka dan gratis
    firmware alternatif untuk DLINK
    DNS-320/320L/321/323/325/327L and
    DNR-322L. Alt-F memiliki Samba dan NFS;
    mendukung ext2/3/4...
    Unduh Alt-F
  • 2
    usm
    usm
    Usm adalah paket slackware terpadu
    manajer yang menangani otomatis
    resolusi ketergantungan. Ini menyatukan
    berbagai repositori paket termasuk
    slackware, slacky, p ...
    Unduh usm
  • 3
    Chart.js
    Chart.js
    Chart.js adalah pustaka Javascript yang
    memungkinkan desainer dan pengembang untuk menggambar
    semua jenis bagan menggunakan HTML5
    elemen kanvas. Chart js menawarkan yang hebat
    Himpunan ...
    Unduh Chart.js
  • 4
    iReport-Designer untuk JasperReports
    iReport-Designer untuk JasperReports
    CATATAN: Dukungan iReport/Jaspersoft Studio
    Pengumuman: Pada versi 5.5.0,
    Jaspersoft Studio akan menjadi yang resmi
    klien desain untuk JasperReports. saya melapor
    akan...
    Unduh iReport-Designer untuk JasperReports
  • 5
    PascaInstallerF
    PascaInstallerF
    PostInstallerF akan menginstal semua
    perangkat lunak yang Fedora Linux dan lain-lain
    tidak termasuk secara default, setelah
    menjalankan Fedora untuk pertama kalinya. Nya
    mudah untuk...
    Unduh PostInstallerF
  • 6
    jejak
    jejak
    Proyek strace telah dipindahkan ke
    https://strace.io. strace is a
    diagnostik, debugging dan instruksional
    pelacak ruang pengguna untuk Linux. Ini digunakan
    untuk memantau...
    Unduh strace.dll
  • Lebih banyak lagi »

Perintah Linux

Ad