ນີ້ແມ່ນຄໍາສັ່ງ rcplan9 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, ., ~ - command language
ສະຫຼຸບສັງລວມ
rc [ -srdiIlxepvV ] [ -c ຄໍາສັ່ງ ] [ ເອກະສານ [ arg ... ]]
ລາຍລະອຽດ
Rc ແມ່ນແຜນການ 9 shell. ມັນປະຕິບັດຄໍາສັ່ງທີ່ອ່ານຈາກ terminal ຫຼືໄຟລ໌ຫຼື, ກັບ
ໄດ້ -c ທຸງ, ຈາກ rc ຂອງ ບັນຊີລາຍຊື່ການໂຕ້ຖຽງ.
ຄໍາສັ່ງ ເສັ້ນ
ເສັ້ນຄໍາສັ່ງແມ່ນລໍາດັບຂອງຄໍາສັ່ງ, ແຍກໂດຍ ampersands ຫຼື semicolons (& or ;),
ສິ້ນສຸດໂດຍແຖວໃໝ່. ຄໍາສັ່ງຖືກປະຕິບັດຕາມລໍາດັບຈາກຊ້າຍຫາຂວາ. Rc
ບໍ່ໄດ້ລໍຖ້າຄໍາສັ່ງທີ່ປະຕິບັດຕາມໂດຍ & ເພື່ອໃຫ້ສໍາເລັດການປະຕິບັດກ່ອນທີ່ຈະເລີ່ມຕົ້ນ
ປະຕິບັດຕາມຄໍາສັ່ງ. ເມື່ອໃດກໍ່ຕາມຄໍາສັ່ງປະຕິບັດຕາມໂດຍ & ຖືກປະຕິບັດ, id ຂະບວນການຂອງມັນ
ມອບ ໝາຍ ໃຫ້ rc ຕົວແປ $apid. ເມື່ອໃດກໍຕາມຄໍາສັ່ງ ບໍ່ ປະຕິບັດຕາມໂດຍ & ອອກຈາກຫຼືແມ່ນ
ສິ້ນສຸດລົງ, ໄດ້ rc ຕົວແປ $ສະຖານະ ໄດ້ຮັບຂໍ້ຄວາມລໍຖ້າຂະບວນການ (ເບິ່ງ ລໍຖ້າ(3)); ມັນຈະ
ເປັນສະຕຣິງ null ຖ້າຄໍາສັ່ງປະສົບຜົນສໍາເລັດ.
ແຖວຄໍາສັ່ງຍາວອາດຈະຖືກສືບຕໍ່ຢູ່ໃນແຖວຕໍ່ໄປໂດຍການພິມ backslash (\)
ຕິດຕາມດ້ວຍແຖວໃໝ່. ລໍາດັບນີ້ຖືກປະຕິບັດຄືກັບວ່າມັນເປັນບ່ອນຫວ່າງເປົ່າ. Backslash ແມ່ນ
ບໍ່ດັ່ງນັ້ນເປັນລັກສະນະພິເສດ.
ເຄື່ອງໝາຍເລກ (#) ແລະຕົວອັກສອນຕໍ່ໄປນີ້ເຖິງ (ແຕ່ບໍ່ລວມ) ແຖວໃໝ່ຕໍ່ໄປ
ຖືກລະເລີຍ, ຍົກເວັ້ນໃນເຄື່ອງໝາຍວົງຢືມ.
ງ່າຍດາຍ ຄໍາສັ່ງ
ຄໍາສັ່ງທີ່ງ່າຍດາຍແມ່ນລໍາດັບຂອງ arguments interspersed ກັບ I/O redirections. ຖ້າ
ການໂຕ້ຖຽງທໍາອິດແມ່ນຊື່ຂອງ rc ການທໍາງານຫຼືຫນຶ່ງຂອງ rc ຂອງ ຄໍາສັ່ງກໍ່ສ້າງໃນ, ມັນແມ່ນ
ປະຕິບັດໂດຍ rc. ຖ້າບໍ່ດັ່ງນັ້ນຖ້າຊື່ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງ ໝາຍ (./), ມັນຕ້ອງເປັນຊື່ເສັ້ນທາງ
ຂອງໂຄງການທີ່ຈະປະຕິບັດ. ຊື່ທີ່ບໍ່ມີຕົວຫຍໍ້ແມ່ນຊອກຫາຢູ່ໃນ a
ບັນຊີລາຍຊື່ຂອງລາຍຊື່ໄດເລກະທໍລີທີ່ເກັບໄວ້ໃນ $path. ໄຟລ໌ທໍາອິດທີ່ສາມາດປະຕິບັດໄດ້ຂອງຊື່ທີ່ໃຫ້
ພົບເຫັນຢູ່ໃນໄດເລກະທໍລີໃນ $path ແມ່ນໂຄງການທີ່ຈະປະຕິບັດ. ເພື່ອໃຫ້ສາມາດປະຕິບັດໄດ້, ຜູ້ໃຊ້
ຕ້ອງມີການອະນຸຍາດປະຕິບັດ (ເບິ່ງ ລັດ(3)) ແລະໄຟລ໌ຕ້ອງເປັນອັນໜຶ່ງທີ່ສາມາດປະຕິບັດໄດ້
ໄບນາຣີສຳລັບປະເພດ CPU ຂອງເຄື່ອງປະຈຸບັນ, ຫຼືສະຄຣິບແກະ. Shell scripts ເລີ່ມຕົ້ນດ້ວຍ a
ເສັ້ນທີ່ມີຊື່ເສັ້ນທາງເຕັມຂອງແກະ (ປົກກະຕິແລ້ວ /bin/rc), ຄໍານໍາຫນ້າໂດຍ
ຄໍາທໍາອິດຂອງຄໍາສັ່ງທີ່ງ່າຍດາຍບໍ່ສາມາດເປັນຄໍາສໍາຄັນເວັ້ນເສຍແຕ່ວ່າມັນຈະຖືກອ້າງອີງຫຼືຖ້າບໍ່ດັ່ງນັ້ນ
ປອມຕົວ. ຄໍາສໍາຄັນແມ່ນ
ສໍາລັບໃນຂະນະທີ່ຖ້າຫາກວ່າບໍ່ປ່ຽນ fn ~ ! @
Arguments ແລະ Variables
ຈໍານວນການກໍ່ສ້າງອາດຈະຖືກນໍາໃຊ້ຢູ່ບ່ອນໃດ rc ຂອງ syntax ຮຽກຮ້ອງໃຫ້ມີການໂຕ້ຖຽງທີ່ຈະປາກົດ.
ໃນຫຼາຍໆກໍລະນີ, ມູນຄ່າຂອງການກໍ່ສ້າງຈະເປັນບັນຊີລາຍຊື່ຂອງການໂຕ້ຖຽງແທນທີ່ຈະເປັນອັນດຽວ
string
ປະເພດຂອງການໂຕ້ຖຽງທີ່ງ່າຍດາຍທີ່ສຸດແມ່ນຄໍາທີ່ບໍ່ໄດ້ອ້າງອີງ: ລໍາດັບຂອງຫນຶ່ງຫຼືຫຼາຍຕົວອັກສອນ
ບໍ່ມີອັນໃດເປັນແຖບຫວ່າງ, ແຖບ, ແຖວໃໝ່, ຫຼືອັນໃດຕໍ່ໄປນີ້:
# ; & | ^ $ = ` ' { } ( ) < >
ຄຳສັບທີ່ບໍ່ໄດ້ອ້າງອີງເຊິ່ງປະກອບດ້ວຍຕົວອັກສອນໃດນຶ່ງ * ? [ ແມ່ນຮູບແບບສໍາລັບການຈັບຄູ່
ຕໍ່ກັບຊື່ໄຟລ໌. ລັກສະນະ * ກົງກັບລໍາດັບຂອງຕົວອັກສອນໃດຫນຶ່ງ, ? ກົງກັບອັນໃດນຶ່ງ
ລັກສະນະດຽວ, ແລະ [ລະດັບ] ກົງກັບລັກສະນະໃດນຶ່ງໃນ ລະດັບ. ຖ້າລັກສະນະທໍາອິດ
of ລະດັບ is ~, ຫ້ອງຮຽນແມ່ນໃຫ້ສົມບູນ. ໄດ້ ລະດັບ ອາດຈະປະກອບດ້ວຍຄູ່ຂອງຕົວອັກສອນ
ແຍກໂດຍ -, ຢືນສໍາລັບຕົວອັກສອນທັງຫມົດ lexically ລະຫວ່າງສອງ. ລັກສະນະ /
ຕ້ອງປາກົດຢ່າງຈະແຈ້ງຢູ່ໃນຮູບແບບໃດໜຶ່ງ, ຄືກັບຕົວອັກສອນທຳອິດຂອງຊື່ເສັ້ນທາງ
ອົງປະກອບ . ແລະ ... ຮູບແບບຖືກແທນທີ່ດ້ວຍບັນຊີລາຍຊື່ຂອງການໂຕ້ຖຽງ, ຫນຶ່ງສໍາລັບແຕ່ລະເສັ້ນທາງ
ຊື່ກົງກັນ, ຍົກເວັ້ນວ່າຮູບແບບທີ່ກົງກັນບໍ່ມີຊື່ບໍ່ໄດ້ຖືກແທນທີ່ດ້ວຍບັນຊີລາຍຊື່ເປົ່າ,
ແຕ່ແທນທີ່ຈະຢືນຢູ່ກັບຕົວມັນເອງ. ການຈັບຄູ່ຮູບແບບແມ່ນເຮັດຫຼັງຈາກການດໍາເນີນງານອື່ນໆທັງຫມົດ. ດັ່ງນັ້ນ,
x=/ tmp ສະທ້ອນ $x^/*.c
ກົງກັນ / tmp /*.ຄ, ແທນທີ່ຈະກົງກັນ /*.c ແລະຫຼັງຈາກນັ້ນ prefixing / tmp.
ຄຳສັບທີ່ອ້າງອີງແມ່ນລຳດັບຂອງຕົວອັກສອນທີ່ອ້ອມຮອບດ້ວຍວົງຢືມດຽວ ('). ຄໍາເວົ້າດຽວ
ແມ່ນສະແດງຢູ່ໃນຄໍາທີ່ອ້າງອີງໂດຍຄູ່ຂອງວົງຢືມ ('').
ແຕ່ລະອັນຕໍ່ໄປນີ້ແມ່ນການໂຕ້ຖຽງ.
(ກະທູ້ທີ່)
ຄ່າຂອງລຳດັບຂອງອາກິວເມັນທີ່ຕິດຢູ່ໃນວົງເລັບແມ່ນລາຍການທີ່ປະກອບດ້ວຍ
ສະມາຊິກຂອງແຕ່ລະອົງປະກອບຂອງລໍາດັບ. ລາຍຊື່ການໂຕ້ຖຽງບໍ່ມີ recursive
ໂຄງສ້າງ, ເຖິງແມ່ນວ່າ syntax ຂອງພວກເຂົາອາດຈະແນະນໍາມັນ. ຕໍ່ໄປນີ້ແມ່ນທັງຫມົດ
ທຽບເທົ່າ:
echo ສະບາຍດີທຸກຄົນ
((ສຽງ) (ສະບາຍດີທຸກຄົນ)
$ການໂຕ້ຖຽງ
$ການໂຕ້ຖຽງ(ຕົວຫ້ອຍ)
ໄດ້ ການໂຕ້ຖຽງ ຫຼັງຈາກ $ ແມ່ນຊື່ຂອງຕົວແປທີ່ຄ່າຖືກແທນທີ່.
ຫຼາຍລະດັບຂອງທາງອ້ອມແມ່ນເປັນໄປໄດ້, ແຕ່ເປັນປະໂຫຍດທີ່ຫນ້າສົງໄສ. ຕົວແປ
ຄ່າແມ່ນລາຍຊື່ຂອງສະຕຣິງ. ຖ້າ ການໂຕ້ຖຽງ ເປັນຕົວເລກ n, ມູນຄ່າແມ່ນ nth
ອົງປະກອບຂອງ $*, ເວັ້ນເສຍແຕ່ $* ບໍ່ມີ n ອົງປະກອບ, ໃນກໍລະນີນີ້ຄ່າແມ່ນຫວ່າງເປົ່າ.
If ການໂຕ້ຖຽງ ແມ່ນຕິດຕາມດ້ວຍບັນຊີລາຍຊື່ວົງເລັບຂອງ subscripts, ມູນຄ່າ
ການທົດແທນແມ່ນບັນຊີລາຍຊື່ທີ່ປະກອບດ້ວຍອົງປະກອບທີ່ຮ້ອງຂໍ (ຕົ້ນກໍາເນີດ 1). ໄດ້
ວົງເລັບຕ້ອງປະຕິບັດຕາມຊື່ຕົວແປທີ່ບໍ່ມີຊ່ອງຫວ່າງ. Subscripts ຍັງສາມາດໃຊ້ເວລາ
ແບບຟອມ m-n or m- ເພື່ອຊີ້ບອກລໍາດັບຂອງອົງປະກອບ. ການມອບຫມາຍໃຫ້ຕົວແປ
ຖືກອະທິບາຍຂ້າງລຸ່ມນີ້.
$#ການໂຕ້ຖຽງ
ຄ່າແມ່ນຈໍານວນອົງປະກອບໃນຕົວແປທີ່ມີຊື່. ຕົວແປບໍ່ເຄີຍ
ການມອບໝາຍຄ່າມີສູນອົງປະກອບ.
$"ການໂຕ້ຖຽງ
ຄ່າແມ່ນສະຕຣິງດຽວທີ່ມີອົງປະກອບຂອງຕົວແປທີ່ມີຊື່
ແຍກອອກໂດຍຊ່ອງຫວ່າງ. ຕົວແປທີ່ມີອົງປະກອບສູນໃຫ້ສະຕຣິງຫວ່າງເປົ່າ.
`{ຄໍາສັ່ງ}
rc ປະຕິບັດການ ຄໍາສັ່ງ ແລະອ່ານຜົນຜະລິດມາດຕະຖານຂອງຕົນ, ແບ່ງອອກເປັນບັນຊີລາຍຊື່ຂອງ
ການໂຕ້ຖຽງ, ການນໍາໃຊ້ຕົວອັກສອນໃນ $ifs ເປັນຕົວແຍກ. ຖ້າ $ifs ບໍ່ໄດ້ຖືກຕັ້ງໄວ້ເປັນຢ່າງອື່ນ,
ມູນຄ່າຂອງມັນແມ່ນ ' \t\n'.
<{ຄໍາສັ່ງ}
>{ຄໍາສັ່ງ}
ໄດ້ ຄໍາສັ່ງ ຖືກປະຕິບັດ asynchronous ກັບຜົນຜະລິດມາດຕະຖານຫຼືວັດສະດຸປ້ອນມາດຕະຖານຂອງມັນ
ເຊື່ອມຕໍ່ກັບທໍ່. ມູນຄ່າຂອງການໂຕ້ຖຽງແມ່ນຊື່ຂອງໄຟລ໌ທີ່ອ້າງອີງເຖິງ
ປາຍອື່ນໆຂອງທໍ່. ນີ້ອະນຸຍາດໃຫ້ການກໍ່ສ້າງທໍ່ທີ່ບໍ່ແມ່ນເສັ້ນ.
ຕົວຢ່າງ, ຕໍ່ໄປນີ້ແລ່ນສອງຄໍາສັ່ງ ອາຍຸ ແລະ ໃຫມ່ ແລະການນໍາໃຊ້ cmp ການປຽບທຽບ
ຜົນຜະລິດຂອງເຂົາເຈົ້າ
cmp <{old} <{new}
ການໂຕ້ຖຽງ^ການໂຕ້ຖຽງ
ໄດ້ ^ operator concatenates ສອງ operands ຂອງຕົນ. ຖ້າຕົວປະຕິບັດການທັງສອງມີອັນດຽວກັນ
ຈໍານວນຂອງອົງປະກອບ, ເຂົາເຈົ້າໄດ້ຖືກ concatenated ຄູ່. ຖ້າບໍ່, ຫຼັງຈາກນັ້ນຫນຶ່ງ operand
ຕ້ອງມີອົງປະກອບຫນຶ່ງ, ແລະອີກອັນຫນຶ່ງຈະຕ້ອງບໍ່ຫວ່າງເປົ່າ, ແລະ concatenation ແມ່ນ
ການແຜ່ກະຈາຍ.
Free ການດູແລ
ໃນສະພາບການສ່ວນໃຫຍ່, rc ຈະໃສ່ ^ operator ອັດຕະໂນມັດລະຫວ່າງຄໍາທີ່ເປັນ
ບໍ່ໄດ້ແຍກອອກໂດຍພື້ນທີ່ສີຂາວ. ເມື່ອໃດກໍ່ຕາມ $ ' ` ປະຕິບັດຕາມຄໍາທີ່ຍົກມາຫຼື unquoted ຫຼື
ຄຳສັບທີ່ບໍ່ໄດ້ອ້າງອີງຕາມຄຳສັບທີ່ຍົກມາໂດຍບໍ່ມີຊ່ອງຫວ່າງ ຫຼືແຖບໃດໆເຂົ້າມາແຊກແຊງ, ກ ^ ແມ່ນໃສ່
ລະຫວ່າງສອງ. ຖ້າຄໍາທີ່ບໍ່ມີຄໍາເວົ້າທັນທີປະຕິບັດຕາມ a $ ແລະມີຕົວອັກສອນ
ນອກຈາກຕົວອັກສອນແລະອັກເສບ, ຂີດກ້ອງ, ຫຼື *, ເປັນ ^ ແມ່ນໃສ່ກ່ອນທີ່ຈະທໍາອິດດັ່ງກ່າວ
ລັກສະນະ. ດັ່ງນັ້ນ
cc -$ທຸງ $stem.c
ເທົ່າກັບ
cc -^$ ທຸງ $stem^.c
ຂ້າພະເຈົ້າ / O Redirections
ລໍາດັບ >ເອກະສານ redirects ໄຟລ໌ຜົນຜະລິດມາດຕະຖານ (ໄຟລ໌ descriptor 1, ປົກກະຕິແລ້ວ
terminal) ກັບຊື່ ເອກະສານ; >>ເອກະສານ ຕື່ມຂໍ້ມູນມາດຕະຖານໃສ່ກັບໄຟລ໌. ມາດຕະຖານ
ໄຟລ໌ປ້ອນຂໍ້ມູນ (ໄຟລ໌ descriptor 0, ຕາມປົກກະຕິ terminal) ອາດຈະຖືກໂອນຈາກໄຟລ໌.
ໂດຍລໍາດັບ <ເອກະສານ, ຫຼືຈາກແຖວ 'ເອກະສານທີ່ນີ້' ໂດຍລໍາດັບ <<eof-ເຄື່ອງໝາຍ.
ເນື້ອໃນຂອງເອກະສານຢູ່ທີ່ນີ້ແມ່ນສາຍຂອງຂໍ້ຄວາມທີ່ມາຈາກຄໍາສັ່ງປ້ອນຂໍ້ມູນ
ໄປຫາເສັ້ນທີ່ປະກອບດ້ວຍບໍ່ມີຫຍັງນອກເໜືອໄປຈາກ eof-ເຄື່ອງໝາຍ, ເຊິ່ງອາດຈະເປັນຄໍາເວົ້າຫຼືບໍ່ໄດ້ອ້າງອີງ
ຄໍາ. ຖ້າ eof-ເຄື່ອງໝາຍ ແມ່ນ unquoted, ຊື່ຕົວແປຂອງແບບຟອມ $ຄໍາ ມີຄຸນຄ່າຂອງເຂົາເຈົ້າ
ທົດແທນຈາກ rc ຂອງ ສະພາບແວດລ້ອມ. ຖ້າ $ຄໍາ ແມ່ນຕິດຕາມດ້ວຍ cart (^), caret ແມ່ນ
ລຶບແລ້ວ. ຖ້າ eof-ເຄື່ອງໝາຍ ຖືກອ້າງເຖິງ, ບໍ່ມີການທົດແທນເກີດຂຶ້ນ.
ການປ່ຽນເສັ້ນທາງອາດຈະຖືກນຳໃຊ້ກັບຕົວອະທິບາຍໄຟລ໌ນອກເໜືອໄປຈາກວັດສະດຸປ້ອນ ຫຼືຜົນຜະລິດມາດຕະຖານໂດຍ
ມີຄຸນສົມບັດຂອງຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງດ້ວຍຕົວເລກໃນວົງເລັບສີ່ຫຼ່ຽມ. ສໍາລັບຕົວຢ່າງ, ໄດ້
ຜົນໄດ້ຮັບການວິນິດໄສ (ໄຟລ໌ descriptor 2) ອາດຈະຖືກປ່ຽນເສັ້ນທາງໂດຍການຂຽນ cc junk.c >[2]ຂີ້ເຫຍື້ອ.
ຕົວອະທິບາຍໄຟລ໌ອາດຈະຖືກໂອນໄປຫາຕົວອະທິບາຍທີ່ເປີດຢູ່ແລ້ວໂດຍການຂຽນ >[fd0=fd1] or
<[fd0=fd1]. Fd1 ເປັນຕົວອະທິບາຍໄຟລ໌ທີ່ເປີດກ່ອນໜ້ານີ້ ແລະ fd0 ກາຍເປັນສໍາເນົາໃຫມ່ (ໃນ
ຄວາມຮູ້ສຶກຂອງ dup(3)) ຂອງມັນ. ຕົວອະທິບາຍໄຟລ໌ອາດຈະຖືກປິດດ້ວຍການຂຽນ >[fd0=] or <[fd0=].
ການປ່ຽນເສັ້ນທາງຖືກປະຕິບັດຈາກຊ້າຍຫາຂວາ. ດັ່ງນັ້ນ, cc junk.c > / dev / null >[=2=1] ແລະ
cc junk.c >[=2=1] > / dev / null ມີຜົນກະທົບທີ່ແຕກຕ່າງກັນ: ທໍາອິດເຮັດໃຫ້ຜົນຜະລິດມາດຕະຖານ
/ dev / null ແລະຫຼັງຈາກນັ້ນວາງຜົນຜະລິດການວິນິດໄສຢູ່ໃນສະຖານທີ່ດຽວກັນ, ບ່ອນທີ່ທີສອງຊີ້ນໍາ
ຜົນຜະລິດການວິນິດໄສກັບ terminal ແລະສົ່ງຜົນຜະລິດມາດຕະຖານເພື່ອ / dev / null.
ສົມທົບ ຄໍາສັ່ງ
ຄູ່ຄໍາສັ່ງທີ່ແຍກອອກໂດຍຕົວປະຕິບັດການທໍ່ (|) ເປັນຄໍາສັ່ງ. ຜົນຜະລິດມາດຕະຖານຂອງ
ຄໍາສັ່ງຊ້າຍຖືກສົ່ງຜ່ານທໍ່ໄປຫາວັດສະດຸປ້ອນມາດຕະຖານຂອງຄໍາສັ່ງທີ່ຖືກຕ້ອງ. ໄດ້
ຜູ້ປະກອບການທໍ່ອາດຈະຖືກຕົກແຕ່ງເພື່ອໃຊ້ຕົວອະທິບາຍໄຟລ໌ທີ່ແຕກຕ່າງກັນ. |[fd] ເຊື່ອມຕໍ່ໄດ້
output ທ້າຍຂອງທໍ່ກັບໄຟລ໌ descriptor fd ຫຼາຍກວ່າ 1. |[fd0=fd1] ເຊື່ອມຕໍ່ຜົນຜະລິດກັບ
fd1 ຂອງຄໍາສັ່ງຊ້າຍແລະການປ້ອນຂໍ້ມູນທີ່ fd0 ຂອງຄໍາສັ່ງທີ່ຖືກຕ້ອງ.
ຄູ່ຂອງຄໍາສັ່ງທີ່ແຍກອອກໂດຍ && or || ເປັນຄໍາສັ່ງ. ໃນກໍລະນີໃດກໍ່ຕາມ, ຄໍາສັ່ງຊ້າຍ
ຖືກປະຕິບັດແລະສະຖານະການອອກຂອງມັນຖືກກວດສອບ. ຖ້າຜູ້ປະຕິບັດງານແມ່ນ && ຄໍາສັ່ງທີ່ຖືກຕ້ອງແມ່ນ
ປະຕິບັດຖ້າຫາກວ່າສະຖານະຄໍາສັ່ງຊ້າຍເປັນ null. || ເຮັດໃຫ້ຄໍາສັ່ງທີ່ຖືກຕ້ອງຖືກປະຕິບັດ
ຖ້າສະຖານະຂອງຄໍາສັ່ງຊ້າຍບໍ່ແມ່ນ null.
ສະຖານະການອອກຈາກຄໍາສັ່ງອາດຈະຖືກປີ້ນ (ບໍ່ແມ່ນ null ຖືກປ່ຽນເປັນ null, null ຖືກປ່ຽນ
ກັບ non-null) ໂດຍນໍາຫນ້າດ້ວຍ a !.
ໄດ້ | ຜູ້ປະກອບການມີຄວາມສຳຄັນທີ່ສຸດ, ແລະເປັນການເຊື່ອມໂຍງທາງດ້ານຊ້າຍ (ie binds tighter ກັບ the
ຊ້າຍກ່ວາຂວາ). ! ມີຄວາມສຳຄັນກວ່າລະດັບປານກາງ, ແລະ && ແລະ || ມີຕ່ໍາສຸດ
ອັນດັບຕົ້ນ.
unary ໄດ້ @ ໂຕປະຕິບັດການ, ໂດຍມີລໍາດັບກ່ອນເທົ່າກັບ !, ເຮັດໃຫ້ operand ຂອງຕົນຖືກປະຕິບັດໃນ a
ເປືອກຍ່ອຍ.
ແຕ່ລະຕໍ່ໄປນີ້ແມ່ນຄໍາສັ່ງ.
if ( ບັນຊີລາຍຊື່ ) ຄໍາສັ່ງ
A ບັນຊີລາຍຊື່ ແມ່ນລໍາດັບຂອງຄໍາສັ່ງ, ແຍກອອກໂດຍ &, ;, ຫຼືສາຍໃຫມ່. ມັນໄດ້ຖືກປະຕິບັດ
ແລະຖ້າສະຖານະອອກຈາກມັນເປັນ null, the ຄໍາສັ່ງ ຖືກປະຫານຊີວິດ.
if ບໍ່ ຄໍາສັ່ງ
ຄໍາສັ່ງກ່ອນຫນ້າທັນທີຕ້ອງເປັນ ຖ້າ(ບັນຊີລາຍຊື່) ຄໍາສັ່ງ. ຖ້າມັນ
ເງື່ອນໄຂບໍ່ແມ່ນສູນ, ໄດ້ ຄໍາສັ່ງ ຖືກປະຫານຊີວິດ.
ສໍາລັບ(ຊື່ in ກະທູ້ທີ່) ຄໍາສັ່ງ
ສໍາລັບ(ຊື່) ຄໍາສັ່ງ
ໄດ້ ຄໍາສັ່ງ ຖືກປະຕິບັດຄັ້ງດຽວສໍາລັບແຕ່ລະຄົນ ການໂຕ້ຖຽງ ກັບການໂຕ້ຖຽງທີ່ມອບຫມາຍໃຫ້ ຊື່.
ຖ້າລາຍຊື່ການໂຕ້ຖຽງຖືກລະເວັ້ນ, $* ຖືກນໍາໃຊ້.
ໃນຂະນະທີ່ (ບັນຊີລາຍຊື່) ຄໍາສັ່ງ
ໄດ້ ບັນຊີລາຍຊື່ ຈະຖືກປະຕິບັດຊ້ຳໆຈົນກ່ວາສະຖານະການອອກຂອງມັນບໍ່ແມ່ນ null. ແຕ່ລະຄັ້ງ
ກັບຄືນສະຖານະ null, ໄດ້ ຄໍາສັ່ງ ຖືກປະຕິບັດ. ຫວ່າງເປົ່າ ບັນຊີລາຍຊື່ ຖືກປະຕິບັດເພື່ອໃຫ້ null
ສະຖານະພາບ.
ປ່ຽນ (ການໂຕ້ຖຽງ){ບັນຊີລາຍຊື່}
ໄດ້ ບັນຊີລາຍຊື່ ແມ່ນຊອກຫາຄໍາສັ່ງງ່າຍໆທີ່ເລີ່ມຕົ້ນດ້ວຍຄໍາ ກໍລະນີ. (ການຄົ້ນຫາ
ແມ່ນພຽງແຕ່ຢູ່ໃນ 'ລະດັບສູງສຸດ' ຂອງ ບັນຊີລາຍຊື່. ນັ້ນແມ່ນ, ກໍລະນີ ໃນການກໍ່ສ້າງຮັງມີ
ບໍ່ພົບ.) ການໂຕ້ຖຽງ ຖືກຈັບຄູ່ກັບແຕ່ລະຄໍາຕໍ່ໄປນີ້ ກໍລະນີ ການນໍາໃຊ້
ຂັ້ນຕອນການຈັບຄູ່ຮູບແບບທີ່ໄດ້ອະທິບາຍຂ້າງເທິງ, ຍົກເວັ້ນນັ້ນ / ແລະລັກສະນະທໍາອິດ
of . ແລະ .. ບໍ່ຈໍາເປັນຕ້ອງຈັບຄູ່ຢ່າງຈະແຈ້ງ. ເມື່ອພົບການຈັບຄູ່, ຄໍາສັ່ງໃນ
ບັນຊີລາຍຊື່ຖືກປະຕິບັດເຖິງຕໍ່ໄປນີ້ຕໍ່ໄປ ກໍລະນີ ຄໍາສັ່ງ (ໃນລະດັບສູງສຸດ) ຫຼື
ວົງເລັບປິດ.
{ບັນຊີລາຍຊື່}
Braces ໃຫ້ບໍລິການເພື່ອແກ້ໄຂການຈັດກຸ່ມຂອງຄໍາສັ່ງທີ່ຊີ້ໃຫ້ເຫັນໂດຍບູລິມະສິດຂອງຜູ້ປະກອບການ. ໄດ້
ຮ່າງກາຍ ແມ່ນລໍາດັບຂອງຄໍາສັ່ງທີ່ແຍກອອກໂດຍ &, ;, ຫຼືສາຍໃຫມ່.
fn ຊື່{ບັນຊີລາຍຊື່}
fn ຊື່
ແບບຟອມທໍາອິດກໍານົດຟັງຊັນທີ່ມີໃຫ້ ຊື່. ຕໍ່ມາ, ທຸກຄັ້ງ a
ຄໍາສັ່ງທີ່ການໂຕ້ຖຽງທໍາອິດແມ່ນ ຊື່ ແມ່ນພົບ, ມູນຄ່າປະຈຸບັນຂອງ
ສ່ວນທີ່ເຫຼືອຂອງບັນຊີລາຍຊື່ argument ຂອງຄໍາສັ່ງຈະຖືກມອບຫມາຍໃຫ້ $*, ຫຼັງຈາກບັນທຶກຂອງຕົນ
ມູນຄ່າປະຈຸບັນ, ແລະ rc ຈະປະຕິບັດ ບັນຊີລາຍຊື່. ຮູບແບບທີສອງເອົາອອກ ຊື່'s
ນິຍາມຟັງຊັນ.
fn ຫມາຍເຫດ{ບັນຊີລາຍຊື່}
fn ຫມາຍເຫດ
ຟັງຊັນທີ່ມີຊື່ພິເສດຈະຖືກເອີ້ນເມື່ອ rc ໄດ້ຮັບທີ່ສອດຄ້ອງກັນ
ຫມາຍເຫດ; ເບິ່ງ ແຈ້ງ(3). ຊື່ບັນທຶກທີ່ຖືກຕ້ອງ (ແລະບັນທຶກທີ່ສອດຄ້ອງກັນ) ແມ່ນ ຖອນຫາຍໃຈ
(ວາງສາຍ), ເຄື່ອງໝາຍ (ຂັດຂວາງ), Sigalrm (ປຸກ), ແລະ sigfpe (ຈັ່ນຈັບຈຸດລອຍ).
ໂດຍຄ່າເລີ່ມຕົ້ນ rc ອອກຈາກການໄດ້ຮັບສັນຍານໃດໆ, ຍົກເວັ້ນໃນເວລາທີ່ດໍາເນີນການໂຕ້ຕອບ, ໃນ
ກໍລະນີໃດທີ່ຂັດຂວາງ ແລະເຊົາເປັນປົກກະຕິ rc ເພື່ອຢຸດອັນໃດກໍ່ຕາມທີ່ມັນກໍາລັງເຮັດແລະ
ເລີ່ມການອ່ານຄໍາສັ່ງໃຫມ່. ຮູບແບບທີສອງເຮັດໃຫ້ເກີດ rc ເພື່ອຈັດການສັນຍານໃນ
ວິທີການເລີ່ມຕົ້ນ. Rc ຮັບຮູ້ບັນທຶກປອມ, sigexit, ເຊິ່ງເກີດຂື້ນເມື່ອ rc is
ກ່ຽວກັບການສໍາເລັດການປະຕິບັດ.
ຊື່=ການໂຕ້ຖຽງ ຄໍາສັ່ງ
ຄໍາສັ່ງໃດໆອາດຈະຖືກນໍາຫນ້າໂດຍລໍາດັບຂອງການມອບຫມາຍ interspersed ກັບ
ການປ່ຽນເສັ້ນທາງ. ການມອບຫມາຍຍັງຄົງມີຜົນບັງຄັບໃຊ້ຈົນກ່ວາໃນຕອນທ້າຍຂອງຄໍາສັ່ງ,
ເວັ້ນເສຍແຕ່ວ່າຄໍາສັ່ງແມ່ນຫວ່າງເປົ່າ (ie ການມອບຫມາຍຢືນຢູ່ຄົນດຽວ), ໃນກໍລະນີດັ່ງກ່າວນີ້
ມີຜົນບັງຄັບໃຊ້ຈົນກວ່າຈະຖືກຍົກເລີກໂດຍການມອບໝາຍໃນພາຍຫຼັງ.
Built-in ຄໍາສັ່ງ
ຄໍາສັ່ງເຫຼົ່ານີ້ຖືກປະຕິບັດພາຍໃນໂດຍ rc, ປົກກະຕິແລ້ວເນື່ອງຈາກວ່າການປະຕິບັດຂອງເຂົາເຈົ້າມີການປ່ຽນແປງຫຼື
ຂຶ້ນກັບ rcລັດພາຍໃນຂອງ.
. ເອກະສານ ...
ປະຕິບັດຄໍາສັ່ງຈາກ ເອກະສານ. $* ຖືກກໍານົດສໍາລັບໄລຍະເວລາທີ່ຍັງເຫຼືອຂອງ
ບັນຊີລາຍຊື່ການໂຕ້ຖຽງຕໍ່ໄປນີ້ ເອກະສານ. ເອກະສານ ຖືກຄົ້ນຫາສໍາລັບການນໍາໃຊ້ $path.
ປຸກສ້າງ ຄໍາສັ່ງ ...
ປະຕິບັດ ຄໍາສັ່ງ ຕາມປົກກະຕິຍົກເວັ້ນຟັງຊັນທີ່ມີຊື່ ຄໍາສັ່ງ ຖືກລະເລີຍໃນເງື່ອນໄຂ
ຄວາມຫມາຍທີ່ສ້າງຂຶ້ນ.
cd [dir]
ປ່ຽນໄດເລກະທໍລີປັດຈຸບັນເປັນ dir. ການໂຕ້ຖຽງເລີ່ມຕົ້ນແມ່ນ $ບ້ານ. dir is
ຄົ້ນຫາຢູ່ໃນແຕ່ລະໄດເລກະທໍລີທີ່ໄດ້ກ່າວມາ $cdpath.
ການປະເມີນ [arg ...]
arguments ແມ່ນ concatenated ແຍກໂດຍ spaces ເຂົ້າໄປໃນສາຍດຽວ, ອ່ານເປັນ
ປ້ອນໃສ່ rc, ແລະປະຕິບັດ.
exec [ຄໍາສັ່ງ ...]
ຕົວຢ່າງນີ້ຂອງ rc ປ່ຽນແທນຕົວມັນເອງດ້ວຍການໃຫ້ (ທີ່ບໍ່ແມ່ນໃນຕົວ) ຄໍາສັ່ງ.
ທຸງ f [+-]
ບໍ່ວ່າຈະເປັນຊຸດ (+), ແຈ້ງ (-), ຫຼືການທົດສອບ (ບໍ່ + neither -) ທຸງຊາດ f, ບ່ອນທີ່ f ເປັນ
ຕົວອັກສອນດຽວ, ທຸງແຖວຄໍາສັ່ງ (ເບິ່ງ Invocation, ຂ້າງລຸ່ມນີ້).
ການທ່ອງທ່ຽວ [ສະຖານະພາບ]
ອອກໄປດ້ວຍສະຖານະທາງອອກທີ່ໃຫ້ໄວ້. ຖ້າບໍ່ມີ, ມູນຄ່າປັດຈຸບັນຂອງ $ສະຖານະ is
ໃຊ້ແລ້ວ.
rfork [nNeEsfFm]
ກາຍເປັນກຸ່ມຂະບວນການໃຫມ່ໂດຍໃຊ້ rfork(ທົງ) ບ່ອນທີ່ ທົງ ແມ່ນປະກອບດ້ວຍ
bitwise OR ຂອງ rfork ທຸງທີ່ລະບຸໂດຍຕົວອັກສອນທາງເລືອກ (ເບິ່ງ fork(2)). ຖ້າບໍ່ມີ
ທົງ ໄດ້ຖືກມອບໃຫ້, ພວກເຂົາເລີ່ມຕົ້ນທີ່ຈະ ຮັບປະກັນ. ໄດ້ ທົງ ແລະຄວາມຫມາຍຂອງເຂົາເຈົ້າແມ່ນ: n is
RFNAMEG; N is RFCNAMEG; e is RFENVG; E is RFCENVG; s is RFNOTEG; f is RFFDG; F is
RFCFDG; ແລະ m is RFNOMNT.
ປ່ຽນແປງ [n]
ລຶບອັນທໍາອິດ n (ຄ່າເລີ່ມຕົ້ນ 1) ອົງປະກອບຂອງ $*.
ລໍຖ້າ [pid]
ລໍຖ້າຂະບວນການທີ່ມີໃຫ້ pid ອອກໄປ. ຖ້າບໍ່ມີ pid ແມ່ນໃຫ້, ທັງຫມົດ
ຂະບວນການທີ່ຍັງຄ້າງຄາແມ່ນລໍຖ້າ.
ແມ່ນຫຍັງ ຊື່ ...
ພິມມູນຄ່າຂອງແຕ່ລະຄົນ ຊື່ ໃນຮູບແບບທີ່ເຫມາະສົມສໍາລັບການປ້ອນຂໍ້ມູນ rc. ຜົນຜະລິດແມ່ນເປັນ
ການມອບຫມາຍໃຫ້ຕົວແປໃດໆ, ຄໍານິຍາມຂອງຫນ້າທີ່ໃດຫນຶ່ງ, ໂທຫາ ປຸກສ້າງ ສໍາລັບການ
ຄໍາສັ່ງໃດໆທີ່ສ້າງຂຶ້ນໃນ, ຫຼືຊື່ເສັ້ນທາງທີ່ສໍາເລັດຂອງໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້.
~ ເລື່ອງ ຮູບແບບ ...
ໄດ້ ເລື່ອງ ຖືກຈັບຄູ່ກັບແຕ່ລະຄົນ ຮູບແບບ ຕາມລໍາດັບ. ຖ້າມັນກົງກັບອັນໃດ
ຮູບແບບ, $ສະຖານະ ຖືກຕັ້ງເປັນສູນ. ຖ້າບໍ່ດັ່ງນັ້ນ, $ສະຖານະ ຖືກກໍານົດເປັນຫນຶ່ງ. ຮູບແບບແມ່ນ
ຄືກັນກັບການຈັບຄູ່ຊື່ໄຟລ໌, ຍົກເວັ້ນນັ້ນ / ແລະລັກສະນະທໍາອິດຂອງ . ແລະ
.. ບໍ່ຈໍາເປັນຕ້ອງຈັບຄູ່ຢ່າງຈະແຈ້ງ. ໄດ້ ຮູບແບບການ ບໍ່ຂຶ້ນກັບຊື່ໄຟລ໌
ການຈັບຄູ່ກ່ອນ ~ ຄໍາສັ່ງຖືກປະຕິບັດ, ດັ່ງນັ້ນພວກເຂົາບໍ່ຈໍາເປັນຕ້ອງຖືກລ້ອມຮອບ
ເຄື່ອງໝາຍວົງຢືມ.
ສະພາບແວດລ້ອມ
ໄດ້ ສະພາບແວດລ້ອມ ແມ່ນບັນຊີລາຍຊື່ຂອງສະຕຣິງທີ່ມີໃຫ້ເພື່ອປະຕິບັດ binary ໂດຍ kernel.
Rc ສ້າງການປ້ອນສະພາບແວດລ້ອມສໍາລັບແຕ່ລະຕົວແປທີ່ມີມູນຄ່າບໍ່ແມ່ນຫວ່າງເປົ່າ, ແລະສໍາລັບແຕ່ລະຄົນ
ຫນ້າທີ່. ສະຕຣິງສໍາລັບການປ້ອນຕົວແປມີຊື່ຂອງຕົວແປຕາມດ້ວຍ = ແລະມັນ
ຄ່າ. ຖ້າຄ່າມີຫຼາຍກວ່າຫນຶ່ງອົງປະກອບ, ສິ່ງເຫຼົ່ານີ້ຖືກແຍກອອກໂດຍ SOH (001)
ຕົວລະຄອນ. ສະຕຣິງສໍາລັບຟັງຊັນເປັນພຽງແຕ່ rc input ທີ່ກໍານົດຫນ້າທີ່.
ຊື່ຂອງຟັງຊັນໃນສະພາບແວດລ້ອມແມ່ນຊື່ຟັງຊັນທີ່ນໍາໜ້າດ້ວຍ
ເມື່ອໃດ rc ເລີ່ມຕົ້ນການປະຕິບັດມັນອ່ານຕົວແປແລະຄໍານິຍາມຫນ້າທີ່ຈາກສະພາບແວດລ້ອມຂອງຕົນ.
ພິເສດ Variables
ຕົວແປຕໍ່ໄປນີ້ຖືກຕັ້ງ ຫຼືໃຊ້ໂດຍ rc.
$* ຕັ້ງຄ່າ rcບັນຊີລາຍຊື່ການໂຕ້ຖຽງຂອງໃນລະຫວ່າງການເລີ່ມຕົ້ນ. ເມື່ອໃດກໍ່ຕາມ ກ . ຄຳສັ່ງ ຫຼື ກ
ຟັງຊັນຖືກປະຕິບັດ, ມູນຄ່າປະຈຸບັນຖືກບັນທຶກແລະ $* ໄດ້ຮັບການໂຕ້ຖຽງໃຫມ່
ບັນຊີລາຍຊື່. ຄ່າທີ່ບັນທຶກໄວ້ແມ່ນໄດ້ຮັບການຟື້ນຟູໃນການສໍາເລັດຂອງ . ຫຼື ໜ້າ ທີ່.
$apid ທຸກຄັ້ງທີ່ຂະບວນການເລີ່ມຕົ້ນແບບບໍ່ກົງກັນກັບ &, $apid ຖືກຕັ້ງເປັນຂະບວນການຂອງມັນ
id
$ບ້ານ ໄດເລກະທໍລີເລີ່ມຕົ້ນສໍາລັບ cd.
$ifs ຕົວແຍກຊ່ອງປ້ອນຂໍ້ມູນທີ່ໃຊ້ໃນການທົດແທນ backquote. ຖ້າ $ifs ບໍ່ໄດ້ຕັ້ງ
in rcສະພາບແວດລ້ອມຂອງ, ມັນຖືກເລີ່ມຕົ້ນໃຫ້ຫວ່າງເປົ່າ, ແຖບແລະແຖວໃຫມ່.
$path ເສັ້ນທາງຄົ້ນຫາທີ່ໃຊ້ເພື່ອຊອກຫາຄໍາສັ່ງແລະການປ້ອນໄຟລ໌ສໍາລັບ . ຄໍາສັ່ງ. ຖ້າບໍ່
ທີ່ຕັ້ງຢູ່ໃນສະພາບແວດລ້ອມ, ມັນໄດ້ຖືກເລີ່ມຕົ້ນໂດຍການວິເຄາະ $ PATH ຕົວແປ (ໃນ
sh(1)) ຫຼືໂດຍ ເສັ້ນທາງ=(. / ຖັງ). ຕົວແປ $path ແລະ $ PATH ຖືກຮັກສາໄວ້
ຮ່ວມກັນ: ການປ່ຽນແປງທີ່ຫນຶ່ງຈະໄດ້ຮັບການສະທ້ອນໃຫ້ເຫັນໃນອື່ນໆ.
$pid ກໍານົດໃນລະຫວ່າງການເລີ່ມຕົ້ນເປັນ rcID ຂະບວນການຂອງ.
$prompt ເມື່ອໃດ rc ແມ່ນດໍາເນີນການໂຕ້ຕອບ, ອົງປະກອບທໍາອິດຂອງ $prompt ຖືກພິມອອກກ່ອນ
ອ່ານຄໍາສັ່ງແຕ່ລະຄົນ. ອົງປະກອບທີສອງແມ່ນພິມອອກທຸກຄັ້ງທີ່ມີແຖວໃຫມ່
typed ແລະຫຼາຍເສັ້ນແມ່ນຕ້ອງການເພື່ອໃຫ້ສໍາເລັດຄໍາສັ່ງ. ຖ້າບໍ່ຕັ້ງຢູ່ໃນ
ສະພາບແວດລ້ອມ, ມັນໄດ້ຖືກເລີ່ມຕົ້ນໂດຍ prompt=('% ' ' ').
$ສະຖານະ ຕັ້ງເປັນຂໍ້ຄວາມລໍຖ້າຂອງໂຄງການທີ່ປະຕິບັດຄັ້ງສຸດທ້າຍ. (ເວັ້ນເສຍແຕ່ວ່າເລີ່ມຕົ້ນດ້ວຍ &).
! ແລະ ~ ຍັງມີການປ່ຽນແປງ $ສະຖານະ. ມູນຄ່າຂອງມັນຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມການປະຕິບັດໃນ &&, ||,
if ແລະ ໃນຂະນະທີ່ ຄໍາສັ່ງ. ເມື່ອໃດ rc ອອກຈາກທ້າຍຂອງໄຟລ໌ຂອງການປ້ອນຂໍ້ມູນຂອງມັນ ຫຼືໃນການປະຕິບັດ
an ການທ່ອງທ່ຽວ ຄໍາສັ່ງທີ່ບໍ່ມີການໂຕ້ຖຽງ, $ສະຖານະ ແມ່ນສະຖານະການອອກຂອງຕົນ.
Invocation
If rc ແມ່ນເລີ່ມຕົ້ນໂດຍບໍ່ມີການໂຕ້ຖຽງມັນອ່ານຄໍາສັ່ງຈາກວັດສະດຸປ້ອນມາດຕະຖານ. ຖ້າບໍ່ດັ່ງນັ້ນມັນ
argument ທີ່ບໍ່ແມ່ນທຸງທໍາອິດແມ່ນຊື່ຂອງໄຟລ໌ທີ່ຈະອ່ານຄໍາສັ່ງ (ແຕ່ເບິ່ງ -c
ຂ້າງລຸ່ມນີ້). ການໂຕ້ຖຽງຕໍ່ມາກາຍເປັນມູນຄ່າເບື້ອງຕົ້ນຂອງ $*. Rc ຍອມຮັບດັ່ງຕໍ່ໄປນີ້
ທຸງບັນທັດຄໍາສັ່ງ.
-c string ຄໍາສັ່ງແມ່ນອ່ານຈາກ string.
-s ພິມອອກສະຖານະການອອກຫຼັງຈາກຄໍາສັ່ງໃດໆທີ່ສະຖານະບໍ່ແມ່ນ null.
-e ອອກຈາກຖ້າ $ສະຖານະ ບໍ່ແມ່ນ null ຫຼັງຈາກປະຕິບັດຄໍາສັ່ງງ່າຍໆ.
-i If -i ປະຈຸບັນ, ຫຼື rc ແມ່ນບໍ່ມີການໂຕ້ຖຽງແລະການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງມັນແມ່ນ a
terminal, ມັນດໍາເນີນການໂຕ້ຕອບ. ຄໍາສັ່ງຖືກກະຕຸ້ນໃຫ້ໃຊ້ $prompt.
-I ໃຫ້ແນ່ໃຈວ່າ rc ບໍ່ໄດ້ດໍາເນີນການໂຕ້ຕອບ.
-l If -l ແມ່ນໃຫ້ຫຼືລັກສະນະທໍາອິດຂອງການໂຕ້ຖຽງສູນແມ່ນ -, rc ອ່ານຄໍາສັ່ງ
ຈາກ $home/lib/profile, ຖ້າມັນມີຢູ່, ກ່ອນທີ່ຈະອ່ານການປ້ອນຂໍ້ມູນປົກກະຕິຂອງມັນ.
-p A no-op.
-d A no-op.
-v Echo input ໃນ file descriptor 2 ດັ່ງທີ່ມັນຖືກອ່ານ.
-x ພິມແຕ່ລະຄໍາສັ່ງງ່າຍໆກ່ອນທີ່ຈະປະຕິບັດມັນ.
-r ພິມຂໍ້ມູນແກ້ໄຂບັນຫາ (ຮູບແບບພາຍໃນຂອງຄໍາສັ່ງທີ່ພວກເຂົາເຈົ້າໄດ້ຖືກປະຕິບັດ).
ແຫຼ່ງຂໍ້ມູນ
/src/cmd/rc
ໃຊ້ rcplan9 ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net