Ini adalah perintah rcplan9 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
rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, ., ~ - bahasa perintah
RINGKASAN
rc [ -srdiIlxepvV ] [ -c Command ] [ fillet [ arg ... ]]
DESKRIPSI
Rc adalah cangkang Rencana 9. Itu mengeksekusi baris perintah yang dibaca dari terminal atau file atau, dengan
itu -c bendera, dari rc's daftar argumen.
perintah Garis
Baris perintah adalah urutan perintah, dipisahkan oleh ampersand atau titik koma (& or ;),
diakhiri oleh baris baru. Perintah dijalankan secara berurutan dari kiri ke kanan. Rc
tidak menunggu perintah diikuti oleh & untuk menyelesaikan eksekusi sebelum memulai
perintah berikut. Setiap kali perintah diikuti oleh & dieksekusi, id prosesnya adalah
ditugaskan ke rc variabel $apid. Kapanpun ada perintah tidak diikuti oleh & keluar atau sedang
dihentikan, rc variabel $status mendapatkan pesan tunggu proses (lihat menunggu(3)); itu akan
menjadi string nol jika perintah berhasil.
Baris perintah yang panjang dapat dilanjutkan pada baris berikutnya dengan mengetikkan garis miring terbalik (\)
diikuti oleh baris baru. Urutan ini diperlakukan seolah-olah itu kosong. Garis miring terbalik adalah
tidak sebaliknya karakter khusus.
Tanda bilangan (#) dan karakter berikut hingga (tetapi tidak termasuk) baris baru berikutnya
diabaikan, kecuali dalam tanda petik.
Sederhana Perintah
Perintah sederhana adalah urutan argumen yang diselingi dengan pengalihan I/O. jika
argumen pertama adalah nama an rc fungsi atau salah satu dari rc's perintah bawaan, itu adalah
dieksekusi oleh rc. Sebaliknya jika nama dimulai dengan garis miring (/), itu harus nama jalur
dari program yang akan dijalankan. Nama yang tidak mengandung garis miring akan dicari di a
daftar nama direktori yang disimpan di $jalan. File eksekusi pertama dari nama yang diberikan
ditemukan di direktori di $jalan adalah program yang akan dijalankan. Agar dapat dieksekusi, pengguna
harus memiliki izin eksekusi (lihat Stat(3)) dan file harus berupa executable
biner untuk jenis CPU mesin saat ini, atau skrip shell. Skrip shell dimulai dengan a
baris yang berisi nama path lengkap dari shell (biasanya /bin/rc), diawali dengan
Kata pertama dari perintah sederhana tidak dapat menjadi kata kunci kecuali jika dikutip atau sebaliknya
disamarkan. Kata kuncinya adalah
untuk sementara jika tidak beralih fn ~ ! @
kasus dan Variabel
Sejumlah konstruksi dapat digunakan di mana: rc's sintaks membutuhkan argumen untuk muncul.
Dalam banyak kasus, nilai konstruksi akan menjadi daftar argumen daripada satu
String.
Jenis argumen yang paling sederhana adalah kata yang tidak dikutip: urutan satu atau lebih karakter
tidak ada yang kosong, tab, baris baru, atau salah satu dari berikut ini:
# ; & | ^ $ = ` ' { } ( ) < >
Kata tanpa tanda kutip yang mengandung salah satu karakter * ? [ adalah pola untuk mencocokkan
terhadap nama file. karakter * cocok dengan urutan karakter apa pun, ? cocok dengan apa saja
karakter tunggal, dan [kelas] cocok dengan karakter apa pun di kelas. Jika karakter pertama
of kelas is ~, kelas dilengkapi. NS kelas mungkin juga berisi pasangan karakter
dipisahkan oleh -, mewakili semua karakter secara leksikal di antara keduanya. karakter /
harus muncul secara eksplisit dalam suatu pola, seperti halnya karakter pertama dari nama jalur
komponen . dan ... Sebuah pola diganti dengan daftar argumen, satu untuk setiap jalur
nama cocok, kecuali bahwa pola yang cocok tanpa nama tidak digantikan oleh daftar kosong,
melainkan berdiri sendiri. Pencocokan pola dilakukan setelah semua operasi lainnya. Dengan demikian,
x=/ Tmp gema $x^/*.c
korek api / tmp /*.C, daripada mencocokkan /*.C dan kemudian awalan / Tmp.
Kata yang dikutip adalah urutan karakter yang dikelilingi oleh tanda kutip tunggal ('). Sebuah kutipan
diwakili dalam kata yang dikutip oleh sepasang tanda kutip ('').
Masing-masing dari berikut ini adalah argumen.
(argumen)
Nilai dari urutan argumen yang diapit dalam tanda kurung adalah daftar yang terdiri dari:
anggota dari setiap elemen barisan. Daftar argumen tidak memiliki rekursif
struktur, meskipun sintaks mereka mungkin menyarankan itu. Berikut ini sepenuhnya
setara:
gema hai semuanya
((gema) (halo) semuanya)
$argumen
$argumen(subskrip)
The argumen setelah $ adalah nama variabel yang nilainya disubstitusikan.
Berbagai tingkat tipuan dimungkinkan, tetapi utilitasnya dipertanyakan. Variabel
nilai adalah daftar string. Jika argumen adalah angka n, nilainya adalah nth
elemen dari $*, kecuali kalau $* tidak memiliki n elemen, dalam hal ini nilainya kosong.
If argumen diikuti oleh daftar subskrip yang dikurung, nilainya
diganti adalah daftar yang terdiri dari elemen yang diminta (asal 1). NS
kurung harus mengikuti nama variabel tanpa spasi. Berlangganan juga dapat mengambil
formulir m-n or m- untuk menunjukkan urutan elemen. Tugas ke variabel
dijelaskan di bawah ini.
$#argumen
Nilai adalah jumlah elemen dalam variabel bernama. Sebuah variabel tidak pernah
diberi nilai memiliki elemen nol.
$"argumen
Nilainya adalah string tunggal yang berisi komponen dari variabel bernama
dipisahkan oleh spasi. Variabel dengan elemen nol menghasilkan string kosong.
`{Command}
rc mengeksekusi Command dan membaca output standarnya, membaginya menjadi daftar
argumen, menggunakan karakter dalam $jika sebagai pemisah. Jika $jika tidak diatur sebaliknya,
nilainya adalah ' \t\n'.
<{Command}
>{Command}
The Command dijalankan secara asinkron dengan output standar atau input standarnya
terhubung ke pipa. Nilai argumen adalah nama file yang merujuk ke
ujung pipa yang lain. Hal ini memungkinkan pembangunan jaringan pipa non-linier.
Misalnya, berikut ini menjalankan dua perintah: tua dan yang baru dan menggunakan CMP untuk membandingkan
keluaran mereka
cmp <{lama} {}baru}
argumen^argumen
The ^ operator menggabungkan dua operandnya. Jika kedua operan memiliki nilai yang sama
jumlah komponen, mereka digabungkan berpasangan. Jika tidak, maka satu operan
harus memiliki satu komponen, dan yang lainnya harus tidak kosong, dan penggabungannya adalah
distributif.
Gratis tanda sisipan
Dalam banyak situasi, rc akan memasukkan ^ operator secara otomatis di antara kata-kata yang
tidak dipisahkan oleh spasi. Kapanpun salah satu dari $ ' ` mengikuti kata yang dikutip atau tidak dikutip atau
kata yang tidak dikutip mengikuti kata yang dikutip tanpa jeda atau tab yang mengganggu, a ^ dimasukkan
antara keduanya. Jika kata yang tidak dikutip segera mengikuti a $ dan mengandung karakter
selain alfanumerik, garis bawah, atau *, Sebuah ^ dimasukkan sebelum yang pertama seperti
karakter. Dengan demikian
cc -$bendera $batang.c
adalah setara dengan
cc -^$bendera $batang^.c
I / O pengalihan
Urutannya >fillet mengalihkan file output standar (deskriptor file 1, biasanya
terminal) ke yang bernama fillet; >>fillet menambahkan output standar ke file. Standar
file input (deskriptor file 0, juga biasanya terminal) dapat dialihkan dari file
menurut urutannya <fillet, atau dari `dokumen di sini' sebaris dengan urutan <<eof-penanda.
Isi dokumen di sini adalah baris teks yang diambil dari aliran input perintah ke atas
ke baris yang tidak berisi apa-apa selain eof-penanda, yang dapat berupa kutipan atau tanpa kutipan
kata. Jika eof-penanda tidak dikutip, nama variabel dari formulir $kata memiliki nilai-nilai mereka
diganti dari rc's lingkungan. Jika $kata diikuti oleh tanda sisipan (^), tanda sisipan adalah
dihapus. Jika eof-penanda dikutip, tidak ada substitusi yang terjadi.
Pengalihan dapat diterapkan ke deskriptor file selain input atau output standar dengan:
kualifikasi operator pengalihan dengan nomor dalam tanda kurung siku. Misalnya,
keluaran diagnostik (deskriptor file 2) dapat diarahkan dengan menulis cc sampah.c >[2]sampah.
Deskriptor file dapat diarahkan ke deskriptor yang sudah terbuka dengan menulis >[fd0=fd1] or
<[fd0=fd1]. Fd1 adalah deskriptor file yang dibuka sebelumnya dan fd0 menjadi salinan baru (dalam
rasa dup(3)) itu. Deskriptor file dapat ditutup dengan menulis >[fd0=] or <[fd0=].
Redirection dieksekusi dari kiri ke kanan. Karena itu, cc sampah.c > / dev / null >[2=1] dan
cc sampah.c >[2=1] > / dev / null memiliki efek yang berbeda: yang pertama memasukkan keluaran standar
/ dev / null dan kemudian menempatkan keluaran diagnostik di tempat yang sama, di mana yang kedua mengarahkan
keluaran diagnostik ke terminal dan mengirimkan keluaran standar ke / dev / null.
Senyawa Perintah
Sepasang perintah yang dipisahkan oleh operator pipa (|) adalah perintah. Keluaran standar dari
perintah kiri dikirim melalui pipa ke input standar dari perintah kanan. NS
operator pipa dapat didekorasi untuk menggunakan deskriptor file yang berbeda. |[fd] menghubungkan
keluaran ujung pipa ke deskriptor file fd daripada 1. |[fd0=fd1] menghubungkan keluaran ke
fd1 dari perintah kiri dan masukan ke fd0 dari perintah yang benar.
Sepasang perintah dipisahkan oleh && or || adalah sebuah perintah. Dalam kedua kasus, perintah kiri
dijalankan dan status keluarnya diperiksa. Jika operatornya adalah && perintah yang benar adalah
dieksekusi jika status perintah kiri adalah nol. || menyebabkan perintah yang benar dieksekusi
jika status perintah kiri adalah non-null.
Status keluar dari suatu perintah dapat dibalik (non-null diubah menjadi null, null diubah
ke non-null) dengan mendahuluinya dengan a !.
The | operator memiliki prioritas tertinggi, dan asosiatif kiri (yaitu mengikat lebih erat ke
kiri daripada kanan). ! memiliki prioritas menengah, dan && dan || memiliki yang terendah
hak lebih tinggi.
unary @ operator, dengan prioritas sama dengan !, menyebabkan operandnya dieksekusi dalam a
subkulit.
Masing-masing dari berikut ini adalah perintah.
if ( daftar ) Command
A daftar adalah urutan perintah, dipisahkan oleh &, ;, atau baris baru. Itu dieksekusi
dan jika status keluarnya nol, Command dieksekusi.
if tidak Command
Perintah sebelumnya pasti jika(daftar) Command. Jika itu
kondisinya bukan nol, Command dieksekusi.
untuk(nama in argumen) Command
untuk(nama) Command
The Command dieksekusi sekali untuk setiap argumen dengan argumen yang ditugaskan untuk nama.
Jika daftar argumen dihilangkan, $* digunakan.
ketika (daftar) Command
The daftar dieksekusi berulang kali hingga status keluarnya non-null. Setiap kali itu
mengembalikan status nol, Command dieksekusi. Sebuah kosong daftar diambil untuk memberikan null
status.
beralih (argumen){daftar}
The daftar mencari perintah sederhana yang dimulai dengan kata kasus. (Pencarian
hanya di `tingkat atas' dari daftar. Itu adalah, kasus dalam konstruksi bersarang adalah
tidak ditemukan.) Argumen dicocokkan dengan setiap kata berikut kasus menggunakan
algoritma pencocokan pola yang dijelaskan di atas, kecuali bahwa / dan karakter pertama
of . dan .. tidak perlu dicocokkan secara eksplisit. Saat kecocokan ditemukan, perintah di
daftar dijalankan hingga berikut ini kasus perintah (di tingkat atas) atau
kurung tutup.
{daftar}
Kawat gigi berfungsi untuk mengubah pengelompokan perintah yang tersirat oleh prioritas operator. NS
tubuh adalah urutan perintah yang dipisahkan oleh &, ;, atau baris baru.
fn nama{daftar}
fn nama
Bentuk pertama mendefinisikan fungsi dengan yang diberikan nama. Selanjutnya, setiap kali
perintah yang argumen pertamanya adalah nama ditemui, nilai saat ini dari
sisa dari daftar argumen perintah akan ditugaskan ke $*, setelah menyimpannya
nilai saat ini, dan rc akan mengeksekusi daftar. Bentuk kedua menghapus nama's
definisi fungsi.
fn mencatat{daftar}
fn mencatat
Sebuah fungsi dengan nama khusus akan dipanggil ketika rc menerima yang sesuai
catatan; Lihat memberitahukan(3). Nama catatan yang valid (dan catatan yang sesuai) adalah menghela nafas
(Tutup Telepon), tanda tangan (mengganggu), sigalrm (alarm), Dan sigfpe (perangkap titik mengambang).
Secara default rc keluar saat menerima sinyal apa pun, kecuali saat dijalankan secara interaktif, di
kasus mana yang menyela dan berhenti biasanya menyebabkan rc untuk menghentikan apa pun yang dilakukannya dan
mulai membaca perintah baru. Bentuk kedua menyebabkan rc untuk menangani sinyal di
cara default. Rc mengenali catatan buatan, sigexit, yang terjadi saat rc is
akan menyelesaikan eksekusi.
nama=argumen Command
Perintah apa pun dapat didahului oleh urutan tugas yang diselingi dengan
pengalihan. Penugasan tetap berlaku sampai akhir perintah,
kecuali perintahnya kosong (yaitu tugas berdiri sendiri), dalam hal ini mereka
berlaku sampai dibatalkan oleh penugasan selanjutnya.
Built-in Perintah
Perintah-perintah ini dijalankan secara internal oleh rc, biasanya karena eksekusinya berubah atau
tergantung pada rckeadaan internalnya.
. fillet ...
Jalankan perintah dari fillet. $* diatur untuk durasi ke sisa
daftar argumen berikut: fillet. File dicari menggunakan $jalan.
builtin Command ...
Eksekusi Command seperti biasa kecuali bahwa fungsi apa pun bernama Command diabaikan demi
dari makna bawaan.
cd [dir]
Ubah direktori saat ini menjadi dir. Argumen defaultnya adalah $rumah. dir is
dicari di setiap direktori yang disebutkan di $jalur cd.
evaluasi [arg ...]
Argumen digabungkan dipisahkan oleh spasi menjadi satu string, dibaca sebagai
masukan ke rc, dan dieksekusi.
eksekutif [Command ...]
Contoh ini dari rc menggantikan dirinya dengan yang diberikan (non-built-in) Command.
bendera f [+-]
Baik set (+), jernih (-), atau uji (tidak + maupun -) bendera f, Di mana f adalah
karakter tunggal, salah satu flag baris perintah (lihat Doa, di bawah).
keluar [status]
Keluar dengan status keluar yang diberikan. Jika tidak ada yang diberikan, nilai saat ini dari $status is
bekas.
garpu [nNeEsfFm]
Menjadi grup proses baru menggunakan garpu (bendera) dimana bendera terdiri dari
bitwise ATAU dari garpu bendera yang ditentukan oleh huruf opsi (lihat garpu(2)). Jika tidak
bendera diberikan, mereka default ke ens. itu bendera dan artinya adalah: n is
RFNAMEG; N is RFCNAMEG; e is RFENVG; E is RFCENVG; s is RFNOTEG; f is RFFDG; F is
RFCFDG; Dan m is RFNOMNT.
bergeser [n]
Hapus yang pertama n (default 1) elemen dari $*.
menunggu [pid]
Tunggu proses dengan yang diberikan pid untuk keluar. Jika tidak pid diberikan, semua
proses yang luar biasa ditunggu.
apa yang nama ...
Cetak nilai masing-masing nama dalam bentuk yang cocok untuk masukan ke rc. Keluarannya adalah
penugasan ke variabel apa pun, definisi fungsi apa pun, panggilan ke builtin untuk
perintah bawaan apa pun, atau nama path lengkap dari file yang dapat dieksekusi.
~ subyek belt hold ...
The subyek dicocokkan dengan masing-masing belt hold berurutan. Jika cocok dengan apapun
pola, $status diatur ke nol. Sebaliknya, $status diatur ke satu. Pola adalah
sama seperti untuk pencocokan nama file, kecuali bahwa / dan karakter pertama dari . dan
.. tidak perlu dicocokkan secara eksplisit. NS pola tidak dikenakan nama file
pencocokan sebelum ~ perintah dieksekusi, jadi mereka tidak perlu dilampirkan
tanda kutip.
Lingkungan Hidup
The lingkungan Hidup adalah daftar string yang tersedia untuk mengeksekusi binari oleh kernel.
Rc membuat entri lingkungan untuk setiap variabel yang nilainya tidak kosong, dan untuk setiap
fungsi. String untuk entri variabel memiliki nama variabel diikuti oleh = dan perusahaan
nilai. Jika nilai memiliki lebih dari satu komponen, ini dipisahkan oleh SOH (001)
karakter. String untuk suatu fungsi hanyalah rc masukan yang mendefinisikan fungsi.
Nama fungsi di lingkungan adalah nama fungsi yang didahului oleh
Ketika rc mulai mengeksekusi itu membaca definisi variabel dan fungsi dari lingkungannya.
Khusus Variabel
Variabel berikut diatur atau digunakan oleh rc.
$* Mulai rcdaftar argumen selama inisialisasi. Kapanpun . perintah atau
fungsi dijalankan, nilai saat ini disimpan dan $* menerima argumen baru
Daftar. Nilai yang disimpan dikembalikan setelah menyelesaikan . atau fungsi.
$apid Setiap kali suatu proses dimulai secara tidak sinkron dengan &, $apid diatur ke prosesnya
id.
$rumah Direktori default untuk cd.
$jika Pemisah kolom input yang digunakan dalam substitusi backquote. Jika $jika tidak disetel
in rclingkungan, itu diinisialisasi ke kosong, tab dan baris baru.
$jalan Jalur pencarian yang digunakan untuk menemukan perintah dan memasukkan file untuk . memerintah. Jika tidak
diatur di lingkungan, ini diinisialisasi dengan mengurai $ PATH variabel (seperti dalam
sh(1)) atau oleh jalan=(. /tempat sampah). Variabel $jalan dan $ PATH dipertahankan
bersama-sama: perubahan satu akan tercermin dalam yang lain.
$pid Setel selama inisialisasi ke rcid proses.
$cepat Ketika rc dijalankan secara interaktif, komponen pertama dari $cepat dicetak sebelumnya
membaca setiap perintah. Komponen kedua dicetak setiap kali baris baru
diketik dan lebih banyak baris diperlukan untuk menyelesaikan perintah. Jika tidak diatur dalam
lingkungan, ini diinisialisasi oleh cepat=('% ' ' ').
$status Atur ke pesan tunggu dari program yang terakhir dieksekusi. (kecuali dimulai dengan &).
! dan ~ juga berubah $status. Nilainya digunakan untuk mengontrol eksekusi di &&, ||,
if dan sementara perintah. Kapan rc keluar di akhir file inputnya atau saat dieksekusi
an keluar perintah tanpa argumen, $status adalah status keluarnya.
Doa
If rc dimulai tanpa argumen, ia membaca perintah dari input standar. Jika tidak
argumen non-flag pertama adalah nama file untuk membaca perintah (tapi lihat -c
di bawah). Argumen selanjutnya menjadi nilai awal dari $*. Rc menerima berikut ini
bendera baris perintah.
-c string Perintah dibaca dari string.
-s Cetak status keluar setelah perintah apa pun yang statusnya bukan nol.
-e Keluar jika $status adalah non-null setelah menjalankan perintah sederhana.
-i If -i hadir, atau rc tidak diberikan argumen dan input standarnya adalah a
terminal, itu berjalan secara interaktif. Perintah diminta untuk menggunakan $cepat.
-I Memastikan rc tidak berjalan secara interaktif.
-l If -l diberikan atau karakter pertama dari argumen nol adalah -, rc membaca perintah
dari $home/lib/profil, jika ada, sebelum membaca input normalnya.
-p Tidak ada operasi.
-d Tidak ada operasi.
-v Masukan gema pada deskriptor file 2 saat dibaca.
-x Cetak setiap perintah sederhana sebelum menjalankannya.
-r Cetak informasi debug (bentuk internal perintah saat dijalankan).
SOURCE
/src/cmd/rc
Gunakan rcplan9 online menggunakan layanan onworks.net