ນີ້ແມ່ນຄໍາສັ່ງ bash ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
bash - GNU Bourne-Again SHell
ສະຫຼຸບສັງລວມ
bash [ຕົວເລືອກ] [command_string | ໄຟລ໌]
COPYRIGHT
Bash ແມ່ນລິຂະສິດ (C) 1989-2013 ໂດຍ Free Software Foundation, Inc.
ລາຍລະອຽດ
Bash ເປັນ sh-compatible ນາຍພາສາພາສາຄໍາສັ່ງທີ່ປະຕິບັດຄໍາສັ່ງອ່ານຈາກ
ການປ້ອນຂໍ້ມູນມາດຕະຖານ ຫຼືຈາກໄຟລ໌. Bash ຍັງລວມເອົາຄຸນສົມບັດທີ່ເປັນປະໂຫຍດຈາກ Korn ແລະ C
ຫອຍ (ksh ແລະ csh).
Bash ມີຈຸດປະສົງເພື່ອເປັນການປະຕິບັດທີ່ສອດຄ່ອງຂອງສ່ວນ Shell ແລະ Utilities ຂອງ
ມາດຕະຖານ IEEE POSIX (IEEE Standard 1003.1). Bash ສາມາດຖືກຕັ້ງຄ່າໃຫ້ເປັນ POSIX-
ສອດຄ່ອງຕາມຄ່າເລີ່ມຕົ້ນ.
OPTIONS
ທັງຫມົດຂອງຕົວເລືອກ shell ຕົວອັກສອນດຽວທີ່ບັນທຶກໄວ້ໃນລາຍລະອຽດຂອງ ທີ່ກໍານົດໄວ້
ຄໍາສັ່ງ builtin ສາມາດຖືກນໍາໃຊ້ເປັນທາງເລືອກໃນເວລາທີ່ shell ໄດ້ຖືກເອີ້ນ. ເພີ່ມເຕີມ, bash
ແປຕົວເລືອກຕໍ່ໄປນີ້ເມື່ອມັນຖືກເອີ້ນ:
-c ຖ້າ -c ທາງເລືອກແມ່ນປະຈຸບັນ, ຫຼັງຈາກນັ້ນຄໍາສັ່ງຖືກອ່ານຈາກທາງເລືອກທໍາອິດທີ່ບໍ່ແມ່ນທາງເລືອກ
ການໂຕ້ຖຽງ command_string. ຖ້າມີການໂຕ້ຖຽງຫຼັງຈາກ command_string, ພວກເຂົາ
ຖືກມອບຫມາຍໃຫ້ຕົວກໍານົດການຕໍາແຫນ່ງ, ເລີ່ມຕົ້ນດ້ວຍ $0.
-i ຖ້າ -i ທາງເລືອກແມ່ນມີຢູ່, ເປືອກແມ່ນ ແບບໂຕ້ຕອບ.
-l ເຮັດໃຫ້ bash ປະຕິບັດຄືກັບວ່າມັນຖືກເອີ້ນເປັນແກະເຂົ້າສູ່ລະບົບ (ເບິ່ງ ການຮຽກຮ້ອງ ດ້ານລຸ່ມ).
-r ຖ້າ -r ທາງເລືອກແມ່ນປະຈຸບັນ, ແກະຈະກາຍເປັນ ຖືກຈໍາກັດ (ເບິ່ງ ຕອບແທນ SHELL
ດ້ານລຸ່ມ).
-s ຖ້າ -s ທາງເລືອກແມ່ນມີຢູ່, ຫຼືຖ້າບໍ່ມີການໂຕ້ຖຽງໃດໆທີ່ຍັງຄົງຢູ່ຫຼັງຈາກການປຸງແຕ່ງທາງເລືອກ,
ຫຼັງຈາກນັ້ນ, ຄໍາສັ່ງຈະຖືກອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານ. ທາງເລືອກນີ້ອະນຸຍາດໃຫ້
ຕົວກໍານົດການຕໍາແຫນ່ງທີ່ຈະຖືກກໍານົດໃນເວລາທີ່ຮຽກຮ້ອງ shell ແບບໂຕ້ຕອບ.
-D ລາຍຊື່ຂອງສະຕຣິງທີ່ອ້າງອີງສອງເທົ່າທີ່ນຳໜ້າດ້ວຍ $ ຖືກພິມຢູ່ໃນມາດຕະຖານ
ຜົນຜະລິດ. ເຫຼົ່ານີ້ແມ່ນສະຕຣິງທີ່ຂຶ້ນກັບການແປພາສາໃນເວລາທີ່
ທ້ອງຖິ່ນໃນປະຈຸບັນບໍ່ແມ່ນ C or POSIX. ນີ້ ໝາຍ ຄວາມວ່າ -n ທາງເລືອກ; ບໍ່ມີຄໍາສັ່ງຈະ
ຖືກປະຕິບັດ.
[-+]ອ [shopt_option]
shopt_option ແມ່ນຫນຶ່ງໃນທາງເລືອກຂອງແກະທີ່ຍອມຮັບໂດຍ ຮ້ານຄ້າ builtin (ເບິ່ງ
SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້). ຖ້າ shopt_option ປະຈຸບັນ, -O ກໍານົດມູນຄ່າຂອງ
ທາງເລືອກນັ້ນ; +O unsets ມັນ. ຖ້າ shopt_option ບໍ່ໄດ້ສະຫນອງ, ຊື່ແລະ
ຄ່າຂອງຕົວເລືອກ shell ທີ່ຍອມຮັບໂດຍ ຮ້ານຄ້າ ຖືກພິມຢູ່ໃນມາດຕະຖານ
ຜົນຜະລິດ. ຖ້າຫາກວ່າທາງເລືອກ invocation ແມ່ນ +O, ຜົນຜະລິດແມ່ນສະແດງຢູ່ໃນຮູບແບບ
ທີ່ອາດຈະຖືກນໍາມາໃຊ້ເປັນວັດສະດຸປ້ອນ.
-- A -- ສັນຍານການສິ້ນສຸດຂອງຕົວເລືອກ ແລະປິດການປະມວນຜົນທາງເລືອກຕື່ມອີກ. ໃດ
ການໂຕ້ຖຽງຫຼັງຈາກ -- ຖືກປະຕິບັດເປັນຊື່ໄຟລ໌ແລະການໂຕ້ຖຽງ. ການໂຕ້ຖຽງຂອງ -
ເທົ່າກັບ --.
Bash ຍັງຕີຄວາມໝາຍຂອງຕົວເລືອກຫຼາຍຕົວ. ຕົວເລືອກເຫຼົ່ານີ້ຈະຕ້ອງປາກົດຢູ່ໃນ
ເສັ້ນຄໍາສັ່ງກ່ອນຕົວເລືອກຕົວອັກສອນດຽວທີ່ຈະຮັບຮູ້.
--debugger
ຈັດແຈງໃຫ້ໂປຣໄຟລ໌ດີບັ໊ກຖືກປະຕິບັດກ່ອນທີ່ແກະຈະເລີ່ມຕົ້ນ. ເປີດ
ຮູບແບບການແກ້ໄຂການຂະຫຍາຍ (ເບິ່ງລາຍລະອຽດຂອງ extdebug ທາງເລືອກໃນການ ຮ້ານຄ້າ
builtin ຂ້າງລຸ່ມນີ້).
--dump-po-strings
ເທົ່າກັບ -D, ແຕ່ຜົນຜະລິດແມ່ນຢູ່ໃນ GNU ຂໍ້ຄວາມ po (ວັດຖຸພົກພາ) ໄຟລ໌
ຮູບແບບ.
--dump-strings
ເທົ່າກັບ -D.
- ຊ່ວຍ ສະແດງຂໍ້ຄວາມການນໍາໃຊ້ກ່ຽວກັບຜົນຜະລິດມາດຕະຖານແລະອອກສໍາເລັດ.
--init-file ເອກະສານ
--rcfile ເອກະສານ
ປະຕິບັດຄໍາສັ່ງຈາກ ເອກະສານ ແທນທີ່ຈະເປັນໄຟລ໌ເບື້ອງຕົ້ນຂອງລະບົບກ້ວາງ
/etc/bash.bashrc ແລະໄຟລ໌ເບື້ອງຕົ້ນສ່ວນບຸກຄົນມາດຕະຖານ ~ / bashrc ຖ້າຫາກວ່າ
shell ແມ່ນໂຕ້ຕອບ (ເບິ່ງ ການຮຽກຮ້ອງ ດ້ານລຸ່ມ).
--ເຂົ້າສູ່ລະບົບ
ເທົ່າກັບ -l.
--noediting
ຢ່າໃຊ້ GNU ເສັ້ນອ່ານ ຫ້ອງສະຫມຸດເພື່ອອ່ານເສັ້ນຄໍາສັ່ງໃນເວລາທີ່ shell ແມ່ນ
ແບບໂຕ້ຕອບ.
--noprofile
ຢ່າອ່ານໄຟລ໌ເລີ່ມຕົ້ນທົ່ວລະບົບ / etc / profile ຫຼືສ່ວນບຸກຄົນ
ໄຟລ໌ເບື້ອງຕົ້ນ ~ / .bash_profile, ~/.bash_login, ຫຼື ~ /. ປະໂຫຍດ. ໂດຍຄ່າເລີ່ມຕົ້ນ,
bash ອ່ານໄຟລ໌ເຫຼົ່ານີ້ເມື່ອມັນຖືກເອີ້ນເປັນແກະເຂົ້າສູ່ລະບົບ (ເບິ່ງ ການຮຽກຮ້ອງ ດ້ານລຸ່ມ).
--norc ຢ່າອ່ານແລະປະຕິບັດໄຟລ໌ເບື້ອງຕົ້ນຂອງລະບົບກວ້າງ /etc/bash.bashrc ແລະ
ໄຟລ໌ເບື້ອງຕົ້ນສ່ວນບຸກຄົນ ~ / bashrc ຖ້າ shell ແມ່ນໂຕ້ຕອບ. ນີ້
ທາງເລືອກແມ່ນຢູ່ໃນຄ່າເລີ່ມຕົ້ນຖ້າຫາກວ່າ shell ໄດ້ຖືກເອີ້ນເປັນ sh.
--posix
ປ່ຽນແປງພຶດຕິກໍາຂອງ bash ບ່ອນທີ່ການດໍາເນີນງານເລີ່ມຕົ້ນແຕກຕ່າງຈາກ POSIX
ມາດຕະຖານທີ່ກົງກັບມາດຕະຖານ (ບວກ ຮູບແບບການ) ເບິ່ງ ເບິ່ງ ຍັງ ຂ້າງລຸ່ມນີ້ສໍາລັບການອ້າງອີງເຖິງ
ເອກະສານທີ່ລາຍລະອຽດວິທີການ posix ມີຜົນກະທົບຕໍ່ພຶດຕິກໍາຂອງ bash.
-- ຈຳກັດ
ແກະຖືກຈໍາກັດ (ເບິ່ງ ຕອບແທນ SHELL ດ້ານລຸ່ມ).
-- verbose
ເທົ່າກັບ -v.
- ການປ່ຽນແປງ
ສະແດງຂໍ້ມູນສະບັບສໍາລັບຕົວຢ່າງນີ້ bash ກ່ຽວກັບຜົນຜະລິດມາດຕະຖານແລະອອກ
ຢ່າງ ສຳ ເລັດຜົນ.
ການໂຕ້ຖຽງ
ຖ້າການໂຕ້ຖຽງຍັງຄົງຢູ່ຫຼັງຈາກການປຸງແຕ່ງທາງເລືອກ, ແລະບໍ່ແມ່ນ -c ຫລື -s ທາງເລືອກໄດ້
ສະຫນອງໃຫ້, argument ທໍາອິດແມ່ນສົມມຸດວ່າເປັນຊື່ຂອງໄຟລ໌ທີ່ມີ shell
ຄໍາສັ່ງ. ຖ້າ bash ຖືກເອີ້ນໃນຮູບແບບນີ້, $0 ຖືກຕັ້ງເປັນຊື່ຂອງໄຟລ໌, ແລະ
ຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນຖືກກໍານົດເປັນ arguments ທີ່ຍັງເຫຼືອ. Bash ອ່ານແລະປະຕິບັດ
ຄໍາສັ່ງຈາກໄຟລ໌ນີ້, ຫຼັງຈາກນັ້ນອອກ. Bashສະຖານະການອອກຂອງແມ່ນສະຖານະການອອກສຸດທ້າຍ
ຄໍາສັ່ງປະຕິບັດໃນ script. ຖ້າບໍ່ມີຄໍາສັ່ງຖືກປະຕິບັດ, ສະຖານະການອອກແມ່ນ 0. An
ຄວາມພະຍາຍາມທີ່ຈະເປີດໄຟລ໌ຢູ່ໃນໄດເລກະທໍລີປະຈຸບັນ, ແລະ, ຖ້າບໍ່ມີໄຟລ໌ໃດຖືກພົບເຫັນ,
ຫຼັງຈາກນັ້ນ shell ຄົ້ນຫາໄດເລກະທໍລີໃນ PATH ສຳ ລັບບົດຂຽນ.
ການຮຽກຮ້ອງ
A ເຂົ້າສູ່ລະບົບ ຫອຍ ແມ່ນຫນຶ່ງໃນລັກສະນະທໍາອິດຂອງການໂຕ້ຖຽງສູນແມ່ນ a -, ຫຼືຫນຶ່ງເລີ່ມຕົ້ນດ້ວຍ
ໄດ້ --ເຂົ້າສູ່ລະບົບ ທາງເລືອກ.
An ແບບໂຕ້ຕອບ shell ແມ່ນຫນຶ່ງເລີ່ມຕົ້ນໂດຍບໍ່ມີການໂຕ້ຖຽງທີ່ບໍ່ແມ່ນທາງເລືອກແລະໂດຍບໍ່ມີການ -c ທາງເລືອກ
ການປ້ອນຂໍ້ມູນມາດຕະຖານ ແລະຄວາມຜິດພາດຂອງພວກມັນທັງສອງແມ່ນເຊື່ອມຕໍ່ກັບ terminals (ຕາມການກຳນົດໂດຍ
isatty(3)), ຫຼືຫນຶ່ງເລີ່ມຕົ້ນດ້ວຍ -i ທາງເລືອກ. PS1 ຖືກຕັ້ງແລະ $- ປະກອບມີ i if bash is
ແບບໂຕ້ຕອບ, ອະນຸຍາດໃຫ້ Shell script ຫຼືໄຟລ໌ເລີ່ມຕົ້ນເພື່ອທົດສອບສະຖານະນີ້.
ວັກຕໍ່ໄປນີ້ອະທິບາຍວິທີການ bash ປະຕິບັດໄຟລ໌ເລີ່ມຕົ້ນຂອງມັນ. ຖ້າຫາກວ່າໃດໆຂອງ
ໄຟລ໌ມີຢູ່ແຕ່ບໍ່ສາມາດອ່ານໄດ້, bash ລາຍງານຄວາມຜິດພາດ. Tildes ຖືກຂະຫຍາຍຢູ່ໃນຊື່ໄຟລ໌
ດັ່ງທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້ ເຄື່ອງ ໝາຍ ສຳ ນຽງ ການຂະຫຍາຍຕົວ ໃນ EXPANSION ສ່ວນ.
ເມື່ອໃດ bash ແມ່ນ invoked ເປັນ shell ເຂົ້າສູ່ລະບົບແບບໂຕ້ຕອບ, ຫຼືເປັນ shell ທີ່ບໍ່ມີການໂຕ້ຕອບກັບ
--ເຂົ້າສູ່ລະບົບ ທາງເລືອກ, ມັນທໍາອິດອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກໄຟລ໌ / etc / profile, ຖ້າວ່າ
ໄຟລ໌ມີຢູ່. ຫຼັງຈາກອ່ານໄຟລ໌ນັ້ນ, ມັນຊອກຫາ ~ / .bash_profile, ~/.bash_login, ແລະ
~ /. ປະໂຫຍດ, ໃນຄໍາສັ່ງນັ້ນ, ແລະອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກອັນທໍາອິດທີ່ມີຢູ່
ແລະສາມາດອ່ານໄດ້. ໄດ້ --noprofile ທາງເລືອກອາດຈະຖືກນໍາໃຊ້ໃນເວລາທີ່ແກະເລີ່ມຕົ້ນທີ່ຈະຍັບຍັ້ງ
ພຶດຕິກໍານີ້.
ເມື່ອລະຫັດເຂົ້າສູ່ລະບົບອອກ, bash ອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກໄຟລ໌ ~/.bash_logout,
ຖ້າມັນມີຢູ່.
ເມື່ອ shell ແບບໂຕ້ຕອບທີ່ບໍ່ແມ່ນ shell ເຂົ້າສູ່ລະບົບເລີ່ມຕົ້ນ, bash ອ່ານແລະປະຕິບັດ
ຄໍາສັ່ງຈາກ /etc/bash.bashrc ແລະ ~ / bashrc, ຖ້າໄຟລ໌ເຫຼົ່ານີ້ມີຢູ່. ນີ້ອາດຈະຖືກຍັບຍັ້ງ
ໂດຍການນໍາໃຊ້ --norc ທາງເລືອກ. ທ --rcfile ເອກະສານ ທາງເລືອກຈະບັງຄັບ bash ອ່ານແລະປະຕິບັດ
ຄໍາສັ່ງຈາກ ເອກະສານ ແທນທີ່ /etc/bash.bashrc ແລະ ~ / bashrc.
ເມື່ອໃດ bash ແມ່ນເລີ່ມຕົ້ນທີ່ບໍ່ແມ່ນການໂຕ້ຕອບ, ເພື່ອດໍາເນີນການ Shell script, ສໍາລັບຕົວຢ່າງ, ມັນຊອກຫາ
ຕົວແປ BASH_ENV ໃນສະພາບແວດລ້ອມ, ຂະຫຍາຍມູນຄ່າຂອງມັນຖ້າມັນປາກົດຢູ່ທີ່ນັ້ນ, ແລະນໍາໃຊ້
ຄ່າທີ່ຂະຫຍາຍເປັນຊື່ຂອງໄຟລ໌ທີ່ຈະອ່ານ ແລະດໍາເນີນການ. Bash ປະຕິບັດຕົວຄືກັບວ່າ
ຄໍາສັ່ງຕໍ່ໄປນີ້ຖືກປະຕິບັດ:
ຖ້າ [ -n "$BASH_ENV" ]; ແລ້ວ. "$BASH_ENV"; ຟີ
ແຕ່ມູນຄ່າຂອງ PATH ຕົວແປບໍ່ໄດ້ໃຊ້ເພື່ອຊອກຫາຊື່ໄຟລ໌.
If bash ຖືກເອີ້ນດ້ວຍຊື່ sh, ມັນພະຍາຍາມ mimic ພຶດຕິກໍາການເລີ່ມຕົ້ນຂອງປະຫວັດສາດ
ຮຸ່ນຂອງ sh ຢ່າງໃກ້ຊິດເທົ່າທີ່ເປັນໄປໄດ້, ໃນຂະນະທີ່ສອດຄ່ອງກັບມາດຕະຖານ POSIX ເຊັ່ນກັນ.
ໃນເວລາທີ່ຮຽກຮ້ອງໃຫ້ເປັນແກະເຂົ້າສູ່ລະບົບແບບໂຕ້ຕອບ, ຫຼືແກະທີ່ບໍ່ແມ່ນໂຕ້ຕອບກັບ --ເຂົ້າສູ່ລະບົບ
ທາງເລືອກ, ມັນທໍາອິດພະຍາຍາມອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກ / etc / profile ແລະ ~ /. ປະໂຫຍດ,
ໃນຄໍາສັ່ງນັ້ນ. ໄດ້ --noprofile ທາງເລືອກອາດຈະຖືກນໍາໃຊ້ເພື່ອຍັບຍັ້ງພຶດຕິກໍານີ້. ເມື່ອຖືກເອີ້ນ
ເປັນ shell ແບບໂຕ້ຕອບທີ່ມີຊື່ sh, bash ຊອກຫາຕົວແປ ENV, ຂະຫຍາຍຂອງມັນ
value ຖ້າມັນຖືກກໍານົດ, ແລະໃຊ້ຄ່າທີ່ຂະຫຍາຍເປັນຊື່ຂອງໄຟລ໌ທີ່ຈະອ່ານແລະ
ປະຕິບັດ. ນັບຕັ້ງແຕ່ Shell ໄດ້ invoked ເປັນ sh ບໍ່ພະຍາຍາມອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກ
ໄຟລ໌ການເລີ່ມຕົ້ນອື່ນໆ, ໄດ້ --rcfile ທາງເລືອກບໍ່ມີຜົນກະທົບ. ແກະທີ່ບໍ່ມີການໂຕ້ຕອບ
ຮຽກຮ້ອງດ້ວຍຊື່ sh ບໍ່ໄດ້ພະຍາຍາມອ່ານໄຟລ໌ເລີ່ມຕົ້ນອື່ນໆ. ເມື່ອຖືກເອີ້ນ
as sh, bash ເຂົ້າສູ່ລະບົບ ບວກ ຮູບແບບຫຼັງຈາກໄຟລ໌ເລີ່ມຕົ້ນຖືກອ່ານ.
ເມື່ອໃດ bash ແມ່ນໄດ້ເລີ່ມຕົ້ນໃນ ບວກ ຮູບແບບ, ເຊັ່ນດຽວກັນກັບ --posix ທາງເລືອກເສັ້ນຄໍາສັ່ງ, ມັນປະຕິບັດຕາມ
ມາດຕະຖານ POSIX ສໍາລັບໄຟລ໌ເລີ່ມຕົ້ນ. ໃນຮູບແບບນີ້, ການໂຕ້ຕອບ shells ຂະຫຍາຍການ ENV
ຕົວແປແລະຄໍາສັ່ງຖືກອ່ານແລະປະຕິບັດຈາກໄຟລ໌ທີ່ມີຊື່ຂະຫຍາຍ
ຄ່າ. ບໍ່ມີໄຟລ໌ເລີ່ມຕົ້ນອື່ນຖືກອ່ານ.
Bash ພະຍາຍາມກໍານົດເວລາທີ່ມັນຖືກແລ່ນດ້ວຍວັດສະດຸປ້ອນມາດຕະຖານຂອງມັນເຊື່ອມຕໍ່ກັບ a
ການເຊື່ອມຕໍ່ເຄືອຂ່າຍ, ເປັນເວລາທີ່ປະຕິບັດໂດຍ daemon ແກະຫ່າງໄກສອກຫຼີກ, ໂດຍປົກກະຕິ rshd, ຫຼື
Shell daemon ປອດໄພ sshທີ່ຢູ່ ຖ້າຫາກວ່າ bash ກໍານົດວ່າມັນຖືກດໍາເນີນການໃນຮູບແບບນີ້, ມັນອ່ານ
ແລະປະຕິບັດຄໍາສັ່ງຈາກ ~ / bashrc ແລະ ~ / bashrc, ຖ້າໄຟລ໌ເຫຼົ່ານີ້ມີຢູ່ແລະສາມາດອ່ານໄດ້.
ມັນຈະບໍ່ເຮັດແນວນີ້ຖ້າຖືກເອີ້ນເປັນ sh. ໄດ້ --norc ທາງເລືອກອາດຈະຖືກນໍາໃຊ້ເພື່ອຍັບຍັ້ງການນີ້
ພຶດຕິກໍາ, ແລະ --rcfile ທາງເລືອກອາດຈະຖືກໃຊ້ເພື່ອບັງຄັບໃຫ້ອ່ານໄຟລ໌ອື່ນ, ແຕ່
neither rshd neither ssh ໂດຍທົ່ວໄປແລ້ວ invoke ແກະທີ່ມີທາງເລືອກເຫຼົ່ານັ້ນຫຼືອະນຸຍາດໃຫ້ເຂົາເຈົ້າເປັນ
ລະບຸ.
ຖ້າ shell ແມ່ນເລີ່ມຕົ້ນດ້ວຍຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບ (ກຸ່ມ) id ບໍ່ເທົ່າກັບຜູ້ໃຊ້ທີ່ແທ້ຈິງ
(ກຸ່ມ) id, ແລະ -p ທາງເລືອກແມ່ນບໍ່ໄດ້ສະຫນອງໃຫ້, ບໍ່ມີໄຟລ໌ເລີ່ມຕົ້ນແມ່ນອ່ານ, ການທໍາງານຂອງແກະ
ບໍ່ໄດ້ຮັບການສືບທອດຈາກສິ່ງແວດລ້ອມ, ໄດ້ ແກະ, BASHOPTS, CDPATH, ແລະ GLOBIGNORE
ຕົວແປ, ຖ້າພວກມັນປາກົດຢູ່ໃນສະພາບແວດລ້ອມ, ຖືກລະເລີຍ, ແລະ id ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບແມ່ນ
ຕັ້ງເປັນ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງ. ຖ້າ -p ທາງເລືອກແມ່ນສະຫນອງໃຫ້ຢູ່ໃນການຮຽກຮ້ອງ, ພຶດຕິກໍາການເລີ່ມຕົ້ນ
ແມ່ນຄືກັນ, ແຕ່ id ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບບໍ່ໄດ້ຖືກຕັ້ງຄ່າໃຫມ່.
DEFINITIONS
ຄໍານິຍາມຕໍ່ໄປນີ້ຖືກນໍາໃຊ້ຕະຫຼອດສ່ວນທີ່ເຫຼືອຂອງເອກະສານນີ້.
ເປົ່າ ຍະຫວ່າງ ຫຼືແຖບ.
ຄໍາ ລຳດັບຂອງຕົວອັກສອນທີ່ຖືວ່າເປັນຫົວໜ່ວຍດຽວໂດຍແກະ. ທີ່ຮູ້ຈັກຍັງເປັນ
token.
ຊື່ A ຄໍາ ປະກອບດ້ວຍພຽງແຕ່ຕົວອັກສອນແລະຕົວອັກສອນແລະຕົວອັກສອນຫຍໍ້, ແລະການເລີ່ມຕົ້ນ
ດ້ວຍຕົວອັກສອນ ຫຼື ຂີດກ້ອງ. ຍັງເອີ້ນວ່າເປັນ ຕົວລະບຸ.
metacharacter
ລັກສະນະທີ່, ເມື່ອ unquoted, ແຍກຄໍາສັບຕ່າງໆ. ໜຶ່ງໃນສິ່ງຕໍ່ໄປນີ້:
| & ; ( ) < > ຊ່ອງ ແຖບ
ການຄວບຄຸມ ປະຕິບັດການ
A token ທີ່ປະຕິບັດຫນ້າທີ່ຄວບຄຸມ. ມັນແມ່ນ ໜຶ່ງ ໃນສັນຍາລັກຕໍ່ໄປນີ້:
|| & && ; ;; ( ) | |&
ແກ້ໄຂ ຄໍາສັບຕ່າງໆ
Reserved ຄໍາເວົ້າ ແມ່ນຄໍາທີ່ມີຄວາມຫມາຍພິເສດສໍາລັບແກະ. ຄໍາຕໍ່ໄປນີ້
ຖືກຮັບຮູ້ວ່າສະຫງວນໄວ້ເມື່ອ unquoted ແລະທັງຄໍາທໍາອິດຂອງຄໍາສັ່ງງ່າຍດາຍ
(ເບິ່ງ SHELL ໄວຍະກອນ ຂ້າງລຸ່ມນີ້) ຫຼືຄໍາທີສາມຂອງ a ກໍລະນີ or ສໍາລັບການ ຄໍາສັ່ງ:
! ກໍລະນີ coproc do ເຮັດ ເອລີຟ ອື່ນ ວ່າ C fi ສໍາລັບການ ຫນ້າທີ່ if in ເລືອກ ຫຼັງຈາກນັ້ນ ຈົນກ່ວາ ໃນຂະນະທີ່ { }
ທີ່ໃຊ້ເວລາ [[ ]]
SHELL ໄວຍະກອນ
ງ່າຍດາຍ ຄໍາສັ່ງ
A ງ່າຍດາຍ ຄໍາສັ່ງ ແມ່ນລຳດັບຂອງວຽກທີ່ປ່ຽນເປັນທາງເລືອກຕາມມາ ເປົ່າ-
ຄໍາສັບຕ່າງໆທີ່ແຍກອອກແລະ redirections, ແລະສິ້ນສຸດໂດຍ a ການຄວບຄຸມ ປະຕິບັດການ. ຄໍາທໍາອິດ
ລະບຸຄໍາສັ່ງທີ່ຈະດໍາເນີນການ, ແລະຖືກສົ່ງຜ່ານເປັນ argument zero. ຄໍາທີ່ຍັງເຫຼືອ
ຖືກຖ່າຍທອດເປັນການໂຕ້ຖຽງກັບຄໍາສັ່ງທີ່ເອີ້ນ.
ຄ່າກັບຄືນຂອງ a ງ່າຍດາຍ ຄໍາສັ່ງ ແມ່ນສະຖານະທາງອອກຂອງມັນ, ຫຼື 128+n ຖ້າຄໍາສັ່ງແມ່ນ
ຢຸດໂດຍສັນຍານ n.
ທໍ່
A ທໍ່ ແມ່ນລໍາດັບຂອງຫນຶ່ງຫຼືຫຼາຍຄໍາສັ່ງທີ່ແຍກອອກໂດຍຫນຶ່ງໃນຕົວປະຕິບັດການຄວບຄຸມ
| or |&. ຮູບແບບຂອງທໍ່ສົ່ງແມ່ນ:
[ທີ່ໃຊ້ເວລາ [-p]] [ ! ] ຄໍາສັ່ງ [ [|⎪|&] ຄໍາສັ່ງ2 ... ]
ຜົນຜະລິດມາດຕະຖານຂອງ ຄໍາສັ່ງ ແມ່ນເຊື່ອມຕໍ່ຜ່ານທໍ່ກັບວັດສະດຸປ້ອນມາດຕະຖານ ຄໍາສັ່ງ2.
ການເຊື່ອມຕໍ່ນີ້ຖືກປະຕິບັດກ່ອນການປ່ຽນເສັ້ນທາງທີ່ກໍານົດໂດຍຄໍາສັ່ງ (ເບິ່ງ
ການປ່ຽນເສັ້ນທາງ ຂ້າງລຸ່ມນີ້). ຖ້າ |& ຖືກນໍາໃຊ້, ຄໍາສັ່ງຄວາມຜິດພາດມາດຕະຖານຂອງ, ນອກເຫນືອໄປຈາກມາດຕະຖານຂອງມັນ
ຜົນຜະລິດ, ແມ່ນເຊື່ອມຕໍ່ກັບ ຄໍາສັ່ງ2ການປ້ອນຂໍ້ມູນມາດຕະຖານຜ່ານທໍ່; ມັນແມ່ນ shorthand ສໍາລັບ
2> & 1 |. ນີ້ implicit redirection ຂອງຄວາມຜິດພາດມາດຕະຖານກັບຜົນໄດ້ຮັບມາດຕະຖານແມ່ນ
ປະຕິບັດຫຼັງຈາກການປ່ຽນເສັ້ນທາງທີ່ລະບຸໄວ້ໂດຍຄໍາສັ່ງ.
ສະຖານະການກັບຄືນຂອງທໍ່ແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍ, ເວັ້ນເສຍແຕ່ວ່າ
pipefail ທາງເລືອກແມ່ນເປີດໃຊ້ງານ. ຖ້າ pipefail ຖືກເປີດໃຊ້ງານ, ສະຖານະການສົ່ງຄືນຂອງທໍ່ແມ່ນ
ຄ່າຂອງຄໍາສັ່ງສຸດທ້າຍ (ຂວາສຸດ) ເພື່ອອອກດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ, ຫຼືສູນຖ້າທັງຫມົດ
ຄໍາສັ່ງອອກຈາກສົບຜົນສໍາເລັດ. ຖ້າຄໍາສະຫງວນ ! ລ່ວງໜ້າທໍ່ສົ່ງ, ສະຖານະທາງອອກ
ຂອງທໍ່ນັ້ນແມ່ນການປະຕິເສດຢ່າງມີເຫດຜົນຂອງສະຖານະທາງອອກດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງເທິງ. ແກະ
ລໍຖ້າຄໍາສັ່ງທັງໝົດໃນທໍ່ນັ້ນຢຸດກ່ອນທີ່ຈະສົ່ງຄືນຄ່າ.
ຖ້າ ທີ່ໃຊ້ເວລາ ຄໍາທີ່ສະຫງວນໄວ້ກ່ອນທໍ່, ເວລາທີ່ຜ່ານໄປເຊັ່ນດຽວກັນກັບຜູ້ໃຊ້ແລະລະບົບ
ການບໍລິໂພກໂດຍການປະຕິບັດຂອງມັນໄດ້ຖືກລາຍງານເມື່ອທໍ່ນັ້ນສິ້ນສຸດລົງ. ໄດ້ -p ທາງເລືອກ
ປ່ຽນຮູບແບບຜົນຜະລິດເປັນທີ່ລະບຸໂດຍ POSIX. ເມື່ອແກະຢູ່ໃນ ບວກ ຮູບແບບການ, ມັນ
ບໍ່ຮັບຮູ້ ທີ່ໃຊ້ເວລາ ເປັນຄໍາທີ່ສະຫງວນໄວ້ຖ້າ token ຕໍ່ໄປເລີ່ມຕົ້ນດ້ວຍ `-'. ໄດ້
TIMEFORMAT ຕົວແປອາດຈະຖືກຕັ້ງເປັນສະຕຣິງຮູບແບບທີ່ກໍານົດວິທີການກໍານົດເວລາ
ຂໍ້ມູນຄວນຈະຖືກສະແດງ; ເບິ່ງລາຍລະອຽດຂອງ TIMEFORMAT ພາຍໃຕ້ການ Shell Variables
ຂ້າງລຸ່ມນີ້.
ເມື່ອແກະຢູ່ໃນ ບວກ ຮູບແບບການ, ທີ່ໃຊ້ເວລາ ອາດຈະຕິດຕາມດ້ວຍແຖວໃໝ່. ໃນກໍລະນີດັ່ງກ່າວນີ້, ໄດ້
shell ສະແດງເວລາຂອງຜູ້ໃຊ້ທັງຫມົດແລະລະບົບທີ່ບໍລິໂພກໂດຍແກະແລະລູກຂອງມັນ. ໄດ້
TIMEFORMAT ຕົວແປອາດຈະຖືກນໍາໃຊ້ເພື່ອກໍານົດຮູບແບບຂອງຂໍ້ມູນເວລາ.
ແຕ່ລະຄໍາສັ່ງໃນທໍ່ຖືກປະຕິບັດເປັນຂະບວນການແຍກຕ່າງຫາກ (ie, ໃນ subshell).
ລາຍການ
A ບັນຊີລາຍຊື່ ແມ່ນລໍາດັບຂອງທໍ່ຫນຶ່ງຫຼືຫຼາຍທໍ່ທີ່ແຍກອອກໂດຍຫນຶ່ງໃນຜູ້ປະກອບການ ;, &, &&,
or ||, ແລະທາງເລືອກທີ່ຢຸດເຊົາໂດຍຫນຶ່ງໃນ ;, &, ຫຼື .
ໃນບັນຊີລາຍຊື່ປະຕິບັດການເຫຼົ່ານີ້, && ແລະ || ມີສ່ວນນຳໜ້າເທົ່າທຽມກັນ, ຖັດມາດ້ວຍ ; ແລະ &, ເຊິ່ງມີ
ກ່ອນຫນ້າທີ່ເທົ່າທຽມກັນ.
ລຳດັບຂອງໜຶ່ງ ຫຼືຫຼາຍແຖວໃໝ່ອາດຈະປາກົດຢູ່ໃນ a ບັນຊີລາຍຊື່ ແທນທີ່ຈະເປັນ semicolon ເພື່ອ delimit
ຄຳ ສັ່ງ.
ຖ້າຄໍາສັ່ງຖືກຢຸດໂດຍຜູ້ປະຕິບັດການຄວບຄຸມ &, shell ປະຕິບັດຄໍາສັ່ງໃນ
ໄດ້ ຄວາມເປັນມາ ໃນ subshell ເປັນ. ແກະບໍ່ໄດ້ລໍຖ້າຄໍາສັ່ງທີ່ຈະສໍາເລັດ, ແລະ
ສະຖານະກັບຄືນແມ່ນ 0. ຄໍາສັ່ງແຍກໂດຍ a ; ຖືກປະຕິບັດຕາມລໍາດັບ; ແກະລໍຖ້າ
ສໍາລັບແຕ່ລະຄໍາສັ່ງທີ່ຈະສິ້ນສຸດໃນທາງກັບກັນ. ສະຖານະການກັບຄືນແມ່ນສະຖານະການອອກຂອງສຸດທ້າຍ
ຄໍາສັ່ງປະຕິບັດ.
AND ແລະ OR ບັນຊີລາຍຊື່ແມ່ນລໍາດັບຂອງຫນຶ່ງໃນທໍ່ເພີ່ມເຕີມທີ່ແຍກອອກໂດຍ && ແລະ || ການຄວບຄຸມ
ຜູ້ປະກອບການ, ຕາມລໍາດັບ. AND ແລະ OR ຈະຖືກປະຕິບັດດ້ວຍການເຊື່ອມໂຍງຊ້າຍ. AND
ບັນຊີລາຍຊື່ມີແບບຟອມ
ຄໍາສັ່ງ1 && ຄໍາສັ່ງ2
ຄໍາສັ່ງ2 ຖືກປະຕິບັດຖ້າຫາກວ່າ, ແລະພຽງແຕ່ຖ້າຫາກວ່າ, ຄໍາສັ່ງ1 ສົ່ງຄືນສະຖານະອອກຈາກສູນ.
ບັນຊີລາຍຊື່ OR ມີແບບຟອມ
ຄໍາສັ່ງ1 || ຄໍາສັ່ງ2
ຄໍາສັ່ງ2 ຖືກປະຕິບັດຖ້າຫາກວ່າແລະພຽງແຕ່ຖ້າຫາກວ່າ ຄໍາສັ່ງ1 ສົ່ງຄືນສະຖານະທາງອອກທີ່ບໍ່ແມ່ນສູນ. ກັບຄືນ
ສະຖານະຂອງ AND ແລະ OR lists ແມ່ນສະຖານະທາງອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ດໍາເນີນຢູ່ໃນລາຍການ.
ສົມທົບ ຄໍາສັ່ງ
A ປະສົມປະສານ ຄໍາສັ່ງ ແມ່ນຫນຶ່ງໃນຕໍ່ໄປນີ້. ໃນກໍລະນີຫຼາຍທີ່ສຸດ a ບັນຊີລາຍຊື່ ໃນຄໍາສັ່ງ
ຄໍາອະທິບາຍອາດຈະຖືກແຍກອອກຈາກສ່ວນທີ່ເຫຼືອຂອງຄໍາສັ່ງໂດຍຫນຶ່ງຫຼືຫຼາຍສາຍໃຫມ່, ແລະອາດຈະ
ຕິດຕາມດ້ວຍແຖວໃໝ່ແທນເຄື່ອງໝາຍຈຸດ.
(ບັນຊີລາຍຊື່) ບັນຊີລາຍຊື່ ຖືກປະຕິບັດໃນສະພາບແວດລ້ອມ subshell (ເບິ່ງ ຄໍາສັ່ງ ການປະຕິບັດ ENVIRONMENT
ຂ້າງລຸ່ມນີ້). ການມອບຫມາຍຕົວແປແລະຄໍາສັ່ງ builtin ທີ່ມີຜົນກະທົບຂອງ shell
ສະພາບແວດລ້ອມບໍ່ຍັງຄົງມີຜົນຫຼັງຈາກຄໍາສັ່ງສໍາເລັດ. ສະຖານະພາບກັບຄືນ
ແມ່ນສະຖານະພາບທາງອອກຂອງ ບັນຊີລາຍຊື່.
{ ບັນຊີລາຍຊື່; }
ບັນຊີລາຍຊື່ ຖືກປະຕິບັດພຽງແຕ່ໃນສະພາບແວດລ້ອມຂອງແກະໃນປະຈຸບັນ. ບັນຊີລາຍຊື່ ຕ້ອງໄດ້ຮັບການຢຸດເຊົາ
ດ້ວຍແຖວໃໝ່ ຫຼືເຄື່ອງໝາຍຈຸດ. ນີ້ແມ່ນເປັນທີ່ຮູ້ຈັກເປັນ ກຸ່ມ ຄໍາສັ່ງ. ສະຖານະພາບກັບຄືນ
ແມ່ນສະຖານະພາບທາງອອກຂອງ ບັນຊີລາຍຊື່. ໃຫ້ສັງເກດວ່າບໍ່ຄືກັບ metacharacters ( ແລະ ), { ແລະ }
ມີ ສະຫງວນໄວ້ ຄໍາເວົ້າ ແລະຕ້ອງເກີດຂຶ້ນບ່ອນທີ່ຄໍາສະຫງວນໄດ້ຖືກອະນຸຍາດໃຫ້ເປັນ
ຮັບຮູ້. ເນື່ອງຈາກວ່າພວກເຂົາບໍ່ເຮັດໃຫ້ເກີດການແຕກແຍກ, ພວກເຂົາຕ້ອງແຍກອອກຈາກ ບັນຊີລາຍຊື່
ໂດຍຊ່ອງຫວ່າງ ຫຼືຕົວແປຂອງແກະອື່ນ.
((ການສະແດງອອກ))
ໄດ້ ການສະແດງອອກ ຖືກປະເມີນຕາມກົດລະບຽບທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້ AITHMETIC
ການວິເຄາະ. ຖ້າຄ່າຂອງການສະແດງຜົນບໍ່ແມ່ນສູນ, ສະຖານະກັບຄືນແມ່ນ 0;
ຖ້າບໍ່ດັ່ງນັ້ນສະຖານະກັບຄືນແມ່ນ 1. ອັນນີ້ເທົ່າກັບ ໃຫ້ "ການສະແດງອອກ".
[[ ການສະແດງອອກ ]]
ສົ່ງຄືນສະຖານະຂອງ 0 ຫຼື 1 ຂຶ້ນກັບການປະເມີນການສະແດງອອກຕາມເງື່ອນໄຂ
ການສະແດງອອກ. ການສະແດງອອກແມ່ນປະກອບດ້ວຍຂັ້ນຕົ້ນທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້
ສະພາບແວດລ້ອມ ການສະແດງອອກ. ການແຍກຄໍາແລະການຂະຫຍາຍຊື່ເສັ້ນທາງບໍ່ໄດ້ດໍາເນີນການ
ກ່ຽວກັບຄໍາສັບຕ່າງໆລະຫວ່າງ [[ ແລະ ]]; ການຂະຫຍາຍ tilde, ພາລາມິເຕີແລະຕົວແປ
ການຂະຫຍາຍຕົວ, ການຂະຫຍາຍຕົວເລກຄະນິດສາດ, ການທົດແທນຄໍາສັ່ງ, ການທົດແທນຂະບວນການ, ແລະ
ການໂຍກຍ້າຍໃບຄໍາຮ້ອງແມ່ນດໍາເນີນການ. ຜູ້ປະກອບການທີ່ມີເງື່ອນໄຂເຊັ່ນ: -f ຕ້ອງໄດ້ຮັບການ unquoted ກັບ
ໄດ້ຮັບການຍອມຮັບເປັນປະຖົມ.
ເມື່ອໃຊ້ກັບ [[, ການ < ແລະ > ຜູ້ປະກອບການຈັດຮຽງ lexicographically ໂດຍໃຊ້ປະຈຸບັນ
ທ້ອງຖິ່ນ.
ເບິ່ງລາຍລະອຽດຂອງ ການທົດສອບ ຄໍາສັ່ງ builtin (ພາກ SHELL BUILTIN ຄໍາສັ່ງຂ້າງລຸ່ມນີ້) ສໍາລັບ
ການຈັດການພາລາມິເຕີ (ເຊັ່ນ: ຕົວກໍານົດການທີ່ຂາດຫາຍໄປ).
ໃນເວລາທີ່ == ແລະ != operators ຖືກນໍາໃຊ້, string ທາງດ້ານຂວາຂອງ operator ແມ່ນ
ພິຈາລະນາຮູບແບບແລະກົງກັນຕາມກົດລະບຽບທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້ ຮູບແບບ
ການຈັບຄູ່, ຄືກັບວ່າ extglob ຕົວເລືອກ shell ຖືກເປີດໃຊ້. ໄດ້ = operator ແມ່ນທຽບເທົ່າກັບ
==. ຖ້າຫາກວ່າທາງເລືອກ shell nocasematch ຖືກເປີດໃຊ້ງານ, ການແຂ່ງຂັນແມ່ນດໍາເນີນການໂດຍບໍ່ຄໍານຶງເຖິງ
ກໍລະນີຂອງຕົວອັກສອນ. ຄ່າກັບຄືນແມ່ນ 0 ຖ້າສະຕຣິງກົງກັນ (==) ຫຼື
ບໍ່ກົງກັນ (!=) ຮູບແບບ, ແລະ 1 ຖ້າບໍ່ດັ່ງນັ້ນ. ບາງສ່ວນຂອງຮູບແບບອາດຈະຖືກອ້າງອີງ
ເພື່ອບັງຄັບໃຫ້ສ່ວນທີ່ອ້າງອີງຖືກຈັບຄູ່ເປັນສະຕຣິງ.
ຕົວປະຕິບັດການສອງເພີ່ມເຕີມ, =~, ແມ່ນມີຢູ່, ໂດຍມີລໍາດັບດຽວກັນກັບ == ແລະ !=.
ເມື່ອມັນຖືກນໍາໃຊ້, ສະຕິງທາງຂວາຂອງຕົວປະຕິບັດການແມ່ນຖືວ່າເປັນການຂະຫຍາຍປົກກະຕິ
ການສະແດງອອກແລະກົງກັນຕາມຄວາມເຫມາະສົມ (ໃນ regex(3)). ຄ່າກັບຄືນແມ່ນ 0 ຖ້າສະຕຣິງ
ກົງກັບຮູບແບບ, ແລະ 1 ຖ້າບໍ່ດັ່ງນັ້ນ. ຖ້າການສະແດງອອກປົກກະຕິແມ່ນ syntactically
ບໍ່ຖືກຕ້ອງ, ຄ່າຕອບແທນຂອງການສະແດງຜົນຕາມເງື່ອນໄຂແມ່ນ 2. ຖ້າຕົວເລືອກ shell
nocasematch ຖືກເປີດໃຊ້, ການຈັບຄູ່ແມ່ນດໍາເນີນການໂດຍບໍ່ຄໍານຶງເຖິງກໍລະນີຂອງຕົວອັກສອນ
ຕົວລະຄອນ. ພາກສ່ວນໃດນຶ່ງຂອງຮູບແບບອາດຈະຖືກອ້າງອີງເພື່ອບັງຄັບໃຫ້ສ່ວນທີ່ອ້າງອີງເປັນ
ຈັບຄູ່ເປັນສະຕຣິງ. ການສະແດງອອກໃນວົງເລັບໃນການສະແດງປົກກະຕິຕ້ອງໄດ້ຮັບການປະຕິບັດ
ລະມັດລະວັງ, ນັບຕັ້ງແຕ່ລັກສະນະການອ້າງອີງປົກກະຕິຈະສູນເສຍຄວາມຫມາຍລະຫວ່າງວົງເລັບ. ຖ້າ
ຮູບແບບແມ່ນເກັບໄວ້ຢູ່ໃນຕົວປ່ຽນແປງແກະ, quoting ການຂະຫຍາຍຕົວປ່ຽນໄດ້ບັງຄັບທັງຫມົດ
ຮູບແບບທີ່ຈະຖືກຈັບຄູ່ເປັນສະຕຣິງ. ສະຕຣິງຍ່ອຍຖືກຈັບຄູ່ໂດຍຫຍໍ້ໜ້າຍ່ອຍ
ພາຍໃນ expression ປົກກະຕິຈະຖືກບັນທຶກໄວ້ໃນຕົວແປ array BASH_REMATCH. ອົງປະກອບ
of BASH_REMATCH ກັບ index 0 ແມ່ນສ່ວນຂອງສະຕຣິງທີ່ກົງກັບປົກກະຕິທັງຫມົດ
ການສະແດງອອກ. ອົງປະກອບຂອງ BASH_REMATCH ກັບດັດຊະນີ n ແມ່ນສ່ວນຫນຶ່ງຂອງສາຍ
ກົງກັບ nth ການສະແດງອອກຍ່ອຍວົງເລັບ.
ການສະແດງອອກອາດຈະຖືກລວມເຂົ້າກັນໂດຍໃຊ້ຕົວປະຕິບັດການຕໍ່ໄປນີ້, ລະບຸໄວ້ໃນລໍາດັບຫຼຸດລົງຂອງ
ກ່ອນໜ້າ:
( ການສະແດງອອກ )
ຕອບຄ່າຂອງ ການສະແດງອອກ. ນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອ override ປົກກະຕິ
ລຳດັບຕົວດຳເນີນການ.
! ການສະແດງອອກ
ຄວາມຈິງຖ້າ ການສະແດງອອກ ແມ່ນບໍ່ຖືກຕ້ອງ.
ການສະແດງອອກ1 && ການສະແດງອອກ2
ຄວາມຈິງຖ້າທັງສອງ ການສະແດງອອກ1 ແລະ ການສະແດງອອກ2 ແມ່ນຄວາມຈິງ.
ການສະແດງອອກ1 || ການສະແດງອອກ2
ເປັນຈິງຖ້າຫາກວ່າ ການສະແດງອອກ1 or ການສະແດງອອກ2 ແມ່ນຄວາມຈິງ.
ໄດ້ && ແລະ || ຜູ້ປະກອບການບໍ່ໄດ້ປະເມີນ ການສະແດງອອກ2 ຖ້າຫາກວ່າມູນຄ່າຂອງ ການສະແດງອອກ1 is
ພຽງພໍເພື່ອກໍານົດມູນຄ່າກັບຄືນຂອງການສະແດງເງື່ອນໄຂທັງຫມົດ.
ສໍາລັບການ ຊື່ [ [ in [ ຄໍາ ... ] ] ; ] do ບັນຊີລາຍຊື່ ; ເຮັດ
ບັນຊີລາຍຊື່ຂອງຄໍາສັບຕ່າງໆດັ່ງຕໍ່ໄປນີ້ in ຖືກຂະຫຍາຍອອກ, ສ້າງບັນຊີລາຍຊື່ຂອງລາຍການ. ໄດ້
ຕົວແປ ຊື່ ຖືກຕັ້ງໃຫ້ແຕ່ລະອົງປະກອບຂອງບັນຊີລາຍຊື່ນີ້ໃນທາງກັບກັນ, ແລະ ບັນຊີລາຍຊື່ ຖືກປະຕິບັດ
ແຕ່ລະຄັ້ງ. ຖ້າ in ຄໍາ ຖືກລະເວັ້ນ, ໄດ້ ສໍາລັບການ ຄໍາສັ່ງປະຕິບັດ ບັນຊີລາຍຊື່ ຄັ້ງດຽວສໍາລັບແຕ່ລະຄົນ
ຕົວກໍານົດການຕໍາແຫນ່ງທີ່ຖືກກໍານົດ (ເບິ່ງ PARAMETERS ຂ້າງລຸ່ມນີ້). ສະຖານະພາບກັບຄືນແມ່ນ
ອອກຈາກສະຖານະຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ປະຕິບັດ. ຖ້າຫາກວ່າການຂະຫຍາຍຕົວຂອງລາຍການ
ດັ່ງຕໍ່ໄປນີ້ in ຜົນໄດ້ຮັບໃນບັນຊີລາຍຊື່ເປົ່າ, ບໍ່ມີຄໍາສັ່ງຖືກປະຕິບັດ, ແລະການກັບຄືນ
ສະຖານະແມ່ນ 0.
ສໍາລັບການ (( expr1 ; expr2 ; expr3 ) ); do ບັນຊີລາຍຊື່ ; ເຮັດ
ຫນ້າທໍາອິດ, ການສະແດງອອກເລກເລກ expr1 ຖືກປະເມີນຕາມລະບຽບການ
ອະທິບາຍຂ້າງລຸ່ມນີ້ AITHMETIC ການວິເຄາະ. ການສະແດງອອກທາງເລກຄະນິດ expr2 is
ຫຼັງຈາກນັ້ນການປະເມີນຊ້ໍາຈົນກ່ວາມັນປະເມີນເປັນສູນ. ແຕ່ລະຄັ້ງ expr2 ປະເມີນເຖິງ
ຄ່າທີ່ບໍ່ແມ່ນສູນ, ບັນຊີລາຍຊື່ ຖືກປະຕິບັດແລະການສະແດງອອກເລກເລກ expr3 is
ການປະເມີນຜົນ. ຖ້າຫາກວ່າການສະແດງອອກໃດຫນຶ່ງຖືກຍົກເວັ້ນ, ມັນປະຕິບັດເປັນຖ້າຫາກວ່າມັນປະເມີນຜົນກັບ 1
ມູນຄ່າກັບຄືນແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍໃນ ບັນຊີລາຍຊື່ ທີ່ຖືກປະຕິບັດ, ຫຼື
false ຖ້າການສະແດງອອກອັນໃດບໍ່ຖືກຕ້ອງ.
ເລືອກ ຊື່ [ in ຄໍາ 🇧🇷 do ບັນຊີລາຍຊື່ ; ເຮັດ
ບັນຊີລາຍຊື່ຂອງຄໍາສັບຕ່າງໆດັ່ງຕໍ່ໄປນີ້ in ຖືກຂະຫຍາຍອອກ, ສ້າງບັນຊີລາຍຊື່ຂອງລາຍການ. ຊຸດຂອງ
ຄໍາສັບທີ່ຂະຫຍາຍອອກແມ່ນພິມຢູ່ໃນຄວາມຜິດພາດມາດຕະຖານ, ແຕ່ລະຄໍານໍາຫນ້າດ້ວຍຕົວເລກ. ຖ້າ
in ຄໍາ ຖືກລະເວັ້ນ, ຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນພິມອອກ (ເບິ່ງ PARAMETERS ດ້ານລຸ່ມ).
ໄດ້ PS3 ຫຼັງຈາກນັ້ນ, prompt ຈະຖືກສະແດງແລະແຖວທີ່ອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານ. ຖ້າ
ເສັ້ນປະກອບດ້ວຍຕົວເລກທີ່ສອດຄ້ອງກັບຫນຶ່ງໃນຄໍາທີ່ສະແດງ, ຫຼັງຈາກນັ້ນ
ມູນຄ່າຂອງ ຊື່ ຖືກຕັ້ງເປັນຄໍານັ້ນ. ຖ້າເສັ້ນຫວ່າງເປົ່າ, ຄໍາສັບແລະການກະຕຸ້ນເຕືອນແມ່ນ
ສະແດງອີກຄັ້ງ. ຖ້າ EOF ຖືກອ່ານ, ຄໍາສັ່ງຈະສໍາເລັດ. ຄ່າອື່ນໃດອ່ານ
ສາເຫດ ຊື່ ຈະຖືກຕັ້ງເປັນ null. ເສັ້ນທີ່ອ່ານຖືກບັນທຶກໄວ້ໃນຕົວແປ REPLY. ໄດ້
ບັນຊີລາຍຊື່ ຖືກປະຕິບັດຫຼັງຈາກແຕ່ລະການຄັດເລືອກຈົນກ່ວາ a ພັກຜ່ອນ ຄໍາສັ່ງຖືກປະຕິບັດ. ທາງອອກ
ສະຖານະພາບຂອງ ເລືອກ ແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດໃນ ບັນຊີລາຍຊື່, ຫຼືສູນ
ຖ້າບໍ່ມີຄໍາສັ່ງຖືກປະຕິບັດ.
ກໍລະນີ ຄໍາ in [ [(] ຮູບແບບ [ | ຮູບແບບ ] ... ) ບັນຊີລາຍຊື່ ;; ]... ວ່າ C
A ກໍລະນີ ຄໍາສັ່ງທໍາອິດຂະຫຍາຍ ຄໍາ, ແລະພະຍາຍາມທີ່ຈະຈັບຄູ່ກັບແຕ່ລະຄົນ ຮູບແບບ in
ຫັນ, ການນໍາໃຊ້ກົດລະບຽບການຈັບຄູ່ດຽວກັນກັບການຂະຫຍາຍຊື່ເສັ້ນທາງ (ເບິ່ງ ຊື່ເສັ້ນທາງ
ການຂະຫຍາຍຕົວ ຂ້າງລຸ່ມນີ້). ໄດ້ ຄໍາ ຖືກຂະຫຍາຍໂດຍໃຊ້ tilde expansion, parameter ແລະ
ການຂະຫຍາຍຕົວປ່ຽນແປງ, ການທົດແທນເລກຄະນິດສາດ, ການທົດແທນຄໍາສັ່ງ, ຂະບວນການ
ການທົດແທນແລະການໂຍກຍ້າຍໃບຄໍາຮ້ອງ. ແຕ່ລະ ຮູບແບບ ການກວດສອບແມ່ນຂະຫຍາຍໂດຍໃຊ້ tilde
ການຂະຫຍາຍຕົວ, ຕົວກໍານົດການແລະການຂະຫຍາຍຕົວປ່ຽນແປງ, ການທົດແທນເລກຄະນິດສາດ, ຄໍາສັ່ງ
ການທົດແທນ, ແລະການທົດແທນຂະບວນການ. ຖ້າຫາກວ່າທາງເລືອກ shell nocasematch is
ເປີດໃຊ້ງານແລ້ວ, ການແຂ່ງຂັນແມ່ນດໍາເນີນການໂດຍບໍ່ຄໍານຶງເຖິງກໍລະນີຂອງຕົວອັກສອນ
ຕົວລະຄອນ. ເມື່ອພົບການແຂ່ງຂັນ, ກົງກັນ ບັນຊີລາຍຊື່ ຖືກປະຕິບັດ. ຖ້າ ;;
ໂຕປະຕິບັດການຖືກນໍາໃຊ້, ບໍ່ມີການພະຍາຍາມຈັບຄູ່ຕໍ່ໄປຫຼັງຈາກຮູບແບບທໍາອິດ
ກົງກັນ. ການນໍາໃຊ້ ;& ໃນສະຖານທີ່ຂອງ ;; ເຮັດໃຫ້ການປະຕິບັດທີ່ຈະສືບຕໍ່ກັບ ບັນຊີລາຍຊື່
ກ່ຽວຂ້ອງກັບຊຸດຮູບແບບຕໍ່ໄປ. ການນໍາໃຊ້ ;;& ໃນສະຖານທີ່ຂອງ ;; ສາເຫດ
shell ເພື່ອທົດສອບບັນຊີລາຍຊື່ຮູບແບບຕໍ່ໄປໃນຄໍາຖະແຫຼງການ, ຖ້າມີ, ແລະດໍາເນີນການໃດໆ
ທີ່ກ່ຽວຂ້ອງ ບັນຊີລາຍຊື່ ໃນການແຂ່ງຂັນທີ່ປະສົບຜົນສໍາເລັດ. ສະຖານະການອອກແມ່ນສູນຖ້າບໍ່ມີຮູບແບບ
ການແຂ່ງຂັນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດໃນ ບັນຊີລາຍຊື່.
if ບັນຊີລາຍຊື່; ຫຼັງຈາກນັ້ນ ບັນຊີລາຍຊື່; [ ເອລີຟ ບັນຊີລາຍຊື່; ຫຼັງຈາກນັ້ນ ບັນຊີລາຍຊື່; ] ... [ ອື່ນ ບັນຊີລາຍຊື່; ] fi
ໄດ້ if ບັນຊີລາຍຊື່ ຖືກປະຕິບັດ. ຖ້າສະຖານະອອກຂອງມັນແມ່ນສູນ, the ຫຼັງຈາກນັ້ນ ບັນຊີລາຍຊື່ ຖືກປະຫານຊີວິດ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ແຕ່ລະຄົນ ເອລີຟ ບັນຊີລາຍຊື່ ຖືກປະຕິບັດໃນທາງກັບກັນ, ແລະຖ້າສະຖານະການອອກຂອງມັນແມ່ນສູນ, the
ທີ່ສອດຄ້ອງກັນ ຫຼັງຈາກນັ້ນ ບັນຊີລາຍຊື່ ຖືກປະຕິບັດແລະຄໍາສັ່ງສໍາເລັດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້ ອື່ນ
ບັນຊີລາຍຊື່ ຖືກປະຕິບັດ, ຖ້າມີ. ສະຖານະການອອກແມ່ນສະຖານະການອອກຂອງສຸດທ້າຍ
ຄໍາສັ່ງປະຕິບັດ, ຫຼືສູນຖ້າຫາກວ່າບໍ່ມີການທົດສອບເງື່ອນໄຂເປັນຄວາມຈິງ.
ໃນຂະນະທີ່ ລາຍການ-1; do ລາຍການ-2; ເຮັດ
ຈົນກ່ວາ ລາຍການ-1; do ລາຍການ-2; ເຮັດ
ໄດ້ ໃນຂະນະທີ່ ຄໍາສັ່ງດໍາເນີນການຢ່າງຕໍ່ເນື່ອງບັນຊີລາຍຊື່ ລາຍການ-2 ຕາບໃດທີ່ຄໍາສັ່ງສຸດທ້າຍ
ໃນບັນຊີລາຍຊື່ ລາຍການ-1 ສົ່ງຄືນສະຖານະອອກຈາກສູນ. ໄດ້ ຈົນກ່ວາ ຄໍາສັ່ງແມ່ນຄືກັນ
ການ ໃນຂະນະທີ່ ຄໍາສັ່ງ, ຍົກເວັ້ນວ່າການທົດສອບແມ່ນ negated; ລາຍການ-2 ຖືກປະຕິບັດເປັນຍາວ
ເປັນຄໍາສັ່ງສຸດທ້າຍໃນ ລາຍການ-1 ສົ່ງຄືນສະຖານະທາງອອກທີ່ບໍ່ແມ່ນສູນ. ສະຖານະພາບທາງອອກຂອງ
ໄດ້ ໃນຂະນະທີ່ ແລະ ຈົນກ່ວາ ຄໍາສັ່ງແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດໃນ
ລາຍການ-2, ຫຼືສູນຖ້າບໍ່ມີໃຜຖືກປະຕິບັດ.
ຂະບວນການປະສົມ
A ຂະບວນການຮ່ວມ ແມ່ນຄຳສັ່ງ shell ທີ່ນຳໜ້າດ້ວຍ coproc ຄໍາສະຫງວນ. ຂະບວນການຮ່ວມກັນແມ່ນ
ປະຕິບັດ asynchronously ໃນ subshell, ຄືກັບວ່າຄໍາສັ່ງໄດ້ຖືກຢຸດເຊົາກັບ &
ປະຕິບັດການຄວບຄຸມ, ມີທໍ່ສອງທາງສ້າງຕັ້ງຂຶ້ນລະຫວ່າງແກະປະຕິບັດແລະ
ຂະບວນການຮ່ວມ.
ຮູບແບບຂອງຂະບວນການຮ່ວມກັນແມ່ນ:
coproc [NAME] ຄໍາສັ່ງ [ການປ່ຽນເສັ້ນທາງ]
ນີ້ສ້າງຂະບວນການທີ່ມີຊື່ NAMEທີ່ຢູ່ ຖ້າຫາກວ່າ NAME ບໍ່ໄດ້ສະໜອງໃຫ້, ຊື່ເລີ່ມຕົ້ນແມ່ນ COPROC.
NAME ບໍ່ຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ຖ້າຫາກວ່າ ຄໍາສັ່ງ ເປັນ ງ່າຍດາຍ ຄໍາສັ່ງ (ເບິ່ງຢູ່ຂ້າງເທິງ); ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນແມ່ນ
ແປເປັນຄໍາທໍາອິດຂອງຄໍາສັ່ງງ່າຍດາຍ. ໃນເວລາທີ່ coprocess ໄດ້ຖືກປະຕິບັດ, ໄດ້
shell ສ້າງຕົວແປ array (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ຊື່ NAME ໃນສະພາບການຂອງ
ປະຕິບັດ shell. ຜົນຜະລິດມາດຕະຖານຂອງ ຄໍາສັ່ງ ແມ່ນເຊື່ອມຕໍ່ຜ່ານທໍ່ກັບໄຟລ໌
descriptor ໃນ shell ປະຕິບັດ, ແລະ descriptor ໄຟລ໌ນັ້ນຖືກມອບຫມາຍໃຫ້ NAME[0]. ໄດ້
ການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງ ຄໍາສັ່ງ ແມ່ນເຊື່ອມຕໍ່ຜ່ານທໍ່ກັບຕົວອະທິບາຍໄຟລ໌ໃນການປະຕິບັດ
shell, ແລະຕົວອະທິບາຍໄຟລ໌ນັ້ນຖືກມອບຫມາຍໃຫ້ NAME[1]. ທໍ່ນີ້ແມ່ນສ້າງຕັ້ງຂຶ້ນກ່ອນ
ການປ່ຽນເສັ້ນທາງໃດໆທີ່ລະບຸໄວ້ໂດຍຄໍາສັ່ງ (ເບິ່ງ ການປ່ຽນເສັ້ນທາງ ຂ້າງລຸ່ມນີ້). ຕົວອະທິບາຍໄຟລ໌
ສາມາດຖືກນໍາໃຊ້ເປັນການໂຕ້ຖຽງກັບຄໍາສັ່ງ Shell ແລະການປ່ຽນເສັ້ນທາງໂດຍໃຊ້ຄໍາມາດຕະຖານ
ການຂະຫຍາຍຕົວ. ຕົວອະທິບາຍໄຟລ໌ບໍ່ມີຢູ່ໃນ subshells. ID ຂະບວນການຂອງ
shell spawned ເພື່ອປະຕິບັດ coprocess ແມ່ນມີຢູ່ເປັນມູນຄ່າຂອງຕົວແປ NAME_PID.
ໄດ້ ລໍຖ້າ ຄໍາສັ່ງ buildin ອາດຈະຖືກນໍາໃຊ້ເພື່ອລໍຖ້າໃຫ້ coprocess ສິ້ນສຸດລົງ.
ນັບຕັ້ງແຕ່ coprocess ຖືກສ້າງຂື້ນເປັນຄໍາສັ່ງ asynchronous, ໄດ້ coproc ຄໍາສັ່ງສະເຫມີ
ຜົນສໍາເລັດກັບຄືນມາ. ສະຖານະການກັບຄືນຂອງ coprocess ແມ່ນສະຖານະການອອກຂອງ ຄໍາສັ່ງ.
Shell ຫນ້າທີ່ ຄໍານິຍາມ
ຟັງຊັນ Shell ແມ່ນວັດຖຸທີ່ຖືກເອີ້ນວ່າເປັນຄໍາສັ່ງງ່າຍດາຍແລະປະຕິບັດການປະສົມ
ຄໍາສັ່ງທີ່ມີຊຸດໃຫມ່ຂອງຕົວກໍານົດການຕໍາແຫນ່ງ. ຟັງຊັນ Shell ຖືກປະກາດດັ່ງຕໍ່ໄປນີ້:
ຊື່ () ຄໍາສັ່ງປະສົມ [ຕົວຊີ້ທິດທາງ]
ຫນ້າທີ່ ຊື່ [()] ຄໍາສັ່ງປະສົມ [ຕົວຊີ້ທິດທາງ]
ນີ້ກໍານົດຫນ້າທີ່ທີ່ມີຊື່ ຊື່. ຄໍາສະຫງວນ ຫນ້າທີ່ ເປັນທາງເລືອກ. ຖ້າ
ໄດ້ ຫນ້າທີ່ ຄໍາສະຫງວນແມ່ນສະຫນອງໃຫ້, ວົງເລັບແມ່ນທາງເລືອກ. ໄດ້ ຮ່າງກາຍ of
ຫນ້າທີ່ແມ່ນຄໍາສັ່ງປະສົມ ຄໍາສັ່ງປະສົມ (ເບິ່ງ ສົມທົບ ຄໍາສັ່ງ
ຂ້າງເທິງ). ຄໍາສັ່ງນັ້ນແມ່ນປົກກະຕິແລ້ວ a ບັນຊີລາຍຊື່ ຂອງຄໍາສັ່ງລະຫວ່າງ { ແລະ }, ແຕ່ອາດຈະເປັນອັນໃດກໍໄດ້
ຄໍາສັ່ງລະບຸໄວ້ພາຍໃຕ້ ສົມທົບ ຄໍາສັ່ງ ຂ້າງເທິງ. ຄໍາສັ່ງປະສົມ ຖືກປະຕິບັດ
ທຸກໆຄັ້ງ ຊື່ ຖືກກໍານົດເປັນຊື່ຂອງຄໍາສັ່ງງ່າຍດາຍ. ເມື່ອຢູ່ໃນ ບວກ ຮູບແບບການ,
ຊື່ ອາດຈະບໍ່ແມ່ນຊື່ຂອງຫນຶ່ງໃນ POSIX ພິເສດ ເຄື່ອງກໍ່ສ້າງ. ການປ່ຽນເສັ້ນທາງໃດໆ
(ເບິ່ງ ການປ່ຽນເສັ້ນທາງ ຂ້າງລຸ່ມນີ້) ກໍານົດເວລາທີ່ກໍານົດການທໍາງານໄດ້ຖືກປະຕິບັດໃນເວລາທີ່
ຟັງຊັນຖືກປະຕິບັດ. ສະຖານະອອກຂອງນິຍາມຟັງຊັນແມ່ນສູນ ເວັ້ນເສຍແຕ່ a
ຂໍ້ຜິດພາດຂອງ syntax ເກີດຂື້ນຫຼືມີຟັງຊັນ readonly ທີ່ມີຊື່ດຽວກັນຢູ່ແລ້ວ. ເມື່ອໃດ
ຖືກປະຕິບັດແລ້ວ, ສະຖານະການອອກຂອງຟັງຊັນແມ່ນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍ
ປະຕິບັດຢູ່ໃນຮ່າງກາຍ. (ເບິ່ງ FUNCTIONS ດ້ານລຸ່ມ.)
COMMENTS
ໃນ Shell ທີ່ບໍ່ມີການໂຕ້ຕອບ, ຫຼື shell ແບບໂຕ້ຕອບທີ່ interactive_comments
ທາງເລືອກໃນການ ຮ້ານຄ້າ buildin ຖືກເປີດໃຊ້ງານ (ເບິ່ງ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້), ຄໍາ
ເລີ່ມຕົ້ນດ້ວຍ # ເຮັດໃຫ້ຄຳສັບນັ້ນ ແລະຕົວອັກສອນທີ່ເຫຼືອທັງໝົດຢູ່ໃນແຖວນັ້ນຖືກລະເລີຍ.
ແກະແບບໂຕ້ຕອບໂດຍບໍ່ມີການ interactive_comments ທາງເລືອກທີ່ເປີດໃຊ້ງານບໍ່ອະນຸຍາດໃຫ້
ຄໍາເຫັນ. ໄດ້ interactive_comments ທາງເລືອກແມ່ນເປີດເປັນຄ່າເລີ່ມຕົ້ນໃນການໂຕ້ຕອບ shells.
ອ້າງອີງ
Quoting ຖືກນໍາໃຊ້ເພື່ອເອົາຄວາມຫມາຍພິເສດຂອງຕົວອັກສອນຫຼືຄໍາສັບຕ່າງໆໃຫ້ກັບແກະ.
Quoting ສາມາດຖືກນໍາໃຊ້ເພື່ອປິດການປິ່ນປົວພິເສດສໍາລັບລັກສະນະພິເສດ, ເພື່ອປ້ອງກັນ
ຄໍາທີ່ສະຫງວນໄວ້ຈາກການຖືກຮັບຮູ້ເປັນເຊັ່ນນັ້ນ, ແລະເພື່ອປ້ອງກັນການຂະຫຍາຍຕົວກໍານົດການ.
ແຕ່ລະຂອງ metacharacters ລະບຸໄວ້ຂ້າງເທິງພາຍໃຕ້ DEFINITIONS ມີຄວາມຫມາຍພິເສດສໍາລັບແກະ
ແລະຕ້ອງໄດ້ຮັບການອ້າງອີງຖ້າມັນເປັນຕົວແທນຂອງຕົວມັນເອງ.
ໃນເວລາທີ່ສະຖານທີ່ຂະຫຍາຍປະຫວັດສາດຄໍາສັ່ງຖືກນໍາໃຊ້ (ເບິ່ງ ປະຫວັດຄວາມເປັນ EXPANSION
ຂ້າງລຸ່ມນີ້), ໄດ້ ປະຫວັດສາດ ການຂະຫຍາຍຕົວ ລັກສະນະ, ປົກກະຕິແລ້ວ !, ຕ້ອງໄດ້ຮັບການອ້າງອີງເພື່ອປ້ອງກັນປະຫວັດສາດ
ການຂະຫຍາຍຕົວ.
ມີສາມກົນໄກການອ້າງອີງ: ໄດ້ escape ລັກສະນະ, quotes ດຽວ, ແລະ double
ວົງຢືມ.
backslash ທີ່ບໍ່ແມ່ນວົງຢືມ (\) ແມ່ນ escape ລັກສະນະ. ມັນຮັກສາມູນຄ່າທີ່ແທ້ຈິງຂອງ
ລັກສະນະຕໍ່ໄປທີ່ປະຕິບັດຕາມ, ຍົກເວັ້ນ . ຖ້າ ກ \ຄູ່
ປະກົດຂຶ້ນ, ແລະ backslash ບໍ່ໄດ້ອ້າງເຖິງຕົວຂອງມັນເອງ, the \ຖືກປະຕິບັດເປັນເສັ້ນ
ສືບຕໍ່ (ນັ້ນແມ່ນ, ມັນຖືກໂຍກຍ້າຍອອກຈາກກະແສການປ້ອນຂໍ້ມູນແລະຖືກລະເລີຍຢ່າງມີປະສິດທິພາບ).
ການໃສ່ຕົວລະຄອນໃນວົງຢືມດຽວຈະຮັກສາຄຸນຄ່າຕົວໜັງສືຂອງແຕ່ລະຕົວອັກສອນພາຍໃນ
ວົງຢືມ. ວົງຢືມດຽວອາດຈະບໍ່ເກີດຂຶ້ນລະຫວ່າງວົງຢືມດຽວ, ເຖິງແມ່ນວ່າຈະນໍາຫນ້າດ້ວຍ a
backslash.
ການໃສ່ຕົວລະຄອນໃນວົງຢືມຄູ່ຈະຮັກສາຄ່າຕົວໜັງສືຂອງຕົວອັກສອນທັງໝົດພາຍໃນ
ວົງຢືມ, ຍົກເວັ້ນ $, `, \, ແລະ, ເມື່ອການຂະຫຍາຍປະຫວັດສາດຖືກເປີດໃຊ້, !. ໄດ້
ລັກສະນະ $ ແລະ ` ຮັກສາຄວາມຫມາຍພິເສດຂອງພວກເຂົາພາຍໃນວົງຢືມສອງເທົ່າ. backslash ໄດ້
ຮັກສາຄວາມໝາຍພິເສດສະເພາະເມື່ອຕິດຕາມດ້ວຍໜຶ່ງໃນລັກສະນະຕໍ່ໄປນີ້: $, `,
", \, ຫຼື . ວົງຢືມຄູ່ອາດຈະຖືກອ້າງອີງພາຍໃນວົງຢືມຄູ່ໂດຍການນໍາໜ້າ
ກັບ backslash ເປັນ. ຖ້າເປີດໃຊ້, ການຂະຫຍາຍປະຫວັດຈະຖືກປະຕິບັດເວັ້ນເສຍແຕ່ວ່າມີ ! ປາກົດຕົວ
ໃນວົງຢືມຄູ່ແມ່ນຫລົບຫນີໂດຍໃຊ້ backslash. backslash ກ່ອນຫນ້າ ! ບໍ່ແມ່ນ
ລົບອອກ.
ຕົວກໍານົດການພິເສດ * ແລະ @ ມີຄວາມຫມາຍພິເສດເມື່ອຢູ່ໃນວົງຢືມສອງ (ເບິ່ງ PARAMETERS
ດ້ານລຸ່ມ).
ຄໍາສັບຂອງແບບຟອມ $'string' ແມ່ນໄດ້ຮັບການປິ່ນປົວເປັນພິເສດ. ຄໍາສັບຂະຫຍາຍໄປ string, ກັບ
ຕົວອັກສອນ backslash-escape ຖືກແທນທີ່ຕາມທີ່ລະບຸໄວ້ໂດຍມາດຕະຖານ ANSI C. Backslash
ລໍາດັບ escape, ຖ້າມີ, ຖືກຖອດລະຫັດດັ່ງຕໍ່ໄປນີ້:
\a ເຕືອນ (ກະດິ່ງ)
\b ພື້ນຫຼັງ
\e
\E ລັກສະນະຫລົບຫນີ
\f ອາຫານແບບຟອມ
\n ເສັ້ນ ໃໝ່
\r ສົ່ງຄືນ
\t ແຖບແນວນອນ
\v ແຖບແນວຕັ້ງ
\\ backslash
\' quote ດຽວ
\" ວົງຢືມຄູ່
\nnn ຕົວອັກສອນແປດບິດທີ່ມີຄ່າເປັນຄ່າແປດ nnn (ຫນຶ່ງຫາສາມ
ຕົວເລກ)
\xHH ຕົວອັກສອນແປດບິດທີ່ມີມູນຄ່າເປັນເລກຖານສິບຫົກ HH (ຫນຶ່ງຫຼືສອງ
ຕົວເລກ hex)
\uຮຮ. ຮ ຕົວອັກສອນ Unicode (ISO/IEC 10646) ທີ່ມີຄ່າເປັນເລກຖານສິບຫົກ
ຮຮ. ຮ (ຫນຶ່ງຫາສີ່ຕົວເລກ hex)
\UHHHHHHH
ຕົວອັກສອນ Unicode (ISO/IEC 10646) ທີ່ມີຄ່າເປັນເລກຖານສິບຫົກ
HHHHHHH (ຫນຶ່ງຫາແປດຕົວເລກ hex)
\cx ການຄວບຄຸມ -x ລັກສະນະ
ຜົນໄດ້ຮັບທີ່ຂະຫຍາຍອອກແມ່ນຄໍາເວົ້າດຽວ, ຄືກັບວ່າເຄື່ອງຫມາຍເງິນໂດລາບໍ່ມີຢູ່.
ສະຕຣິງທີ່ອ້າງອີງສອງເທື່ອນຳໜ້າດ້ວຍເຄື່ອງໝາຍເງິນໂດລາ ($"string") ຈະເຮັດໃຫ້ສະຕຣິງເປັນ
ແປຕາມທ້ອງຖິ່ນໃນປະຈຸບັນ. ຖ້າທ້ອງຖິ່ນປະຈຸບັນແມ່ນ C or POSIX, ການ
ປ້າຍເງິນໂດລາຖືກລະເລີຍ. ຖ້າສາຍຖືກແປແລະປ່ຽນແທນ, ການທົດແທນແມ່ນ
double-quoted.
PARAMETERS
A ພາລາມິເຕີ ແມ່ນຫົວໜ່ວຍທີ່ເກັບຮັກສາຄຸນຄ່າ. ມັນສາມາດເປັນ ຊື່, ຈໍານວນ, ຫຼືຫນຶ່ງຂອງ
ຕົວອັກສອນພິເສດທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້ ພິເສດ ຕົວກໍານົດການ. A ຕົວແປ ແມ່ນຕົວກໍານົດການ
ໝາຍເຖິງ ກ ຊື່. ຕົວແປມີ a ມູນຄ່າ ແລະສູນ ຫຼືຫຼາຍກວ່ານັ້ນ attributes. ຄຸນລັກສະນະແມ່ນ
ມອບຫມາຍໂດຍນໍາໃຊ້ ປະກາດ ຄໍາສັ່ງ builtin (ເບິ່ງ ປະກາດ ຂ້າງລຸ່ມນີ້ໃນ SHELL ອາຄານ ສາມາດ).
ພາລາມິເຕີຖືກຕັ້ງຖ້າມັນຖືກມອບຫມາຍຄ່າ. ສະຕຣິງ null ເປັນຄ່າທີ່ຖືກຕ້ອງ.
ເມື່ອຕົວແປຖືກຕັ້ງ, ມັນອາດຈະບໍ່ໄດ້ຕັ້ງພຽງແຕ່ໂດຍໃຊ້ຕົວແປ ກຳ ນົດ ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL
ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
A ຕົວແປ ອາດຈະຖືກມອບຫມາຍໃຫ້ໂດຍຄໍາຖະແຫຼງຂອງແບບຟອມ
ຊື່=[ມູນຄ່າ]
If ມູນຄ່າ ບໍ່ໄດ້ຖືກມອບໃຫ້, ຕົວແປແມ່ນໄດ້ມອບໝາຍສະຕຣິງ null. ທັງໝົດ ຄ່າ undergo tilde
ການຂະຫຍາຍຕົວ, ຕົວກໍານົດການແລະຕົວປ່ຽນແປງ, ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍຕົວເລກຄະນິດສາດ,
ແລະການລົບລ້າງຄໍາເວົ້າ (ເບິ່ງ EXPANSION ຂ້າງລຸ່ມນີ້). ຖ້າຕົວແປມີຂອງມັນ integer ກໍານົດຄຸນລັກສະນະ,
ຫຼັງຈາກນັ້ນ ມູນຄ່າ ຖືກປະເມີນວ່າເປັນການສະແດງອອກທາງເລກເລກເຖິງແມ່ນວ່າການຂະຫຍາຍ $((...)) ບໍ່ແມ່ນ
ໃຊ້ (ເບິ່ງ ເລກຄະນິດສາດ ການຂະຫຍາຍຕົວ ຂ້າງລຸ່ມນີ້). ການແຍກຄໍາສັບບໍ່ໄດ້ຖືກປະຕິບັດ, ກັບ
ຂໍ້ຍົກເວັ້ນຂອງ "$@" ດັ່ງທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້ ພິເສດ ຕົວກໍານົດການ. ການຂະຫຍາຍເສັ້ນທາງບໍ່ແມ່ນ
ປະຕິບັດ. ຄໍາຖະແຫຼງການມອບຫມາຍອາດຈະປາກົດເປັນການໂຕ້ຖຽງກັບ alias, ປະກາດ,
ປະເພດ, ການສົ່ງອອກ, ອ່ານຢ່າງດຽວ, ແລະ ທ້ອງຖິ່ນ ຄໍາສັ່ງ builtin. ເມື່ອຢູ່ໃນ ບວກ ຮູບແບບການ, buildins ເຫຼົ່ານີ້
ອາດຈະປາກົດຢູ່ໃນຄໍາສັ່ງຫຼັງຈາກຫນຶ່ງຫຼືຫຼາຍຕົວຢ່າງຂອງ ຄໍາສັ່ງ builtin ແລະຮັກສາ
ຄຸນສົມບັດການປະກາດການມອບໝາຍເຫຼົ່ານີ້.
ໃນສະພາບການທີ່ຄໍາຖະແຫຼງການການມອບຫມາຍກໍາລັງກໍານົດຄ່າທີ່ເປັນຕົວແປ shell ຫຼື
array index, ໂຕປະຕິບັດການ += ສາມາດໃຊ້ເພື່ອຕໍ່ທ້າຍ ຫຼືເພີ່ມໃສ່ຕົວແປກ່ອນໜ້າ
ຄ່າ. ເມື່ອ += ຖືກນຳໃຊ້ກັບຕົວແປທີ່ integer ຄຸນລັກສະນະໄດ້ຖືກກໍານົດໄວ້,
ມູນຄ່າ ຖືກປະເມີນເປັນການສະແດງຜົນເລກເລກ ແລະເພີ່ມໃສ່ຄ່າປັດຈຸບັນຂອງຕົວແປ,
ເຊິ່ງຖືກປະເມີນເຊັ່ນກັນ. ເມື່ອ += ຖືກນຳໃຊ້ກັບຕົວແປ array ໂດຍໃຊ້ປະສົມ
ການມອບໝາຍ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້), ຄ່າຂອງຕົວແປແມ່ນບໍ່ໄດ້ຕັ້ງ (ຍ້ອນວ່າມັນແມ່ນໃນເວລາທີ່ໃຊ້ =),
ແລະຄ່າໃໝ່ຖືກຕໍ່ທ້າຍກັບ array ເລີ່ມຕົ້ນທີ່ໜຶ່ງໃຫຍ່ກວ່າຄ່າສູງສຸດຂອງ array
index (ສໍາລັບ indexed arrays) ຫຼືເພີ່ມເປັນຄູ່ key-value ເພີ່ມເຕີມໃນ array ທີ່ກ່ຽວຂ້ອງ.
ເມື່ອນຳໃຊ້ກັບຕົວແປທີ່ມີຄ່າສະຕຣິງ, ມູນຄ່າ ແມ່ນຂະຫຍາຍແລະຕໍ່ທ້າຍກັບຕົວແປ
ມູນຄ່າ.
ຕົວແປສາມາດຖືກມອບຫມາຍໃຫ້ ຊື່ref ຄຸນລັກສະນະການນໍາໃຊ້ -n ທາງເລືອກໃນການ ປະກາດ or
ທ້ອງຖິ່ນ ຄໍາສັ່ງ builtin (ເບິ່ງລາຍລະອຽດຂອງ ປະກາດ ແລະ ທ້ອງຖິ່ນ ຂ້າງລຸ່ມນີ້) ເພື່ອສ້າງເປັນ
ຊື່ref, ຫຼືການອ້າງອີງເຖິງຕົວແປອື່ນ. ນີ້ອະນຸຍາດໃຫ້ຕົວແປຕ່າງໆຖືກຈັດການ
ໂດຍທາງອ້ອມ. ເມື່ອໃດກໍ່ຕາມຕົວແປ nameref ຖືກອ້າງອີງຫຼືມອບຫມາຍໃຫ້, ການດໍາເນີນງານແມ່ນ
ປະຕິບັດຕົວຈິງຢູ່ໃນຕົວແປທີ່ລະບຸໂດຍຄ່າຂອງຕົວແປ nameref. ຊື່ອ້າງອີງ
ຖືກໃຊ້ທົ່ວໄປພາຍໃນຟັງຊັນ shell ເພື່ອອ້າງອີງເຖິງຕົວແປທີ່ຊື່ຖືກສົ່ງຜ່ານເປັນ
ການໂຕ້ຖຽງກັບຫນ້າທີ່. ຕົວຢ່າງ, ຖ້າຊື່ຕົວແປຖືກສົ່ງໄປຫາຫນ້າທີ່ shell
ເປັນການໂຕ້ຖຽງທໍາອິດຂອງຕົນ, ແລ່ນ
ປະກາດ -n ref=$1
ພາຍໃນຟັງຊັນສ້າງຕົວແປ nameref ການອ້າງອີງຫຼັກ ມູນຄ່າຂອງມັນແມ່ນຊື່ຕົວແປທີ່ຜ່ານ
ເປັນການໂຕ້ຖຽງທໍາອິດ. ເອກະສານອ້າງອີງ ແລະມອບໝາຍໃຫ້ ການອ້າງອີງຫຼັກ ຖືກປະຕິບັດເປັນເອກະສານອ້າງອີງແລະ
ການມອບໝາຍໃຫ້ກັບຕົວແປທີ່ຊື່ຖືກສົ່ງເປັນ $1. ຖ້າຕົວແປການຄວບຄຸມໃນ a ສໍາລັບການ
loop ມີຄຸນລັກສະນະ nameref, ບັນຊີລາຍຊື່ຂອງຄໍາສັບຕ່າງໆສາມາດເປັນບັນຊີລາຍຊື່ຂອງຕົວແປຂອງແກະ, ແລະ a
ການອ້າງອິງຊື່ຈະຖືກສ້າງຕັ້ງຂຶ້ນສໍາລັບແຕ່ລະຄໍາໃນບັນຊີລາຍຊື່, ໃນທາງກັບກັນ, ໃນເວລາທີ່ loop ແມ່ນ
ປະຕິບັດ. ຕົວແປອາເຣບໍ່ສາມາດໃຫ້ໄດ້ -n ຄຸນລັກສະນະ. ຢ່າງໃດກໍຕາມ, ຕົວແປ nameref
ສາມາດອ້າງອີງຕົວແປ array ແລະຕົວແປ array subscripted. Namerefs ສາມາດຖືກຍົກເລີກໄດ້
ການນໍາໃຊ້ -n ທາງເລືອກໃນການ ກຳ ນົດ ກໍ່ສ້າງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າ ກຳ ນົດ ຖືກປະຕິບັດດ້ວຍຊື່
ຂອງຕົວແປ nameref ເປັນ argument, ຕົວແປທີ່ອ້າງອີງໂດຍຕົວແປ nameref ຈະ
ບໍ່ໄດ້ຕັ້ງ.
ຕຳ ແໜ່ງ ຕົວກໍານົດການ
A ຕຳ ແໜ່ງ ພາລາມິເຕີ ແມ່ນຕົວກໍານົດການສະແດງໂດຍຕົວເລກຫນຶ່ງຫຼືຫຼາຍ, ນອກເຫນືອຈາກຕົວເລກດຽວ
digit 0. ພາລາມິເຕີຕຳແໜ່ງຖືກມອບໝາຍຈາກອາກິວເມັນຂອງແກະເມື່ອມັນຢູ່
invoked, ແລະອາດຈະຖືກມອບຫມາຍຄືນໃຫມ່ໂດຍໃຊ້ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin. ຕົວກໍານົດການຕໍາແຫນ່ງອາດຈະ
ບໍ່ໄດ້ມອບຫມາຍໃຫ້ກັບຄໍາຖະແຫຼງການມອບຫມາຍ. ຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນຊົ່ວຄາວ
ແທນທີ່ເມື່ອຟັງຊັນ shell ຖືກປະຕິບັດ (ເບິ່ງ FUNCTIONS ດ້ານລຸ່ມ).
ເມື່ອຕົວກໍານົດການຕໍາແຫນ່ງທີ່ປະກອບດ້ວຍຫຼາຍກວ່າຕົວເລກດຽວຖືກຂະຫຍາຍ, ມັນຕ້ອງເປັນ
ຫຸ້ມຢູ່ໃນວົງເລັບ (ເບິ່ງ EXPANSION ດ້ານລຸ່ມ).
ພິເສດ ຕົວກໍານົດການ
ແກະປະຕິບັດຕໍ່ຕົວກໍານົດການຫຼາຍອັນເປັນພິເສດ. ຕົວກໍານົດການເຫຼົ່ານີ້ພຽງແຕ່ອາດຈະຖືກອ້າງອີງ;
ບໍ່ອະນຸຍາດໃຫ້ມອບໝາຍໃຫ້ເຂົາເຈົ້າ.
* ຂະຫຍາຍໄປຫາຕົວກໍານົດການຕໍາແຫນ່ງ, ເລີ່ມຕົ້ນຈາກຫນຶ່ງ. ໃນເວລາທີ່ການຂະຫຍາຍຕົວບໍ່ແມ່ນ
ພາຍໃນວົງຢືມສອງເທົ່າ, ແຕ່ລະຕົວກໍານົດຕໍາແຫນ່ງຂະຫຍາຍໄປຫາຄໍາແຍກຕ່າງຫາກ. ໃນ
ສະພາບການທີ່ມັນຖືກປະຕິບັດ, ຄໍາເຫຼົ່ານັ້ນແມ່ນຂຶ້ນກັບການແຍກຄໍາສັບຕື່ມອີກ
ແລະການຂະຫຍາຍເສັ້ນທາງ. ເມື່ອການຂະຫຍາຍຕົວເກີດຂື້ນພາຍໃນວົງຢືມສອງເທົ່າ, ມັນຂະຫຍາຍອອກ
ໄປຫາຄໍາດຽວທີ່ມີຄ່າຂອງແຕ່ລະພາລາມິເຕີທີ່ແຍກອອກດ້ວຍຕົວອັກສອນທໍາອິດ
ຂອງ IFS ຕົວແປພິເສດ. ນັ້ນແມ່ນ, "$*"ເທົ່າກັບ"$1c$2c...", ທີ່ c
ແມ່ນລັກສະນະທໍາອິດຂອງມູນຄ່າຂອງ IFS ຕົວແປ. ຖ້າ IFS ບໍ່ໄດ້ຕັ້ງ, ໄດ້
ພາລາມິເຕີຖືກແຍກອອກໂດຍຊ່ອງຫວ່າງ. ຖ້າ IFS ແມ່ນ null, ຕົວກໍານົດການແມ່ນເຂົ້າຮ່ວມ
ໂດຍບໍ່ມີການແຊກແຊງຕົວແຍກ.
@ ຂະຫຍາຍໄປຫາຕົວກໍານົດການຕໍາແຫນ່ງ, ເລີ່ມຕົ້ນຈາກຫນຶ່ງ. ໃນເວລາທີ່ການຂະຫຍາຍຕົວເກີດຂຶ້ນ
ພາຍໃນວົງຢືມຄູ່, ແຕ່ລະພາລາມິເຕີຂະຫຍາຍໄປຫາຄໍາແຍກຕ່າງຫາກ. ນັ້ນແມ່ນ, "$@"ແມ່ນ
ເທົ່າກັບ "$1""$2" ... ຖ້າການຂະຫຍາຍຄໍາເວົ້າສອງຄັ້ງເກີດຂື້ນພາຍໃນຄໍາສັບໃດຫນຶ່ງ,
ການຂະຫຍາຍຕົວຂອງຕົວກໍານົດການທໍາອິດແມ່ນເຂົ້າຮ່ວມກັບພາກສ່ວນເລີ່ມຕົ້ນຂອງ
ຄໍາຕົ້ນສະບັບ, ແລະການຂະຫຍາຍຕົວກໍານົດການສຸດທ້າຍແມ່ນເຂົ້າຮ່ວມກັບສ່ວນສຸດທ້າຍ
ຂອງຄໍາຕົ້ນສະບັບ. ເມື່ອບໍ່ມີຕົວກໍານົດການຕໍາແຫນ່ງ, "$@"ແລະ $@ ຂະຫຍາຍ
ກັບບໍ່ມີຫຍັງ (ie, ພວກເຂົາເຈົ້າໄດ້ຖືກໂຍກຍ້າຍອອກ).
# ຂະຫຍາຍໄປເຖິງຈຳນວນຕົວກໍານົດການວາງຕຳແໜ່ງເປັນເລກທົດສະນິຍົມ.
? ຂະຫຍາຍໄປສູ່ສະຖານະທາງອອກຂອງທໍ່ທາງໜ້າທີ່ຖືກປະຕິບັດຫຼ້າສຸດ.
- ຂະຫຍາຍໄປໃສ່ທຸງທາງເລືອກປັດຈຸບັນຕາມທີ່ກຳນົດໄວ້ຕາມການຮຽກຮ້ອງ, ໂດຍ ທີ່ກໍານົດໄວ້
ຄໍາສັ່ງ builtin, ຫຼືທີ່ກໍານົດໂດຍ shell ຕົວມັນເອງ (ເຊັ່ນ: -i ທາງເລືອກ).
$ ຂະຫຍາຍໄປຫາ ID ຂະບວນການຂອງແກະ. ໃນ a () subshell, ມັນຂະຫຍາຍໄປຫາ
ID ຂະບວນການຂອງ shell ໃນປັດຈຸບັນ, ບໍ່ແມ່ນ subshell.
! ຂະຫຍາຍໄປຫາ ID ຂະບວນການຂອງວຽກທີ່ວາງໄວ້ໃນພື້ນຫຼັງຫຼ້າສຸດ,
ບໍ່ວ່າຈະຖືກປະຕິບັດເປັນຄໍາສັ່ງ asynchronous ຫຼືການນໍາໃຊ້ bg builtin (ເບິ່ງ JOB
ການຄວບຄຸມ ດ້ານລຸ່ມ).
0 ຂະຫຍາຍໄປໃສ່ຊື່ຂອງ shell ຫຼື shell script. ນີ້ແມ່ນກໍານົດໄວ້ໃນແກະ
ການເລີ່ມຕົ້ນ. ຖ້າ bash ຖືກເອີ້ນດ້ວຍໄຟລ໌ຄໍາສັ່ງ, $0 ຖືກຕັ້ງເປັນຊື່
ຂອງໄຟລ໌ນັ້ນ. ຖ້າ bash ແມ່ນເລີ່ມຕົ້ນດ້ວຍ -c ທາງເລືອກ, ຫຼັງຈາກນັ້ນ $0 ຖືກກໍານົດເປັນຄັ້ງທໍາອິດ
argument ຫຼັງຈາກ string ທີ່ຈະຖືກປະຕິບັດ, ຖ້າມີອັນຫນຶ່ງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຖືກກໍານົດ
ກັບຊື່ໄຟລ໌ທີ່ໃຊ້ເພື່ອເອີ້ນ bash, ຕາມທີ່ໃຫ້ໂດຍການໂຕ້ແຍ້ງສູນ.
_ ໃນຕອນເລີ່ມຕົ້ນ shell, ຕັ້ງເປັນຊື່ເສັ້ນທາງຢ່າງແທ້ຈິງທີ່ໃຊ້ເພື່ອເອີ້ນ shell ຫຼື shell
script ຖືກປະຕິບັດເປັນຜ່ານໃນສະພາບແວດລ້ອມຫຼືບັນຊີລາຍຊື່ argument. ຕໍ່ມາ,
ຂະຫຍາຍໄປສູ່ການໂຕ້ຖຽງສຸດທ້າຍກັບຄໍາສັ່ງທີ່ຜ່ານມາ, ຫຼັງຈາກການຂະຫຍາຍຕົວ. ຍັງຕັ້ງເປັນ
ຊື່ເສັ້ນທາງເຕັມທີ່ໃຊ້ເພື່ອເອີ້ນແຕ່ລະຄໍາສັ່ງທີ່ປະຕິບັດແລະວາງໄວ້ໃນ
ສະພາບແວດລ້ອມທີ່ຖືກສົ່ງອອກໄປຫາຄໍາສັ່ງນັ້ນ. ໃນເວລາທີ່ການກວດສອບເມລ, ຕົວກໍານົດການນີ້ຖື
ຊື່ຂອງໄຟລ໌ເມລທີ່ກໍາລັງຖືກກວດສອບ.
Shell Variables
ຕົວແປຕໍ່ໄປນີ້ຖືກກໍານົດໂດຍ shell:
BASH ຂະຫຍາຍໄປຫາຊື່ໄຟລ໌ເຕັມທີ່ໃຊ້ເພື່ອເອີ້ນຕົວຢ່າງນີ້ bash.
BASHOPTS
ບັນຊີລາຍຊື່ທີ່ແຍກອອກດ້ວຍຈໍ້າສອງເມັດຂອງຕົວເລືອກແກະທີ່ເປີດໃຊ້ງານ. ແຕ່ລະຄໍາທີ່ຢູ່ໃນບັນຊີລາຍຊື່ແມ່ນຖືກຕ້ອງ
ການໂຕ້ຖຽງສໍາລັບ -s ທາງເລືອກໃນການ ຮ້ານຄ້າ ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ
ຂ້າງລຸ່ມນີ້). ຕົວເລືອກທີ່ປາກົດຢູ່ໃນ BASHOPTS ທີ່ມີລາຍງານວ່າເປັນ on by ຮ້ານຄ້າທີ່ຢູ່ ຖ້າຫາກວ່າ
ຕົວແປນີ້ແມ່ນຢູ່ໃນສະພາບແວດລ້ອມໃນເວລາທີ່ bash ເລີ່ມຕົ້ນຂຶ້ນ, ແຕ່ລະທາງເລືອກ shell ໃນ
ບັນຊີລາຍຊື່ຈະຖືກເປີດໃຊ້ກ່ອນທີ່ຈະອ່ານໄຟລ໌ເລີ່ມຕົ້ນໃດໆ. ຕົວແປນີ້ແມ່ນອ່ານໄດ້ເທົ່ານັ້ນ.
BASHPID
ຂະຫຍາຍໄປຫາ ID ຂະບວນການຂອງປະຈຸບັນ bash ຂະບວນການ. ນີ້ແຕກຕ່າງຈາກ $$ ພາຍໃຕ້ການ
ສະຖານະການສະເພາະໃດຫນຶ່ງ, ເຊັ່ນ: subshells ທີ່ບໍ່ຕ້ອງການ bash ຈະເປັນຄືນໃຫມ່
ເລີ່ມຕົ້ນ.
BASH_ALIASES
ຕົວແປອາເຣທີ່ກ່ຽວຂ້ອງທີ່ສະມາຊິກກົງກັບລາຍຊື່ພາຍໃນຂອງ
ນາມແຝງທີ່ຮັກສາໄວ້ໂດຍ alias ກໍ່ສ້າງ. ອົງປະກອບທີ່ເພີ່ມໃສ່ array ນີ້ປາກົດຢູ່ໃນ
ບັນຊີລາຍຊື່ນາມແຝງ; ອົງປະກອບອາເຣທີ່ບໍ່ໄດ້ຕັ້ງຄ່າເຮັດໃຫ້ນາມແຝງຖືກລຶບອອກຈາກນາມແຝງ
ລາຍຊື່
BASH_ARGC
ຕົວແປ array ທີ່ມີຄ່າເປັນຈໍານວນພາລາມິເຕີໃນແຕ່ລະກອບຂອງ
ໃນປະຈຸບັນ bash ການປະຕິບັດການໂທ stack. ຈໍານວນຂອງຕົວກໍານົດການໃນປະຈຸບັນ
subroutine (ຟັງຊັນ Shell ຫຼື script ປະຕິບັດດ້ວຍ . or ແຫຼ່ງ) ຢູ່ເທິງສຸດຂອງ
stack ໄດ້. ເມື່ອບັນຊີຍ່ອຍຖືກປະຕິບັດ, ຈໍານວນຂອງຕົວກໍານົດການຜ່ານແມ່ນ
ຍູ້ໃສ່ BASH_ARGC. ແກະຊຸດ BASH_ARGC ພຽງແຕ່ໃນເວລາທີ່ຢູ່ໃນ debugging ຂະຫຍາຍ
ຮູບແບບ (ເບິ່ງລາຍລະອຽດຂອງ extdebug ທາງເລືອກໃນການ ຮ້ານຄ້າ builtin ຂ້າງລຸ່ມນີ້)
BASH_ARGV
ຕົວແປອາເຣທີ່ມີພາລາມິເຕີທັງໝົດໃນກະແສ bash ການປະຕິບັດ
ໂທຫາ stack. ຕົວກໍານົດການສຸດທ້າຍຂອງການໂທ subroutine ສຸດທ້າຍແມ່ນຢູ່ເທິງສຸດຂອງ
stack; ຕົວກໍານົດການທໍາອິດຂອງການໂທເບື້ອງຕົ້ນແມ່ນຢູ່ດ້ານລຸ່ມ. ໃນເວລາທີ່ເປັນ subroutine
ຖືກປະຕິບັດ, ຕົວກໍານົດການສະຫນອງແມ່ນ pushed ໃສ່ BASH_ARGV. ແກະຊຸດ
BASH_ARGV ພຽງແຕ່ໃນເວລາທີ່ຢູ່ໃນຮູບແບບ debugging ຂະຫຍາຍ (ເບິ່ງລາຍລະອຽດຂອງ extdebug
ທາງເລືອກໃນການ ຮ້ານຄ້າ builtin ຂ້າງລຸ່ມນີ້)
BASH_CMDS
ຕົວແປອາເຣທີ່ກ່ຽວຂ້ອງທີ່ສະມາຊິກກົງກັບຕາຕະລາງ hash ພາຍໃນ
ຂອງຄໍາສັ່ງທີ່ຮັກສາໄວ້ໂດຍ hash ກໍ່ສ້າງ. ອົງປະກອບທີ່ເພີ່ມໃສ່ array ນີ້ປາກົດ
ໃນຕາຕະລາງ hash; unsetting ອົງປະກອບ array ເຮັດໃຫ້ຄໍາສັ່ງທີ່ຈະຖືກລຶບອອກຈາກ
ຕາຕະລາງ hash.
BASH_COMMAND
ຄໍາສັ່ງປະຈຸບັນກໍາລັງຖືກປະຕິບັດຫຼືກໍາລັງຈະຖືກປະຕິບັດ, ເວັ້ນເສຍແຕ່ວ່າ shell ແມ່ນ
ການປະຕິບັດຄໍາສັ່ງເປັນຜົນມາຈາກການຈັ່ນຈັບ, ໃນກໍລະນີນີ້ມັນແມ່ນຄໍາສັ່ງ
ປະຕິບັດໃນເວລາທີ່ຈັ່ນຈັບໄດ້.
BASH_EXECUTION_STRING
ການໂຕ້ຖຽງຄໍາສັ່ງກັບ -c ທາງເລືອກການຮຽກຮ້ອງ.
BASH_LINENO
ຕົວແປ array ທີ່ສະມາຊິກແມ່ນຕົວເລກແຖວໃນໄຟລ໌ແຫຼ່ງທີ່ແຕ່ລະຄົນ
ສະມາຊິກທີ່ສອດຄ້ອງກັນຂອງ FUNCNAME ໄດ້ຖືກຮຽກຮ້ອງ. ${BASH_LINENO[$i]} ແມ່ນເສັ້ນ
ຕົວເລກໃນໄຟລ໌ຕົ້ນສະບັບ (${BASH_SOURCE[$i+1]}) ທີ່ ${FUNCNAME[$i]} ຖືກເອີ້ນວ່າ
(ຫຼື ${BASH_LINENO[$i-1]} ຖ້າອ້າງອີງພາຍໃນຟັງຊັນ shell ອື່ນ). ໃຊ້ LINENO
ເພື່ອໃຫ້ໄດ້ຮັບຈໍານວນແຖວປະຈຸບັນ.
BASH_REMATCH
ຕົວແປອາເຣທີ່ສະມາຊິກຖືກມອບໝາຍໂດຍ =~ ຕົວປະຕິບັດການຄູ່ກັບ [[
ຄໍາສັ່ງເງື່ອນໄຂ. ອົງປະກອບທີ່ມີດັດຊະນີ 0 ແມ່ນສ່ວນຂອງສະຕຣິງ
ກົງກັບການສະແດງຜົນປົກກະຕິທັງໝົດ. ອົງປະກອບທີ່ມີດັດຊະນີ n ແມ່ນສ່ວນຫນຶ່ງຂອງ
ຊ່ອຍແນ່ທີ່ກົງກັບ nth ການສະແດງອອກຍ່ອຍວົງເລັບ. ຕົວແປນີ້ແມ່ນອ່ານ -
ເທົ່ານັ້ນ.
BASH_SOURCE
ຕົວແປອາເຣທີ່ສະມາຊິກແມ່ນຊື່ໄຟລ໌ແຫຼ່ງທີ່ກົງກັນ
shell ຊື່ຟັງຊັນໃນ FUNCNAME array variable ຖືກກໍານົດ. ແກະ
ຫນ້າທີ່ ${FUNCNAME[$i]} ຖືກກໍານົດໄວ້ໃນໄຟລ໌ ${BASH_SOURCE[$i]} ແລະເອີ້ນຈາກ
${BASH_SOURCE[$i+1]}.
BASH_SUBSHELL
ເພີ່ມຂຶ້ນໂດຍຫນຶ່ງພາຍໃນແຕ່ລະ subshell ຫຼື subshell ສະພາບແວດລ້ອມໃນເວລາທີ່ shell
ເລີ່ມປະຕິບັດໃນສະພາບແວດລ້ອມນັ້ນ. ຄ່າເບື້ອງຕົ້ນແມ່ນ 0.
BASH_VERSINFO
ຕົວແປອາເຣທີ່ອ່ານຢ່າງດຽວທີ່ສະມາຊິກຖືຂໍ້ມູນສະບັບສໍາລັບຕົວຢ່າງນີ້
of bash. ຄ່າທີ່ກຳນົດໃຫ້ສະມາຊິກອາເຣມີດັ່ງນີ້:
BASH_VERSINFO[0] ຈໍານວນສະບັບທີ່ສໍາຄັນ (ໄດ້ ປ່ອຍ).
BASH_VERSINFO[1] ຕົວເລກສະບັບນ້ອຍ (the ສະບັບພາສາ).
BASH_VERSINFO[2] ລະດັບ patch.
BASH_VERSINFO[3] ສະບັບສ້າງ.
BASH_VERSINFO[4] ສະຖານະການປ່ອຍຕົວ (ຕົວຢ່າງ: ເບຕ້າ 1).
BASH_VERSINFO[5] ມູນຄ່າຂອງ MACHTYPE.
BASH_VERSION
ຂະຫຍາຍໄປຫາສະຕຣິງທີ່ອະທິບາຍເວີຊັນຂອງຕົວຢ່າງນີ້ bash.
COMP_CWORD
ດັດຊະນີເຂົ້າໄປໃນ ${COMP_WORDS} ຂອງຄໍາທີ່ມີຕໍາແຫນ່ງຕົວກະພິບໃນປະຈຸບັນ.
ຕົວແປນີ້ມີໃຫ້ຢູ່ໃນຟັງຊັນ shell ທີ່ຖືກເອີ້ນໂດຍ programmable ເທົ່ານັ້ນ
ສິ່ງອໍານວຍຄວາມສໍາເລັດ (ເບິ່ງ Programmable ສໍາເລັດ ດ້ານລຸ່ມ).
COMP_KEY
ກະແຈ (ຫຼືກະແຈສຸດທ້າຍຂອງລຳດັບຫຼັກ) ໃຊ້ເພື່ອຮຽກຮ້ອງການສຳເລັດປັດຈຸບັນ
function
COMP_LINE
ເສັ້ນຄໍາສັ່ງໃນປະຈຸບັນ. ຕົວແປນີ້ສາມາດໃຊ້ໄດ້ພຽງແຕ່ໃນຟັງຊັນ shell ແລະ
ຄໍາສັ່ງພາຍນອກຮຽກຮ້ອງໂດຍສະຖານທີ່ສໍາເລັດໂຄງການ (ເບິ່ງ
Programmable ສໍາເລັດ ດ້ານລຸ່ມ).
COMP_POINT
ດັດຊະນີຂອງຕໍາແຫນ່ງຕົວກະພິບໃນປັດຈຸບັນກ່ຽວກັບການເລີ່ມຕົ້ນຂອງປັດຈຸບັນ
ຄໍາສັ່ງ. ຖ້າຕໍາແຫນ່ງຕົວກະພິບປະຈຸບັນຢູ່ໃນຕອນທ້າຍຂອງຄໍາສັ່ງປະຈຸບັນ, the
ຄ່າຂອງຕົວແປນີ້ແມ່ນເທົ່າກັບ ${#COMP_LINE}. ຕົວແປນີ້ສາມາດໃຊ້ໄດ້ເທົ່ານັ້ນ
ໃນຟັງຊັນ shell ແລະຄໍາສັ່ງພາຍນອກທີ່ເອີ້ນໂດຍການສໍາເລັດໂຄງການ
ສິ່ງອໍານວຍຄວາມສະດວກ (ເບິ່ງ Programmable ສໍາເລັດ ດ້ານລຸ່ມ).
COMP_TYPE
ຕັ້ງເປັນຄ່າຈຳນວນເຕັມທີ່ສອດຄ້ອງກັບປະເພດຂອງການສຳເລັດທີ່ພະຍາຍາມນັ້ນ
ເຮັດໃຫ້ເກີດການສໍາເລັດຫນ້າທີ່ເອີ້ນວ່າ: TAB, ສໍາລັບການສໍາເລັດປົກກະຕິ, ?, for
ລາຍຊື່ສໍາເລັດຫຼັງຈາກແຖບຕິດຕໍ່ກັນ, !, ສໍາລັບລາຍຊື່ທາງເລືອກໃນບາງສ່ວນ
ການສໍາເລັດຄໍາສັບຕ່າງໆ, @, ເພື່ອລາຍຊື່ການສໍາເລັດຖ້າຫາກວ່າຄໍາບໍ່ໄດ້ຖືກດັດແກ້, ຫຼື %, for
ການສໍາເລັດເມນູ. ຕົວແປນີ້ມີໃຫ້ຢູ່ໃນຟັງຊັນ shell ແລະພາຍນອກເທົ່ານັ້ນ
ຄໍາສັ່ງທີ່ຮຽກຮ້ອງໂດຍສະຖານທີ່ສໍາເລັດໂຄງການ (ເບິ່ງ Programmable
ສໍາເລັດ ດ້ານລຸ່ມ).
COMP_WORDBREAKS
ຊຸດຂອງລັກສະນະທີ່ ເສັ້ນອ່ານ ຫ້ອງສະຫມຸດປະຕິບັດເປັນຕົວແຍກຄໍາສັບໃນເວລາທີ່
ປະຕິບັດການສໍາເລັດຄໍາສັບ. ຖ້າ COMP_WORDBREAKS ບໍ່ໄດ້ຕັ້ງ, ມັນສູນເສຍການພິເສດຂອງມັນ
ຄຸນສົມບັດ, ເຖິງແມ່ນວ່າມັນຈະຖືກປັບຕໍ່ມາ.
COMP_WORDS
ຕົວແປອາເຣ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ປະກອບດ້ວຍຄໍາສັບສ່ວນບຸກຄົນໃນ
ເສັ້ນຄໍາສັ່ງໃນປະຈຸບັນ. ເສັ້ນແບ່ງອອກເປັນຄໍາສັບ ເສັ້ນອ່ານ ຈະແບ່ງປັນມັນ,
ການນໍາໃຊ້ COMP_WORDBREAKS ດັ່ງທີ່ອະທິບາຍໄວ້ຂ້າງເທິງ. ຕົວແປນີ້ມີຢູ່ໃນແກະເທົ່ານັ້ນ
ຫນ້າທີ່ເອີ້ນໂດຍສະຖານທີ່ສໍາເລັດໂຄງການ (ເບິ່ງ Programmable
ສໍາເລັດ ດ້ານລຸ່ມ).
COPROC ຕົວແປອາເຣ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ສ້າງຂຶ້ນເພື່ອຖືຕົວອະທິບາຍໄຟລ໌ສໍາລັບ
ຜົນຜະລິດຈາກແລະການປ້ອນຂໍ້ມູນກັບການຮ່ວມມືທີ່ບໍ່ມີຊື່ (ເບິ່ງ ຂະບວນການປະສົມ ຂ້າງເທິງ).
DISTACK
ຕົວແປອາເຣ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ປະກອບດ້ວຍເນື້ອໃນປະຈຸບັນຂອງ
stack ໄດເລກະທໍລີ. ໄດເລກະທໍລີປາກົດຢູ່ໃນ stack ໃນຄໍາສັ່ງທີ່ເຂົາເຈົ້າໄດ້ຖືກສະແດງ
ໂດຍ ທີ່ຢູ່ ກໍ່ສ້າງ. ການມອບຫມາຍໃຫ້ສະມາຊິກຂອງຕົວແປ array ນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອ
ແກ້ໄຂໄດເລກະທໍລີແລ້ວຢູ່ໃນ stack, ແຕ່ pushd ແລະ popd buildins ຈະຕ້ອງເປັນ
ໃຊ້ເພື່ອເພີ່ມແລະລຶບໄດເລກະທໍລີ. ການມອບໝາຍໃຫ້ກັບຕົວແປນີ້ຈະບໍ່ປ່ຽນແປງ
ໄດເລກະທໍລີປະຈຸບັນ. ຖ້າ DISTACK ບໍ່ໄດ້ຕັ້ງ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າ
ຖ້າມັນຖືກຕັ້ງຄ່າໃຫມ່ຕໍ່ມາ.
EUID ຂະຫຍາຍໄປຫາ ID ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບຂອງຜູ້ໃຊ້ປັດຈຸບັນ, ເລີ່ມຕົ້ນໃນຕອນເລີ່ມຕົ້ນ shell.
ຕົວແປນີ້ແມ່ນອ່ານໄດ້ເທົ່ານັ້ນ.
FUNCNAME
ຕົວແປອາເຣທີ່ມີຊື່ຂອງຟັງຊັນ shell ທັງໝົດທີ່ປະຈຸບັນຢູ່ໃນ
ການປະຕິບັດການໂທ stack. ອົງປະກອບທີ່ມີດັດຊະນີ 0 ແມ່ນຊື່ຂອງປະຈຸບັນ -
ປະຕິບັດຫນ້າທີ່ຂອງແກະ. ອົງປະກອບລຸ່ມສຸດ (ອັນທີ່ມີດັດຊະນີສູງສຸດ)
ແມ່ນ "ຕົ້ນຕໍ". ຕົວແປນີ້ມີຢູ່ພຽງແຕ່ເມື່ອຟັງຊັນ Shell ຖືກປະຕິບັດ.
ການມອບຫມາຍໃຫ້ FUNCNAME ບໍ່ມີຜົນແລະສົ່ງຄືນສະຖານະຄວາມຜິດພາດ. ຖ້າ FUNCNAME is
ບໍ່ໄດ້ຕັ້ງ, ມັນຈະສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າມັນຖືກຕັ້ງຄ່າໃຫມ່ຕໍ່ມາ.
ຕົວແປນີ້ສາມາດຖືກນໍາໃຊ້ກັບ BASH_LINENO ແລະ BASH_SOURCE. ແຕ່ລະອົງປະກອບຂອງ
FUNCNAME ມີອົງປະກອບທີ່ສອດຄ້ອງກັນໃນ BASH_LINENO ແລະ BASH_SOURCE ອະທິບາຍ
ໂທຫາ stack. ຕົວຢ່າງ, ${FUNCNAME[$i]} ຖືກເອີ້ນຈາກໄຟລ໌
${BASH_SOURCE[$i+1]} ທີ່ເລກແຖວ ${BASH_LINENO[$i]}. ໄດ້ ຜູ້ໂທ ປຸກສ້າງ
ສະແດງ stack ການໂທໃນປັດຈຸບັນໂດຍການນໍາໃຊ້ຂໍ້ມູນນີ້.
ກຸ່ມ ຕົວແປ array ປະກອບມີລາຍຊື່ຂອງກຸ່ມທີ່ຜູ້ໃຊ້ປະຈຸບັນແມ່ນ a
ສະມາຊິກ. ການມອບຫມາຍໃຫ້ ກຸ່ມ ບໍ່ມີຜົນແລະສົ່ງຄືນສະຖານະຄວາມຜິດພາດ. ຖ້າ
ກຸ່ມ ບໍ່ໄດ້ຕັ້ງ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າມັນຖືກຕັ້ງຄ່າໃຫມ່ຕໍ່ມາ.
HISTCMD
ຈໍານວນປະຫວັດສາດ, ຫຼືດັດສະນີໃນບັນຊີລາຍຊື່ປະຫວັດສາດ, ຂອງຄໍາສັ່ງປະຈຸບັນ. ຖ້າ
HISTCMD ບໍ່ຖືກກໍານົດ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າມັນຕໍ່ມາ
ຕັ້ງຄ່າ ໃໝ່.
ຊື່ເຈົ້າພາບ
ຕັ້ງຄ່າອັດຕະໂນມັດເປັນຊື່ຂອງເຈົ້າພາບປະຈຸບັນ.
HOSTTYPE
ຕັ້ງຄ່າອັດຕະໂນມັດເປັນສະຕຣິງທີ່ອະທິບາຍສະເພາະປະເພດຂອງເຄື່ອງທີ່
bash ກໍາລັງປະຕິບັດ. ຄ່າເລີ່ມຕົ້ນແມ່ນຂຶ້ນກັບລະບົບ.
LINENO ແຕ່ລະຄັ້ງທີ່ພາລາມິເຕີນີ້ຖືກອ້າງອີງ, ແກະຈະທົດແທນຕົວເລກທົດສະນິຍົມ
ເປັນຕົວແທນຂອງແຖວລໍາດັບປະຈຸບັນ (ເລີ່ມຕົ້ນດ້ວຍ 1) ພາຍໃນສະຄຣິບ
ຫຼືຫນ້າທີ່. ເມື່ອບໍ່ຢູ່ໃນສະຄຣິບ ຫຼືຟັງຊັນ, ຄ່າທີ່ປ່ຽນແທນແມ່ນບໍ່
ຮັບປະກັນວ່າມີຄວາມຫມາຍ. ຖ້າ LINENO ບໍ່ໄດ້ຕັ້ງ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ,
ເຖິງແມ່ນວ່າມັນຈະຖືກປັບຕໍ່ມາ.
MACHTYPE
ຕັ້ງຄ່າອັດຕະໂນມັດເປັນສະຕຣິງທີ່ອະທິບາຍຢ່າງຄົບຖ້ວນກ່ຽວກັບປະເພດຂອງລະບົບ bash is
ການປະຕິບັດ, ໃນ GNU ມາດຕະຖານ cpu-company-system ຮູບແບບ. ຄ່າເລີ່ມຕົ້ນແມ່ນລະບົບ-
ຂຶ້ນກັບ.
ແຜນທີ່
ຕົວແປອາເຣ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ສ້າງຂຶ້ນເພື່ອຖືຂໍ້ຄວາມທີ່ອ່ານໂດຍ ໄຟລ໌ແຜນທີ່
builtin ເມື່ອບໍ່ມີການສະຫນອງຊື່ຕົວແປ.
OLDPWD ໄດເລກະທໍລີທີ່ເຮັດວຽກກ່ອນຫນ້ານີ້ຕາມທີ່ກໍານົດໂດຍ cd ຄໍາສັ່ງ.
OPTARG ຄ່າຂອງອາກິວເມັນທາງເລືອກສຸດທ້າຍທີ່ປະມວນຜົນໂດຍ ໝໍ້ ຄໍາສັ່ງ builtin (ເບິ່ງ
SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
ເລືອກ ດັດຊະນີຂອງ argument ຕໍ່ໄປທີ່ຈະດໍາເນີນການໂດຍ ໝໍ້ ຄໍາສັ່ງ builtin (ເບິ່ງ
SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
OSTYPE ຕັ້ງຄ່າອັດຕະໂນມັດເປັນສະຕຣິງທີ່ອະທິບາຍກ່ຽວກັບລະບົບປະຕິບັດການ bash is
ການປະຕິບັດ. ຄ່າເລີ່ມຕົ້ນແມ່ນຂຶ້ນກັບລະບົບ.
PIPESTATUS
ຕົວແປອາເຣ (ເບິ່ງ ອາເລ ຂ້າງລຸ່ມນີ້) ປະກອບດ້ວຍບັນຊີລາຍການຂອງຄ່າສະຖານະການອອກຈາກ
ຂະບວນການໃນການປະຕິບັດໃນໄລຍະຜ່ານມາຫຼາຍທີ່ສຸດທໍ່ foreground (ຊຶ່ງອາດຈະມີ
ພຽງແຕ່ຄໍາສັ່ງດຽວ).
PPID ID ຂະບວນການຂອງພໍ່ແມ່ຂອງແກະ. ຕົວແປນີ້ແມ່ນອ່ານໄດ້ເທົ່ານັ້ນ.
PWD ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຕາມທີ່ກໍານົດໂດຍ cd ຄໍາສັ່ງ.
ມາດຕະຖານ ແຕ່ລະຄັ້ງທີ່ພາລາມິເຕີນີ້ຖືກອ້າງອີງ, ຈຳນວນເຕັມສຸ່ມລະຫວ່າງ 0 ແລະ 32767 ແມ່ນ
ສ້າງຂຶ້ນ. ລໍາດັບຂອງຕົວເລກແບບສຸ່ມອາດຈະເລີ່ມຕົ້ນໂດຍການກໍານົດຄ່າ
to ມາດຕະຖານທີ່ຢູ່ ຖ້າຫາກວ່າ ມາດຕະຖານ ບໍ່ໄດ້ຕັ້ງຄ່າ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າມັນເປັນ
ຕໍ່ມາຣີເຊັດ.
READLINE_LINE
ເນື້ອໃນຂອງ ເສັ້ນອ່ານ line buffer, ສໍາລັບໃຊ້ກັບ "bind -x" (ເບິ່ງ SHELL ອາຄານ
ສາມາດ ດ້ານລຸ່ມ).
READLINE_POINT
ຕໍາແຫນ່ງຂອງຈຸດແຊກໃນ ເສັ້ນອ່ານ line buffer, ສໍາລັບໃຊ້ກັບ "bind
-x" (ເບິ່ງ SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
REPLY ກໍານົດເປັນເສັ້ນຂອງການປ້ອນຂໍ້ມູນອ່ານໂດຍ ອ່ານ ຄໍາສັ່ງ builtin ເມື່ອບໍ່ມີການໂຕ້ຖຽງ
ສະຫນອງໃຫ້.
ວິນາທີ
ແຕ່ລະຄັ້ງທີ່ພາລາມິເຕີນີ້ຖືກອ້າງອີງ, ຈໍານວນວິນາທີນັບຕັ້ງແຕ່ແກະ
ຄຳຮຽກຮ້ອງຖືກສົ່ງຄືນ. ຖ້າຄ່າຖືກມອບໃຫ້ ວິນາທີ, ມູນຄ່າກັບຄືນຕາມ
ການອ້າງອີງຕໍ່ມາແມ່ນຈໍານວນວິນາທີນັບຕັ້ງແຕ່ການມອບຫມາຍບວກກັບມູນຄ່າ
ມອບໝາຍ. ຖ້າ ວິນາທີ ບໍ່ໄດ້ຕັ້ງຄ່າ, ມັນສູນເສຍຄຸນສົມບັດພິເສດຂອງມັນ, ເຖິງແມ່ນວ່າມັນເປັນ
ຕໍ່ມາຣີເຊັດ.
ແກະ
ບັນຊີລາຍຊື່ທີ່ແຍກອອກດ້ວຍຈໍ້າສອງເມັດຂອງຕົວເລືອກແກະທີ່ເປີດໃຊ້ງານ. ແຕ່ລະຄໍາທີ່ຢູ່ໃນບັນຊີລາຍຊື່ແມ່ນຖືກຕ້ອງ
ການໂຕ້ຖຽງສໍາລັບ -o ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ
ຂ້າງລຸ່ມນີ້). ຕົວເລືອກທີ່ປາກົດຢູ່ໃນ ແກະ ທີ່ມີລາຍງານວ່າເປັນ on by ທີ່ກໍານົດໄວ້ -oທີ່ຢູ່ ຖ້າຫາກວ່າ
ຕົວແປນີ້ແມ່ນຢູ່ໃນສະພາບແວດລ້ອມໃນເວລາທີ່ bash ເລີ່ມຕົ້ນຂຶ້ນ, ແຕ່ລະທາງເລືອກ shell ໃນ
ບັນຊີລາຍຊື່ຈະຖືກເປີດໃຊ້ກ່ອນທີ່ຈະອ່ານໄຟລ໌ເລີ່ມຕົ້ນໃດໆ. ຕົວແປນີ້ແມ່ນອ່ານໄດ້ເທົ່ານັ້ນ.
SHLVL ເພີ່ມຂຶ້ນເທື່ອລະຄັ້ງຕໍ່ຕົວຢ່າງຂອງ bash ແມ່ນໄດ້ເລີ່ມຕົ້ນ.
UID ຂະຫຍາຍໄປຫາ ID ຜູ້ໃຊ້ຂອງຜູ່ໃຊ້ປະຈຸບັນ, ເລີ່ມຕົ້ນໃນຕອນເລີ່ມຕົ້ນ shell. ນີ້
ຕົວແປແມ່ນອ່ານເທົ່ານັ້ນ.
ຕົວແປຕໍ່ໄປນີ້ແມ່ນໃຊ້ໂດຍ shell. ໃນບາງກໍລະນີ, bash ກຳນົດຄ່າເລີ່ມຕົ້ນ
ຄ່າກັບຕົວແປ; ກໍລະນີເຫຼົ່ານີ້ໄດ້ຖືກບັນທຶກໄວ້ຂ້າງລຸ່ມນີ້.
BASH_COMPAT
ຄ່າແມ່ນໃຊ້ເພື່ອກໍານົດລະດັບຄວາມເຂົ້າກັນໄດ້ຂອງແກະ. ເບິ່ງລາຍລະອຽດຂອງ
ໄດ້ ຮ້ານຄ້າ buildin ຂ້າງລຸ່ມນີ້ພາຍໃຕ້ SHELL ອາຄານ ສາມາດ ສໍາລັບຄໍາອະທິບາຍຂອງ
ລະດັບຄວາມເຂົ້າກັນໄດ້ຕ່າງໆແລະຜົນກະທົບຂອງມັນ. ຄ່າອາດຈະເປັນຕົວເລກທົດສະນິຍົມ
(ຕົວຢ່າງ: 4.2) ຫຼືຈຳນວນເຕັມ (ຕົວຢ່າງ: 42) ທີ່ສອດຄ້ອງກັບຄວາມເຂົ້າກັນໄດ້ທີ່ຕ້ອງການ
ລະດັບ. ຖ້າ BASH_COMPAT ບໍ່ໄດ້ຕັ້ງ ຫຼືຕັ້ງເປັນສະຕຣິງຫວ່າງເປົ່າ, ລະດັບຄວາມເຂົ້າກັນໄດ້
ຖືກຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນສຳລັບລຸ້ນປັດຈຸບັນ. ຖ້າ BASH_COMPAT ຖືກຕັ້ງເປັນຄ່າ
ນັ້ນບໍ່ແມ່ນລະດັບຄວາມເຂົ້າກັນໄດ້ທີ່ຖືກຕ້ອງ, Shell ພິມຂໍ້ຜິດພາດ
ຂໍ້ຄວາມ ແລະຕັ້ງລະດັບຄວາມເຂົ້າກັນໄດ້ເປັນຄ່າເລີ່ມຕົ້ນສຳລັບລຸ້ນປັດຈຸບັນ.
ລະດັບຄວາມເຂົ້າກັນໄດ້ທີ່ຖືກຕ້ອງກົງກັບຕົວເລືອກຄວາມເຂົ້າກັນໄດ້ທີ່ຍອມຮັບໂດຍ
ໄດ້ ຮ້ານຄ້າ buildin ອະທິບາຍຂ້າງລຸ່ມນີ້ (ຕົວຢ່າງ, compat42 ຫມາຍຄວາມວ່າ 4.2 ແລະ 42 ແມ່ນ
ຄ່າທີ່ຖືກຕ້ອງ). ສະບັບປະຈຸບັນຍັງເປັນຄ່າທີ່ຖືກຕ້ອງ.
BASH_ENV
ຖ້າພາລາມິເຕີນີ້ຖືກຕັ້ງເມື່ອ bash ກໍາລັງປະຕິບັດ Shell script, ມູນຄ່າຂອງມັນແມ່ນ
ແປເປັນຊື່ໄຟລ໌ທີ່ມີຄໍາສັ່ງເພື່ອເລີ່ມຕົ້ນການແກະ, ເຊັ່ນດຽວກັບໃນ
~ / bashrc. ຄຸນຄ່າຂອງ BASH_ENV ແມ່ນຂຶ້ນກັບການຂະຫຍາຍພາລາມິເຕີ, ຄໍາສັ່ງ
ການທົດແທນ, ແລະການຂະຫຍາຍເລກຄະນິດສາດກ່ອນທີ່ຈະຖືກຕີຄວາມຫມາຍເປັນຊື່ໄຟລ໌.
PATH ບໍ່ໄດ້ຖືກນໍາໃຊ້ເພື່ອຄົ້ນຫາຊື່ໄຟລ໌ຜົນໄດ້ຮັບ.
BASH_XTRACEFD
ຖ້າຕັ້ງເປັນຈຳນວນເຕັມທີ່ສອດຄ້ອງກັບຕົວອະທິບາຍໄຟລ໌ທີ່ຖືກຕ້ອງ, bash ຈະຂຽນ
ຕິດຕາມຜົນອອກມາເມື່ອ ທີ່ກໍານົດໄວ້ -x ຖືກເປີດໃຊ້ກັບຕົວອະທິບາຍໄຟລ໌ນັ້ນ. ໄຟລ໌
ຕົວອະທິບາຍຖືກປິດເມື່ອ BASH_XTRACEFD ບໍ່ໄດ້ຕັ້ງ ຫຼືກຳນົດຄ່າໃໝ່.
ບໍ່ໄດ້ຕັ້ງ BASH_XTRACEFD ຫຼືການມອບຫມາຍໃຫ້ມັນສາຍທີ່ຫວ່າງເປົ່າເຮັດໃຫ້ຜົນໄດ້ຮັບການຕິດຕາມ
ຖືກສົ່ງໄປຫາຄວາມຜິດພາດມາດຕະຖານ. ໃຫ້ສັງເກດວ່າການຕັ້ງຄ່ານັ້ນ BASH_XTRACEFD ເຖິງ 2 (ມາດຕະຖານ
error file descriptor) ແລະຫຼັງຈາກນັ້ນ unsetting ມັນຈະສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດມາດຕະຖານ
ຖືກປິດ.
CDPATH ເສັ້ນທາງຄົ້ນຫາສໍາລັບ cd ຄໍາສັ່ງ. ນີ້ແມ່ນລາຍການລາຍການທີ່ແຍກອອກໂດຍຈໍ້າສອງເມັດ
ໃນທີ່ shell ຊອກຫາໄດເລກະທໍລີປາຍທາງທີ່ລະບຸໄວ້ໂດຍ cd ຄໍາສັ່ງ.
ຄ່າຕົວຢ່າງແມ່ນ ".:~:/ usr".
CHILD_MAX
ກຳນົດຈຳນວນຄ່າສະຖານະລູກທີ່ອອກແລ້ວສຳລັບແກະທີ່ຈະຈື່ໄວ້. Bash ຈະ
ບໍ່ອະນຸຍາດໃຫ້ຄ່ານີ້ຫຼຸດລົງຕໍ່າກວ່າຕໍາ່ສຸດທີ່ກໍານົດໂດຍ POSIX, ແລະມີ
ມູນຄ່າສູງສຸດ (ປະຈຸບັນ 8192) ທີ່ອາດຈະບໍ່ເກີນ. ຄ່າຕໍ່າສຸດແມ່ນ
ຂຶ້ນກັບລະບົບ.
ສີ
ໃຊ້ໂດຍ ເລືອກ ຄໍາສັ່ງປະສົມເພື່ອກໍານົດຄວາມກວ້າງຂອງ terminal ໃນເວລາທີ່ພິມ
ລາຍການຄັດເລືອກ. ອັດຕະໂນມັດກໍານົດຖ້າຫາກວ່າ checkwinsize ທາງເລືອກແມ່ນເປີດໃຊ້ງານຫຼືຢູ່ໃນ
ແກະແບບໂຕ້ຕອບເມື່ອໄດ້ຮັບ ກ SIGWINCH.
ຕື່ມຂໍ້ມູນໃສ່
ຕົວແປອາເຣຈາກອັນໃດ bash ອ່ານການສໍາເລັດທີ່ເປັນໄປໄດ້ທີ່ສ້າງຂຶ້ນໂດຍ a
ຟັງຊັນ shell ຮຽກຮ້ອງໂດຍສະຖານທີ່ສໍາເລັດໂຄງການ (ເບິ່ງ Programmable
ສໍາເລັດ ຂ້າງລຸ່ມນີ້). ແຕ່ລະອົງປະກອບ array ມີຫນຶ່ງສໍາເລັດທີ່ເປັນໄປໄດ້.
EMACS If bash ຊອກຫາຕົວແປນີ້ໃນສະພາບແວດລ້ອມເມື່ອ shell ເລີ່ມຕົ້ນດ້ວຍຄ່າ
"t", ມັນສົມມຸດວ່າ shell ແລ່ນຢູ່ໃນ Emacs shell buffer ແລະປິດການໃຊ້ງານ
ການແກ້ໄຂເສັ້ນ.
ENV ຄ້າຍຄືກັບ BASH_ENV; ໃຊ້ໃນເວລາທີ່ແກະຖືກເອີ້ນຢູ່ໃນໂຫມດ POSIX.
FCEDIT ບັນນາທິການເລີ່ມຕົ້ນສໍາລັບ fc ຄໍາສັ່ງ builtin.
ບໍ່ເຫັນ
ລາຍຊື່ຄຳຕໍ່ທ້າຍທີ່ແຍກອອກດ້ວຍຈໍ້າສອງເມັດທີ່ຈະບໍ່ສົນໃຈໃນເວລາເຮັດການຕື່ມຊື່ໄຟລ໌
(ເບິ່ງ READLINE ຂ້າງລຸ່ມນີ້). ຊື່ໄຟລ໌ທີ່ມີຄຳຕໍ່ທ້າຍກົງກັບໜຶ່ງໃນລາຍການ
ບໍ່ເຫັນ ຖືກແຍກອອກຈາກບັນຊີລາຍຊື່ຂອງຊື່ໄຟລ໌ທີ່ກົງກັນ. ຄ່າຕົວຢ່າງແມ່ນ ".o:~"
(ການອ້າງອີງແມ່ນຈໍາເປັນໃນເວລາທີ່ກໍານົດຄ່າໃຫ້ກັບຕົວແປນີ້, ເຊິ່ງປະກອບດ້ວຍ tildes).
ມ່ວນສຸດ
ຖ້າຕັ້ງເປັນຄ່າຕົວເລກທີ່ໃຫຍ່ກວ່າ 0, ກຳນົດລະດັບການວາງຟັງຊັນສູງສຸດ.
ການເອີ້ນຟັງຊັນທີ່ເກີນລະດັບການຮັງນີ້ຈະເຮັດໃຫ້ຄໍາສັ່ງປະຈຸບັນ
ເອົາລູກອອກ.
GLOBIGNORE
ລາຍຊື່ຮູບແບບທີ່ຂັ້ນດ້ວຍຈໍ້າສອງເມັດທີ່ກຳນົດຊຸດຂອງຊື່ໄຟລ໌ທີ່ຈະຖືກລະເລີຍໂດຍ
ການຂະຫຍາຍຊື່ເສັ້ນທາງ. ຖ້າຊື່ໄຟລ໌ກົງກັບຮູບແບບການຂະຫຍາຍຊື່ເສັ້ນທາງ
ກົງກັບຮູບແບບໜຶ່ງໃນ GLOBIGNORE, ມັນຖືກລຶບອອກຈາກບັນຊີລາຍຊື່ຂອງການແຂ່ງຂັນ.
HISTCONTROL
ລາຍຊື່ຄ່າທີ່ຂັ້ນດ້ວຍຈໍ້າສອງເມັດທີ່ຄວບຄຸມວິທີການບັນທຶກຄຳສັ່ງໄວ້ໃນປະຫວັດ
ບັນຊີລາຍຊື່. ຖ້າບັນຊີລາຍຊື່ຂອງຄຸນຄ່າປະກອບມີ ignorespace, ສາຍທີ່ເລີ່ມຕົ້ນດ້ວຍ a ຊ່ອງ
ຕົວອັກສອນບໍ່ໄດ້ຖືກບັນທຶກໄວ້ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ມູນຄ່າຂອງ ການລະເລີຍ ສາຍເຫດ
ກົງກັບລາຍການປະຫວັດສາດທີ່ຜ່ານມາເພື່ອບໍ່ໃຫ້ຖືກບັນທຶກໄວ້. ມູນຄ່າຂອງ ບໍ່ສົນໃຈທັງສອງ is
shorthand ສໍາລັບ ignorespace ແລະ ການລະເລີຍ. ມູນຄ່າຂອງ ການລົບລ້າງ ສາເຫດທັງຫມົດທີ່ຜ່ານມາ
ສາຍທີ່ກົງກັບເສັ້ນປະຈຸບັນທີ່ຈະຖືກລຶບອອກຈາກບັນຊີລາຍຊື່ປະຫວັດສາດກ່ອນຫນ້ານັ້ນ
ເສັ້ນຖືກບັນທຶກໄວ້. ຄ່າໃດໆທີ່ບໍ່ໄດ້ຢູ່ໃນລາຍການຂ້າງເທິງນັ້ນຈະຖືກລະເລີຍ. ຖ້າ HISTCONTROL is
ບໍ່ໄດ້ຕັ້ງ, ຫຼືບໍ່ລວມຄ່າທີ່ຖືກຕ້ອງ, ທຸກເສັ້ນທີ່ອ່ານໂດຍ Shell parser ແມ່ນ
ບັນທຶກໃນບັນຊີລາຍຊື່ປະຫວັດສາດ, ຂຶ້ນກັບມູນຄ່າຂອງ ປະຫວັດສາດ. ຄັ້ງທີສອງແລະ
ແຖວຕໍ່ໄປຂອງຄໍາສັ່ງປະສົມຫຼາຍເສັ້ນບໍ່ໄດ້ຖືກທົດສອບ, ແລະຖືກເພີ່ມໃສ່
ປະຫວັດສາດໂດຍບໍ່ຄໍານຶງເຖິງມູນຄ່າຂອງ HISTCONTROL.
ປະຫວັດຫຍໍ້
ຊື່ຂອງໄຟລ໌ທີ່ປະຫວັດຄໍາສັ່ງຖືກບັນທຶກໄວ້ (ເບິ່ງ ປະຫວັດຄວາມເປັນ ຂ້າງລຸ່ມນີ້). ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນ ~ / .bash_history. ຖ້າບໍ່ໄດ້ຕັ້ງ, ປະຫວັດຄໍາສັ່ງຈະບໍ່ຖືກບັນທຶກໄວ້ເມື່ອໃດ
ຫອຍອອກຈາກ.
ຂະໜາດປະຫວັດ
ຈໍານວນສູງສຸດຂອງແຖວທີ່ມີຢູ່ໃນໄຟລ໌ປະຫວັດສາດ. ເມື່ອຕົວແປນີ້ແມ່ນ
ໄດ້ມອບໝາຍຄ່າ, ໄຟລ໌ປະຫວັດຈະຖືກຕັດອອກ, ຖ້າຈຳເປັນ, ເພື່ອບໍ່ໃຫ້ມີອີກ
ຫຼາຍກວ່າຈໍານວນແຖວນັ້ນໂດຍການຖອນລາຍການເກົ່າແກ່ທີ່ສຸດ. ເອກະສານປະຫວັດສາດແມ່ນ
ຖືກຕັດອອກເປັນຂະໜາດນີ້ ຫຼັງຈາກຂຽນມັນເມື່ອແກະອອກ. ຖ້າຄ່າແມ່ນ 0, the
ໄຟລ໌ປະຫວັດສາດຖືກຕັດເປັນສູນ. ຄ່າທີ່ບໍ່ແມ່ນຕົວເລກ ແລະຄ່າຕົວເລກໜ້ອຍລົງ
ກ່ວາສູນ inhibit truncation. Shell ກໍານົດຄ່າເລີ່ມຕົ້ນເປັນມູນຄ່າຂອງ
ປະຫວັດສາດ ຫຼັງຈາກອ່ານໄຟລ໌ເລີ່ມຕົ້ນໃດໆ.
ປະຫວັດສາດ
ລາຍຊື່ຮູບແບບທີ່ແຍກອອກດ້ວຍຈໍ້າສອງເມັດທີ່ໃຊ້ເພື່ອຕັດສິນໃຈວ່າແຖວຄຳສັ່ງໃດຄວນເປັນ
ບັນທຶກໄວ້ໃນບັນຊີລາຍການປະຫວັດສາດ. ແຕ່ລະຮູບແບບແມ່ນສະມໍຢູ່ໃນຕອນຕົ້ນຂອງເສັ້ນ
ແລະຕ້ອງກົງກັບເສັ້ນທີ່ສົມບູນ (ບໍ່ມີ implicit `*' ຖືກຕໍ່ທ້າຍ). ແຕ່ລະຮູບແບບແມ່ນ
ການທົດສອບຕໍ່ກັບເສັ້ນຫຼັງຈາກການກວດສອບລະບຸໄວ້ໂດຍ HISTCONTROL ຖືກນຳໃຊ້. ໃນ
ນອກເໜືອໄປຈາກຕົວລະຄອນທີ່ກົງກັນກັບຮູບແບບແກະປົກກະຕິ, `&' ກົງກັບທີ່ຜ່ານມາ
ເສັ້ນປະຫວັດສາດ. `&' ອາດຈະຖືກຫລົບຫນີໂດຍໃຊ້ backslash; backslash ໄດ້ຖືກໂຍກຍ້າຍ
ກ່ອນທີ່ຈະພະຍາຍາມແຂ່ງຂັນ. ສາຍທີສອງ ແລະຕໍ່ໆໄປຂອງຫຼາຍເສັ້ນ
ຄໍາສັ່ງປະສົມແມ່ນບໍ່ໄດ້ຮັບການທົດສອບ, ແລະໄດ້ຖືກເພີ່ມເຂົ້າໄປໃນປະຫວັດສາດໂດຍບໍ່ສົນເລື່ອງຂອງ
ມູນຄ່າຂອງ ປະຫວັດສາດ.
ປະຫວັດສາດ
ຈໍານວນຄໍາສັ່ງທີ່ຈະຈື່ຈໍາໃນປະຫວັດສາດຄໍາສັ່ງ (ເບິ່ງ ປະຫວັດຄວາມເປັນ ຂ້າງລຸ່ມນີ້). ຖ້າ
ມູນຄ່າແມ່ນ 0, ຄໍາສັ່ງບໍ່ໄດ້ຖືກບັນທຶກໄວ້ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ຄ່າຕົວເລກໜ້ອຍລົງ
ຜົນໄດ້ຮັບຫຼາຍກ່ວາສູນໃນທຸກຄໍາສັ່ງຈະຖືກບັນທຶກໄວ້ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ (ບໍ່ມີ
ຈຳກັດ). Shell ກໍານົດຄ່າເລີ່ມຕົ້ນເປັນ 500 ຫຼັງຈາກອ່ານໄຟລ໌ເລີ່ມຕົ້ນໃດໆ.
ເວລາປະຫວັດສາດ
ຖ້າຕົວແປນີ້ຖືກຕັ້ງແລະບໍ່ແມ່ນ null, ຄ່າຂອງມັນຈະຖືກໃຊ້ເປັນສະຕຣິງຮູບແບບສໍາລັບ
ເວລາຕໍ່ເວລາ(3) ການພິມສະແຕມທີ່ກ່ຽວຂ້ອງກັບປະຫວັດສາດແຕ່ລະຄົນສະແດງໂດຍ
ໄດ້ ປະຫວັດສາດ ກໍ່ສ້າງ. ຖ້າຕົວແປນີ້ຖືກຕັ້ງ, ບັດເວລາຖືກຂຽນໃສ່
ໄຟລ໌ປະຫວັດສາດສະນັ້ນພວກມັນອາດຈະຖືກຮັກສາໄວ້ໃນທົ່ວເຊດຊັນ. ນີ້ໃຊ້ປະຫວັດສາດ
ລັກສະນະຄໍາຄິດຄໍາເຫັນເພື່ອຈໍາແນກເວລາປະທັບຕາຈາກເສັ້ນປະຫວັດສາດອື່ນໆ.
ຫນ້າທໍາອິດ ໄດເລກະທໍລີບ້ານຂອງຜູ້ໃຊ້ປະຈຸບັນ; ການໂຕ້ຖຽງເລີ່ມຕົ້ນສໍາລັບການ cd ປຸກສ້າງ
ຄໍາສັ່ງ. ຄ່າຂອງຕົວແປນີ້ຍັງຖືກໃຊ້ໃນເວລາທີ່ດໍາເນີນການຂະຫຍາຍ tilde.
ໄຟລ໌ເຈົ້າພາບ
ປະກອບມີຊື່ຂອງໄຟລ໌ໃນຮູບແບບດຽວກັນກັບ / etc / hosts ທີ່ຄວນຈະອ່ານ
ເມື່ອ shell ຕ້ອງການເຮັດຊື່ເຈົ້າພາບໃຫ້ຄົບຖ້ວນ. ບັນຊີລາຍຊື່ຂອງ hostname ທີ່ເປັນໄປໄດ້
ການສໍາເລັດອາດຈະມີການປ່ຽນແປງໃນຂະນະທີ່ແກະກໍາລັງແລ່ນ; ຊື່ເຈົ້າພາບຄັ້ງຕໍ່ໄປ
ການສໍາເລັດແມ່ນພະຍາຍາມຫຼັງຈາກການປ່ຽນແປງມູນຄ່າ, bash ເພີ່ມເນື້ອໃນຂອງ
ໄຟລ໌ໃຫມ່ໃນບັນຊີລາຍຊື່ທີ່ມີຢູ່ແລ້ວ. ຖ້າ ໄຟລ໌ເຈົ້າພາບ ຖືກກໍານົດ, ແຕ່ບໍ່ມີຄ່າ, ຫຼືບໍ່ມີ
ຕັ້ງຊື່ໄຟລ໌ທີ່ສາມາດອ່ານໄດ້, bash ຄວາມພະຍາຍາມທີ່ຈະອ່ານ / etc / hosts ເພື່ອໃຫ້ໄດ້ຮັບບັນຊີລາຍການຂອງ
ການສໍາເລັດຊື່ເຈົ້າພາບທີ່ເປັນໄປໄດ້. ເມື່ອໃດ ໄຟລ໌ເຈົ້າພາບ ບໍ່ໄດ້ຕັ້ງ, ບັນຊີລາຍຊື່ hostname ແມ່ນ
ເກັບກູ້.
IFS ໄດ້ ພາຍໃນ ພາກສະຫນາມ ແຍກຕ່າງຫາກ ທີ່ຖືກນໍາໃຊ້ສໍາລັບການແຍກຄໍາສັບຫຼັງຈາກການຂະຫຍາຍຕົວແລະ
ແບ່ງເສັ້ນເປັນຄໍາສັບຕ່າງໆທີ່ມີ ອ່ານ ຄໍາສັ່ງ builtin. ຄ່າເລີ່ມຕົ້ນແມ່ນ
`` ''.
ບໍ່ສົນໃຈ
ຄວບຄຸມການກະ ທຳ ຂອງແກະແບບໂຕ້ຕອບໃນໃບຮັບເງິນ EOF ລັກສະນະເປັນ
sole input. ຖ້າຕັ້ງ, ມູນຄ່າແມ່ນຕົວເລກຕິດຕໍ່ກັນ EOF ຕົວອັກສອນທີ່
ຈະຕ້ອງພິມເປັນຕົວອັກສອນທຳອິດໃນແຖວການປ້ອນຂໍ້ມູນກ່ອນ bash ອອກ. ຖ້າ
ຕົວແປມີຢູ່ແຕ່ບໍ່ມີຄ່າຕົວເລກ, ຫຼືບໍ່ມີຄ່າ, ຄ່າເລີ່ມຕົ້ນ
ຄ່າແມ່ນ 10. ຖ້າມັນບໍ່ມີ, EOF ຫມາຍເຖິງການສິ້ນສຸດຂອງການປ້ອນຂໍ້ມູນໃສ່ຫອຍ.
INPUTRC
ຊື່ໄຟລ໌ສໍາລັບ ເສັ້ນອ່ານ ໄຟລ໌ເລີ່ມຕົ້ນ, overriding ຄ່າເລີ່ມຕົ້ນຂອງ ~ / .inputrc
(ເບິ່ງ READLINE ດ້ານລຸ່ມ).
ພາສາ ໃຊ້ເພື່ອກໍານົດປະເພດທ້ອງຖິ່ນສໍາລັບປະເພດໃດໆທີ່ບໍ່ໄດ້ເລືອກໂດຍສະເພາະ
ດ້ວຍຕົວແປເລີ່ມຕົ້ນດ້ວຍ LC_.
LC_ALL ຕົວແປນີ້ overrides ຄ່າຂອງ ພາສາ ແລະອື່ນໆ LC_ ຕົວແປທີ່ລະບຸ a
ປະເພດທ້ອງຖິ່ນ.
LC_COLLATE
ຕົວແປນີ້ກໍານົດລໍາດັບ collation ທີ່ໃຊ້ໃນເວລາທີ່ຈັດຮຽງຜົນໄດ້ຮັບຂອງ
ການຂະຫຍາຍຊື່ເສັ້ນທາງ, ແລະການກໍານົດພຶດຕິກໍາຂອງການສະແດງອອກລະດັບ, ທຽບເທົ່າ
ຊັ້ນຮຽນ, ແລະການລວບລວມລໍາດັບພາຍໃນການຂະຫຍາຍຊື່ເສັ້ນທາງແລະການຈັບຄູ່ຮູບແບບ.
LC_CTYPE
ຕົວແປນີ້ກໍານົດການຕີຄວາມຫມາຍຂອງລັກສະນະແລະພຶດຕິກໍາຂອງ
ຫ້ອງຮຽນຕົວອັກສອນພາຍໃນການຂະຫຍາຍຊື່ເສັ້ນທາງແລະການຈັບຄູ່ຮູບແບບ.
LC_MESSAGES
ຕົວແປນີ້ກຳນົດສະຖານທີ່ທີ່ໃຊ້ເພື່ອແປສະຕຣິງທີ່ອ້າງອີງຄູ່
ນຳໜ້າດ້ວຍ ກ $.
LC_NUMERIC
ຕົວແປນີ້ກໍານົດປະເພດທ້ອງຖິ່ນທີ່ໃຊ້ສໍາລັບການຈັດຮູບແບບຕົວເລກ.
ເສັ້ນ ໃຊ້ໂດຍ ເລືອກ ຄໍາສັ່ງປະສົມເພື່ອກໍານົດຄວາມຍາວຂອງຖັນສໍາລັບການພິມ
ລາຍການຄັດເລືອກ. ອັດຕະໂນມັດກໍານົດຖ້າຫາກວ່າ checkwinsize ທາງເລືອກແມ່ນເປີດໃຊ້ງານຫຼືຢູ່ໃນ
ແກະແບບໂຕ້ຕອບເມື່ອໄດ້ຮັບ ກ SIGWINCH.
MAIL ຖ້າພາລາມິເຕີນີ້ຖືກຕັ້ງເປັນໄຟລ໌ຫຼືຊື່ໄດເລກະທໍລີແລະ MAILPATH ຕົວແປແມ່ນ
ບໍ່ໄດ້ກໍານົດ, bash ແຈ້ງໃຫ້ຜູ້ໃຊ້ຂອງການມາເຖິງຂອງ mail ໃນໄຟລ໌ທີ່ກໍານົດໄວ້ຫຼື
ໄດເຣັກທໍຣີຮູບແບບ Maildir.
ເມລເຊັກ
ລະບຸເລື້ອຍໆ (ເປັນວິນາທີ) bash ກວດເບິ່ງເມລ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 60 ວິນາທີ.
ໃນເວລາທີ່ມັນເປັນເວລາທີ່ຈະກວດເບິ່ງສໍາລັບເມລ, shell ເຮັດແນວນັ້ນກ່ອນທີ່ຈະສະແດງຕົ້ນຕໍ
ດ່ວນ. ຖ້າຕົວແປນີ້ບໍ່ໄດ້ຖືກຕັ້ງ, ຫຼືຕັ້ງເປັນຄ່າທີ່ບໍ່ແມ່ນຕົວເລກທີ່ໃຫຍ່ກວ່າ
ຫຼາຍກວ່າ ຫຼືເທົ່າກັບສູນ, ແກະປິດການກວດສອບເມລ.
MAILPATH
ລາຍຊື່ໄຟລ໌ທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດທີ່ຕ້ອງກວດຫາເມລ. ຂໍ້ຄວາມທີ່ຈະເປັນ
ພິມເມື່ອ mail ມາຮອດໃນໄຟລ໌ສະເພາະໃດຫນຶ່ງອາດຈະຖືກກໍານົດໂດຍການແຍກ
ຊື່ໄຟລ໌ຈາກຂໍ້ຄວາມທີ່ມີ `?'. ເມື່ອໃຊ້ໃນຂໍ້ຄວາມຂອງຂໍ້ຄວາມ, $_
ຂະຫຍາຍໄປຫາຊື່ຂອງໄຟລ໌ mail ໃນປັດຈຸບັນ. ຕົວຢ່າງ:
MAILPATH='/var/mail/bfox?"ເຈົ້າມີເມລ":~/shell-mail?"$_ ມີເມລ!"'
Bash ສະຫນອງຄ່າເລີ່ມຕົ້ນສໍາລັບຕົວແປນີ້, ແຕ່ສະຖານທີ່ຂອງເມລຜູ້ໃຊ້
ໄຟລ໌ທີ່ມັນໃຊ້ແມ່ນຂຶ້ນກັບລະບົບ (ເຊັ່ນ: /var/mail/$ USER).
OPTERR ຖ້າຕັ້ງເປັນຄ່າ 1, bash ສະແດງຂໍ້ຄວາມຜິດພາດທີ່ສ້າງຂຶ້ນໂດຍ ໝໍ້
ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ). OPTERR ຖືກຕັ້ງຕົ້ນເປັນ 1
ແຕ່ລະຄັ້ງທີ່ shell ໄດ້ຖືກເອີ້ນ ຫຼື script shell ຖືກປະຕິບັດ.
PATH ເສັ້ນທາງຄົ້ນຫາຄໍາສັ່ງ. ມັນເປັນບັນຊີລາຍຊື່ທີ່ແຍກອອກໂດຍຈໍ້າສອງເມັດຂອງໄດເລກະທໍລີທີ່
shell ຊອກຫາຄໍາສັ່ງ (ເບິ່ງ ຄໍາສັ່ງ ການປະຕິບັດ ຂ້າງລຸ່ມນີ້). ຄວາມຍາວສູນ (null)
ຊື່ໄດເລກະທໍລີໃນມູນຄ່າຂອງ PATH ຊີ້ໃຫ້ເຫັນໄດເລກະທໍລີປະຈຸບັນ. A null
ຊື່ໄດເລກະທໍລີອາດຈະປາກົດເປັນສອງຈໍ້າສອງເມັດທີ່ຢູ່ຕິດກັນ, ຫຼືເປັນຕົວຫຍໍ້ ຫຼືການຕໍ່ທ້າຍ
ຈໍ້າສອງເມັດ. ເສັ້ນທາງເລີ່ມຕົ້ນແມ່ນຂຶ້ນກັບລະບົບ, ແລະຖືກກໍານົດໂດຍຜູ້ບໍລິຫານຜູ້ທີ່
ຕິດຕັ້ງ bash. ຄ່າທົ່ວໄປແມ່ນ ``/ usr / local / bin:/ usr / ທ້ອງຖິ່ນ / sbin:/ usr / ຖັງ:
/ usr / sbin:/ ຖັງ:/ sbin''.
POSIXLY_CORRECT
ຖ້າຕົວແປນີ້ຢູ່ໃນສະພາບແວດລ້ອມເມື່ອ bash ເລີ່ມຕົ້ນ, ແກະເຂົ້າໄປໃນ ບວກ
ຮູບແບບການ ກ່ອນທີ່ຈະອ່ານໄຟລ໌ເລີ່ມຕົ້ນ, ຄືກັບວ່າ --posix ທາງເລືອກການຮຽກຮ້ອງໄດ້
ສະໜອງໃຫ້. ຖ້າມັນຖືກຕັ້ງໃນຂະນະທີ່ແກະແລ່ນ, bash ເຮັດໃຫ້ ບວກ ຮູບແບບການ, ປານວ່າ
ຄໍາສັ່ງ ທີ່ກໍານົດໄວ້ -o ບວກ ໄດ້ຖືກປະຫານຊີວິດ.
PROMPT_COMMAND
ຖ້າຕັ້ງ, ຄ່າຈະຖືກປະຕິບັດເປັນຄໍາສັ່ງກ່ອນທີ່ຈະອອກແຕ່ລະ prompt ຕົ້ນຕໍ.
PROMPT_DIRTRIM
ຖ້າຕັ້ງເປັນຕົວເລກທີ່ໃຫຍ່ກວ່າສູນ, ຄ່າຈະຖືກໃຊ້ເປັນຕົວເລກຕໍ່ທ້າຍ
ອົງປະກອບລະບົບທີ່ຈະເກັບຮັກສາໄວ້ໃນເວລາທີ່ຂະຫຍາຍ \w ແລະ \W prompt string escapes
(ເບິ່ງ ການເຕືອນ ຂ້າງລຸ່ມນີ້). ຕົວອັກສອນທີ່ຖອດອອກຈະຖືກແທນທີ່ດ້ວຍຮູບໄຂ່.
PS1 ຄ່າຂອງພາລາມິເຕີນີ້ແມ່ນຂະຫຍາຍ (ເບິ່ງ ການເຕືອນ ຂ້າງລຸ່ມນີ້) ແລະໃຊ້ເປັນ
string prompt ຫຼັກ. ຄ່າເລີ່ມຕົ້ນແມ່ນ ``\s-\v\$ ''.
PS2 ມູນຄ່າຂອງພາລາມິເຕີນີ້ແມ່ນຂະຫຍາຍເຊັ່ນດຽວກັນກັບ PS1 ແລະໃຊ້ເປັນຮອງ
ຊ່ອຍແນ່. ຄ່າເລີ່ມຕົ້ນແມ່ນ ``> ''.
PS3 ຄ່າຂອງພາລາມິເຕີນີ້ຖືກນໍາໃຊ້ເປັນການກະຕຸ້ນເຕືອນສໍາລັບການ ເລືອກ ຄໍາສັ່ງ (ເບິ່ງ SHELL
ໄວຍະກອນ ຂ້າງເທິງ).
PS4 ມູນຄ່າຂອງພາລາມິເຕີນີ້ແມ່ນຂະຫຍາຍເຊັ່ນດຽວກັນກັບ PS1 ແລະຄ່າແມ່ນພິມອອກກ່ອນ
ແຕ່ລະຄໍາສັ່ງ bash ສະແດງໃນລະຫວ່າງການຕິດຕາມການປະຕິບັດ. ລັກສະນະທໍາອິດຂອງ PS4
ແມ່ນ replicated ຫຼາຍຄັ້ງ, ຕາມຄວາມຈໍາເປັນ, ເພື່ອຊີ້ໃຫ້ເຫັນຫຼາຍລະດັບຂອງ
ທາງອ້ອມ. ຄ່າເລີ່ມຕົ້ນແມ່ນ ``+ ''.
SHELL ຊື່ເສັ້ນທາງເຕັມຂອງແກະຖືກເກັບຮັກສາໄວ້ໃນຕົວແປສະພາບແວດລ້ອມນີ້. ຖ້າມັນບໍ່ແມ່ນ
ກໍານົດເວລາທີ່ແກະເລີ່ມຕົ້ນ, bash ມອບຫມາຍໃຫ້ມັນຊື່ເສັ້ນທາງເຕັມຂອງປະຈຸບັນ
ແກະການເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຊ້.
TIMEFORMAT
ຄ່າຂອງພາລາມິເຕີນີ້ຖືກນໍາໃຊ້ເປັນສະຕຣິງຮູບແບບທີ່ລະບຸວິທີການກໍານົດເວລາ
ຂໍ້ມູນສໍາລັບທໍ່ນໍາຫນ້າດ້ວຍ ທີ່ໃຊ້ເວລາ ຄໍາສະຫງວນຄວນຈະຖືກສະແດງ.
ໄດ້ % ລັກສະນະນໍາສະເຫນີລໍາດັບການຫນີທີ່ຖືກຂະຫຍາຍເປັນຄ່າເວລາຫຼື
ຂໍ້ມູນອື່ນ ໆ. ລໍາດັບການຫລົບຫນີແລະຄວາມຫມາຍຂອງພວກມັນມີດັ່ງນີ້; ໄດ້
ວົງເລັບໝາຍເຖິງສ່ວນທີ່ເປັນທາງເລືອກ.
%% ເປັນຕົວຫນັງສື %.
%[p[l]ຣ ເວລາຜ່ານໄປເປັນວິນາທີ.
%[p[l]ຢູ ຈໍານວນວິນາທີ CPU ໃຊ້ໃນໂຫມດຜູ້ໃຊ້.
%[p[l]ສ ຈໍານວນວິນາທີ CPU ໃຊ້ໃນໂຫມດລະບົບ.
%P ເປີເຊັນ CPU, ຄິດໄລ່ເປັນ (%U + %S) / %R.
ທາງເລືອກ p ເປັນຕົວເລກທີ່ລະບຸ ຄວາມຖືກຕ້ອງ, ຈໍານວນຕົວເລກເສດສ່ວນ
ຫຼັງຈາກຈຸດທົດສະນິຍົມ. ຄ່າຂອງ 0 ເຮັດໃຫ້ບໍ່ມີຈຸດທົດສະນິຍົມ ຫຼືເສດສ່ວນເປັນ
ຜົນຜະລິດ. ຫຼາຍທີ່ສຸດສາມສະຖານທີ່ຫຼັງຈາກຈຸດທົດສະນິຍົມອາດຈະຖືກກໍານົດ; ຄຸນຄ່າຂອງ p
ໃຫຍ່ກວ່າ 3 ຖືກປ່ຽນເປັນ 3. ຖ້າ p ບໍ່ໄດ້ລະບຸ, ຄ່າ 3 ຖືກນໍາໃຊ້.
ທາງເລືອກ l ກໍານົດຮູບແບບທີ່ຍາວກວ່າ, ລວມທັງນາທີ, ຂອງແບບຟອມ MMmSS.FFs.
ມູນຄ່າຂອງ p ກໍານົດວ່າສ່ວນຫນຶ່ງແມ່ນລວມຫຼືບໍ່.
ຖ້າຕົວແປນີ້ບໍ່ໄດ້ຕັ້ງ, bash ເຮັດຄືກັບວ່າມັນມີມູນຄ່າ
$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'. ຖ້າຄ່າເປັນ null, ບໍ່ມີເວລາ
ຂໍ້ມູນແມ່ນສະແດງອອກ. ແຖວໃໝ່ຕໍ່ທ້າຍຈະຖືກເພີ່ມເມື່ອສະຕຣິງຮູບແບບ
ສະແດງ.
TMOUT ຖ້າຕັ້ງເປັນຄ່າທີ່ໃຫຍ່ກວ່າສູນ, TMOUT ຖືກຖືວ່າເປັນການໝົດເວລາເລີ່ມຕົ້ນສຳລັບ
ໄດ້ ອ່ານ ກໍ່ສ້າງ. ໄດ້ ເລືອກ ຄໍາສັ່ງຢຸດຖ້າ input ບໍ່ມາຮອດຫຼັງຈາກນັ້ນ
TMOUT ວິນາທີເມື່ອການປ້ອນຂໍ້ມູນມາຈາກ terminal. ໃນແກະແບບໂຕ້ຕອບ, ໄດ້
ຄ່າຖືກຕີຄວາມໝາຍເປັນຈຳນວນວິນາທີທີ່ຈະລໍຖ້າແຖວຂອງການປ້ອນຂໍ້ມູນຫຼັງ
ອອກຄໍາສັ່ງຂັ້ນຕົ້ນ. Bash ສິ້ນສຸດຫຼັງຈາກລໍຖ້າຈໍານວນນັ້ນ
ວິນາທີຖ້າສາຍການປ້ອນຂໍ້ມູນບໍ່ມາຮອດ.
TMPDIR ຖ້າຕັ້ງ, bash ໃຊ້ຄ່າຂອງມັນເປັນຊື່ຂອງໄດເລກະທໍລີທີ່ bash ສ້າງ
ໄຟລ໌ຊົ່ວຄາວສໍາລັບການນໍາໃຊ້ຂອງແກະ.
auto_resume
ຕົວແປນີ້ຄວບຄຸມວິທີທີ່ shell ພົວພັນກັບຜູ້ໃຊ້ແລະການຄວບຄຸມວຽກ. ຖ້າ
ຕົວແປນີ້ຖືກກໍານົດ, ຄໍາດຽວຄໍາສັ່ງງ່າຍດາຍໂດຍບໍ່ມີການປ່ຽນເສັ້ນທາງແມ່ນປະຕິບັດ
ໃນຖານະເປັນຜູ້ສະຫມັກສໍາລັບການຟື້ນຟູວຽກເຮັດງານທໍາທີ່ຢຸດເຊົາທີ່ມີຢູ່ແລ້ວ. ບໍ່ມີຄວາມຊັດເຈນ
ອະນຸຍາດ; ຖ້າມີຫຼາຍກວ່າໜຶ່ງວຽກເລີ່ມຕົ້ນດ້ວຍສາຍທີ່ພິມ, ວຽກນັ້ນ
ເຂົ້າເຖິງຫຼ້າສຸດຖືກເລືອກ. ໄດ້ ຊື່ ຂອງວຽກທີ່ຢຸດເຊົາ, ໃນສະພາບການນີ້, ແມ່ນ
ເສັ້ນຄໍາສັ່ງທີ່ໃຊ້ເພື່ອເລີ່ມຕົ້ນມັນ. ຖ້າຕັ້ງເປັນຄ່າ ຢ່າງແທ້ຈິງ, ສາຍທີ່ສະຫນອງ
ຕ້ອງກົງກັບຊື່ຂອງວຽກທີ່ຢຸດເຊົາຢ່າງແນ່ນອນ; ຖ້າຕັ້ງເປັນ ສາຍຍ່ອຍ, ຊ່ອຍແນ່
ສະໜອງໃຫ້ຕ້ອງກົງກັບສະຕຣິງຍ່ອຍຂອງຊື່ວຽກທີ່ຢຸດ. ໄດ້ ສາຍຍ່ອຍ
ມູນ ຄ່າ ໃຫ້ ການ ທໍາ ງານ ທີ່ ຄ້າຍ ຄື ກັນ ກັບ %? ຕົວລະບຸວຽກ (ເບິ່ງ JOB ການຄວບຄຸມ
ຂ້າງລຸ່ມນີ້). ຖ້າຕັ້ງເປັນຄ່າອື່ນ, ສະຕຣິງທີ່ໃຫ້ມາຈະຕ້ອງເປັນຄຳນຳໜ້າຂອງ a
ຊື່ວຽກທີ່ຢຸດເຊົາ; ນີ້ສະຫນອງການທໍາງານທີ່ຄ້າຍຄືກັນກັບ %string ວຽກເຮັດງານທໍາ
ຕົວລະບຸ.
histchars
ສອງຫຼືສາມຕົວລະຄອນທີ່ຄວບຄຸມການຂະຫຍາຍປະຫວັດສາດແລະ tokenization (ເບິ່ງ
ປະຫວັດຄວາມເປັນ EXPANSION ຂ້າງລຸ່ມນີ້). ລັກສະນະທໍາອິດແມ່ນ ປະຫວັດສາດ ການຂະຫຍາຍຕົວ ລັກສະນະ,
ລັກສະນະທີ່ເປັນສັນຍານການເລີ່ມຕົ້ນຂອງການຂະຫຍາຍຕົວປະຫວັດສາດ, ໂດຍປົກກະຕິ `!'. ໄດ້
ລັກສະນະທີສອງແມ່ນ ໄວ ການທົດແທນ ລັກສະນະ, ເຊິ່ງຖືກນໍາໃຊ້ເປັນ shorthand
ສໍາລັບການດໍາເນີນການຄືນໃຫມ່ຄໍາສັ່ງທີ່ຜ່ານມາທີ່ໄດ້ເຂົ້າມາ, ການທົດແທນການສະຕຣິງຫນຶ່ງສໍາລັບການອື່ນໃນ
ຄໍາສັ່ງ. ຄ່າເລີ່ມຕົ້ນແມ່ນ `^'. ລັກສະນະທີສາມທາງເລືອກແມ່ນລັກສະນະ
ເຊິ່ງຊີ້ໃຫ້ເຫັນວ່າສ່ວນທີ່ເຫລືອຂອງແຖວແມ່ນຄໍາຄິດຄໍາເຫັນເມື່ອພົບເຫັນເປັນຄັ້ງທໍາອິດ
ລັກສະນະຂອງຄໍາສັບໃດຫນຶ່ງ, ປົກກະຕິ `#'. ລັກສະນະຄໍາຄິດຄໍາເຫັນປະຫວັດສາດເຮັດໃຫ້ເກີດປະຫວັດສາດ
ການທົດແທນທີ່ຈະຖືກຂ້າມສໍາລັບຄໍາທີ່ຍັງເຫຼືອຢູ່ໃນເສັ້ນ. ມັນບໍ່ໄດ້
ຈໍາເປັນຕ້ອງເຮັດໃຫ້ shell parser ປະຕິບັດສ່ວນທີ່ເຫຼືອຂອງເສັ້ນເປັນຄໍາເຫັນ.
ອາເລ
Bash ສະໜອງຕົວແປ array ທີ່ມີດັດຊະນີໜຶ່ງມິຕິ ແລະ ທີ່ກ່ຽວຂ້ອງ. ການປ່ຽນແປງໃດໆອາດຈະ
ຖືກນໍາໃຊ້ເປັນ array indexed; ໄດ້ ປະກາດ buildin ຈະປະກາດຢ່າງຈະແຈ້ງ array. ຢູ່ທີ່ນັ້ນ
ບໍ່ມີຂອບເຂດຈໍາກັດສູງສຸດກ່ຽວກັບຂະຫນາດຂອງອາເຣ, ຫຼືຂໍ້ກໍານົດໃດໆທີ່ສະມາຊິກຈະຖືກດັດສະນີ
ຫຼືມອບຫມາຍຢ່າງຕໍ່ເນື່ອງ. arrays ດັດສະນີແມ່ນອ້າງອີງໂດຍໃຊ້ integers (ລວມທັງ
ການສະແດງອອກເລກເລກ) ແລະເປັນສູນ; associative arrays ແມ່ນອ້າງອີງໂດຍໃຊ້
ຊ່ອຍແນ່. ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນ, ດັດຊະນີອາເຣທີ່ຖືກດັດສະນີຈະຕ້ອງບໍ່ແມ່ນທາງລົບ
ເລກເຕັມ.
array ທີ່ຖືກດັດສະນີແມ່ນຖືກສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດຖ້າຕົວແປໃດຖືກມອບຫມາຍໃຫ້ໃຊ້ syntax
ຊື່[ຕົວຫ້ອຍ]=ມູນຄ່າ. ໄດ້ ຕົວຫ້ອຍ ຖືກປະຕິບັດເປັນການສະແດງອອກເລກເລກທີ່ຕ້ອງ
ປະເມີນເປັນຕົວເລກ. ເພື່ອປະກາດຢ່າງຈະແຈ້ງ array indexed, ໃຊ້ ປະກາດ -a ຊື່ (ເບິ່ງ
SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ). ປະກາດ -a ຊື່[ຕົວຫ້ອຍ] ຍັງໄດ້ຮັບການຍອມຮັບ; ໄດ້ ຕົວຫ້ອຍ
ຖືກລະເລີຍ.
Associative arrays ຖືກສ້າງຂື້ນໂດຍໃຊ້ ປະກາດ -A ຊື່.
ຄຸນລັກສະນະອາດຈະຖືກກໍານົດສໍາລັບຕົວແປ array ໂດຍໃຊ້ ປະກາດ ແລະ ອ່ານຢ່າງດຽວ ເຄື່ອງກໍ່ສ້າງ.
ແຕ່ລະຄຸນສົມບັດນຳໃຊ້ກັບສະມາຊິກທັງໝົດຂອງອາເຣ.
Arrays ຖືກມອບໝາຍໃຫ້ໃຊ້ການມອບໝາຍປະສົມຂອງແບບຟອມ ຊື່=(ມູນຄ່າ1 ... ຄຸນຄ່າn),
ບ່ອນທີ່ແຕ່ລະຄົນ ມູນຄ່າ ແມ່ນຮູບແບບ [ຕົວຫ້ອຍ]=string. ການມອບໝາຍ array ດັດສະນີບໍ່ໄດ້
ຕ້ອງການຫຍັງແຕ່ string. ເມື່ອກໍາຫນົດໃຫ້ arrays indexed, ຖ້າວົງເລັບທາງເລືອກ
ແລະ subscript ແມ່ນສະຫນອງໃຫ້, ດັດຊະນີນັ້ນຖືກມອບຫມາຍໃຫ້; ຖ້າບໍ່ດັ່ງນັ້ນດັດຊະນີຂອງອົງປະກອບ
ມອບໝາຍແມ່ນດັດຊະນີສຸດທ້າຍທີ່ມອບໝາຍໃຫ້ໂດຍຄຳຖະແຫຼງບວກໜຶ່ງ. ດັດສະນີເລີ່ມຕົ້ນທີ່
ສູນ.
ເມື່ອມອບໝາຍໃຫ້ກັບ array ສະມາຄົມ, subscript ແມ່ນຕ້ອງການ.
syntax ນີ້ຍັງຖືກຍອມຮັບໂດຍ ປະກາດ ກໍ່ສ້າງ. ອົງປະກອບ array ສ່ວນບຸກຄົນອາດຈະເປັນ
ມອບຫມາຍໃຫ້ການນໍາໃຊ້ ຊື່[ຕົວຫ້ອຍ]=ມູນຄ່າ syntax ແນະນໍາຂ້າງເທິງ. ເມື່ອມອບໝາຍໃຫ້ ກ
indexed array, ຖ້າ ຊື່ ແມ່ນ subscripted ໂດຍຈໍານວນລົບ, ຈໍານວນນັ້ນຖືກຕີຄວາມຫມາຍເປັນ
ທຽບກັບອັນໜຶ່ງທີ່ໃຫຍ່ກວ່າດັດຊະນີສູງສຸດຂອງ ຊື່, ດັ່ງນັ້ນຕົວຊີ້ວັດລົບນັບຄືນ
ຈາກທ້າຍຂອງອາເຣ, ແລະດັດຊະນີ -1 ອ້າງອີງອົງປະກອບສຸດທ້າຍ.
ອົງປະກອບໃດນຶ່ງຂອງອາເຣອາດຖືກອ້າງອີງໂດຍໃຊ້ ${ຊື່[ຕົວຫ້ອຍ]}. ວົງເລັບແມ່ນ
ຕ້ອງການເພື່ອຫຼີກເວັ້ນການຂັດແຍ້ງກັບການຂະຫຍາຍຊື່ເສັ້ນທາງ. ຖ້າ ຕົວຫ້ອຍ is @ or *, ຄໍາສັບ
ຂະຫຍາຍໄປສູ່ສະມາຊິກທັງຫມົດຂອງ ຊື່. subscripts ເຫຼົ່ານີ້ແຕກຕ່າງກັນພຽງແຕ່ໃນເວລາທີ່ຄໍາປາກົດຢູ່ພາຍໃນ
ວົງຢືມຄູ່. ຖ້າຄໍານັ້ນຖືກຍົກຂຶ້ນມາສອງເທົ່າ, ${ຊື່[*]} ຂະຫຍາຍເປັນຄຳດຽວກັບ
ຄ່າຂອງແຕ່ລະສະມາຊິກ array ແຍກໂດຍຕົວອັກສອນທໍາອິດຂອງ IFS ຕົວປ່ຽນແປງພິເສດ,
ແລະ ${ຊື່[@]} ຂະຫຍາຍແຕ່ລະອົງປະກອບຂອງ ຊື່ ກັບຄໍາສັບແຍກຕ່າງຫາກ. ໃນເວລາທີ່ບໍ່ມີ array
ສະມາຊິກ, ${ຊື່[@]} ຂະຫຍາຍອອກໄປບໍ່ມີຫຍັງເລີຍ. ຖ້າການຂະຫຍາຍການອ້າງອີງສອງເທົ່າເກີດຂຶ້ນພາຍໃນ a
ຄໍາ, ການຂະຫຍາຍຕົວຂອງຕົວກໍານົດການທໍາອິດແມ່ນເຂົ້າຮ່ວມກັບພາກສ່ວນເລີ່ມຕົ້ນຂອງ
ຄໍາຕົ້ນສະບັບ, ແລະການຂະຫຍາຍຕົວກໍານົດການສຸດທ້າຍແມ່ນເຂົ້າຮ່ວມກັບສ່ວນສຸດທ້າຍຂອງ
ຄໍາຕົ້ນສະບັບ. ນີ້ແມ່ນຄ້າຍຄືກັນກັບການຂະຫຍາຍຕົວກໍານົດການພິເສດ * ແລະ @ (ເບິ່ງ
ພິເສດ ຕົວກໍານົດການ ຂ້າງເທິງ). ${#ຊື່[ຕົວຫ້ອຍ]} ຂະຫຍາຍໄປສູ່ຄວາມຍາວຂອງ
${ຊື່[ຕົວຫ້ອຍ]}. ຖ້າ ຕົວຫ້ອຍ is * or @, ການຂະຫຍາຍແມ່ນຈໍານວນຂອງອົງປະກອບໃນ
array ໄດ້. ການອ້າງອີງຕົວແປ array ໂດຍບໍ່ມີ subscript ແມ່ນເທົ່າກັບການອ້າງອີງ
array ທີ່ມີ subscript ຂອງ 0. ຖ້າຫາກວ່າ ຕົວຫ້ອຍ ໃຊ້ເພື່ອອ້າງອີງອົງປະກອບຂອງ an
indexed array ປະເມີນເປັນຕົວເລກທີ່ນ້ອຍກວ່າສູນ, ມັນຖືກຕີຄວາມວ່າເປັນອັນນຶ່ງ
ຫຼາຍກ່ວາດັດຊະນີສູງສຸດຂອງອາເຣ, ດັ່ງນັ້ນດັດຊະນີລົບນັບຄືນຈາກທ້າຍ
ຂອງອາເຣ, ແລະດັດຊະນີ -1 ອ້າງອີງອົງປະກອບສຸດທ້າຍ.
ຕົວແປ array ຖືກພິຈາລະນາເປັນການຕັ້ງຄ່າຖ້າ subscript ໄດ້ຖືກມອບຫມາຍຄ່າ. null
string ແມ່ນຄ່າທີ່ຖືກຕ້ອງ.
ມັນເປັນໄປໄດ້ທີ່ຈະໄດ້ຮັບກະແຈ (ຕົວຊີ້ວັດ) ຂອງ array ເຊັ່ນດຽວກັນກັບຄ່າຕ່າງໆ.
${!ຊື່[@]} ແລະ ${!ຊື່[*]} ຂະຫຍາຍໄປຫາດັດຊະນີທີ່ກຳນົດໄວ້ໃນຕົວແປ array ຊື່. ໄດ້
ການປິ່ນປົວໃນເວລາທີ່ຢູ່ໃນວົງຢືມຄູ່ແມ່ນຄ້າຍຄືກັນກັບການຂະຫຍາຍຕົວກໍານົດການພິເສດ @
ແລະ * ພາຍໃນວົງຢືມຄູ່.
ໄດ້ ກຳ ນົດ buildin ຖືກນໍາໃຊ້ເພື່ອທໍາລາຍ arrays. ກຳ ນົດ ຊື່[ຕົວຫ້ອຍ] ທໍາລາຍອາເຣ
ອົງປະກອບທີ່ດັດສະນີ ຕົວຫ້ອຍ. subscripts ລົບຕໍ່ກັບ arrays indexed ຖືກຕີຄວາມວ່າ
ອະທິບາຍຂ້າງເທິງ. ຕ້ອງລະມັດລະວັງເພື່ອຫຼີກເວັ້ນການຜົນຂ້າງຄຽງທີ່ບໍ່ຕ້ອງການທີ່ເກີດຈາກຊື່ເສັ້ນທາງ
ການຂະຫຍາຍຕົວ. ກຳ ນົດ ຊື່, ບ່ອນທີ່ ຊື່ ເປັນ array, ຫຼື ກຳ ນົດ ຊື່[ຕົວຫ້ອຍ], ທີ່ ຕົວຫ້ອຍ
is * or @, ເອົາ array ທັງຫມົດ.
ໄດ້ ປະກາດ, ທ້ອງຖິ່ນ, ແລະ ອ່ານຢ່າງດຽວ buildins ແຕ່ລະຄົນຍອມຮັບ a -a ທາງເລືອກໃນການກໍານົດດັດສະນີ
array ແລະ a -A ທາງເລືອກທີ່ຈະລະບຸອາເຣທີ່ກ່ຽວຂ້ອງ. ຖ້າທັງສອງທາງເລືອກໄດ້ຖືກສະຫນອງໃຫ້, -A
ມີຄວາມສຳຄັນກວ່າ. ໄດ້ ອ່ານ buildin ຍອມຮັບ a -a ທາງເລືອກທີ່ຈະກໍານົດບັນຊີລາຍຊື່ຂອງຄໍາທີ່ອ່ານ
ຈາກການປ້ອນຂໍ້ມູນມາດຕະຖານໄປຫາ array. ໄດ້ ທີ່ກໍານົດໄວ້ ແລະ ປະກາດ buildins ສະແດງຄ່າ array ໃນ
ວິທີການທີ່ອະນຸຍາດໃຫ້ພວກເຂົາຖືກນໍາໃຊ້ຄືນໃຫມ່ເປັນການມອບຫມາຍ.
EXPANSION
ການຂະຫຍາຍຕົວແມ່ນດໍາເນີນຢູ່ໃນເສັ້ນຄໍາສັ່ງຫຼັງຈາກທີ່ມັນໄດ້ຖືກແບ່ງອອກເປັນຄໍາສັບຕ່າງໆ. ມີ
ການຂະຫຍາຍຕົວເຈັດປະເພດໄດ້ປະຕິບັດ: brace ການຂະຫຍາຍຕົວ, tilde ການຂະຫຍາຍຕົວ, ພາລາມິເຕີ ແລະ
ຕົວແປ ການຂະຫຍາຍຕົວ, ຄໍາສັ່ງ ການທົດແທນ, ເລກຄະນິດສາດ ການຂະຫຍາຍຕົວ, ຄໍາ ການແບ່ງປັນ, ແລະ
ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ.
ຄໍາສັ່ງຂອງການຂະຫຍາຍຕົວແມ່ນ: ການຂະຫຍາຍ brace; ການຂະຫຍາຍ tilde, ພາລາມິເຕີແລະຕົວແປ
ການຂະຫຍາຍ, ການຂະຫຍາຍເລກເລກ, ແລະການທົດແທນຄໍາສັ່ງ (ເຮັດໃນຊ້າຍຫາຂວາ
ແຟຊັ່ນ); ການແຍກຄໍາສັບ; ແລະການຂະຫຍາຍເສັ້ນທາງ.
ໃນລະບົບທີ່ສາມາດສະຫນັບສະຫນູນມັນ, ມີການຂະຫຍາຍເພີ່ມເຕີມທີ່ມີຢູ່: ຂະບວນການ
ການທົດແທນ. ນີ້ແມ່ນປະຕິບັດໃນເວລາດຽວກັນກັບ tilde, ພາລາມິເຕີ, ຕົວແປ, ແລະ
ການຂະຫຍາຍເລກເລກ ແລະ ການທົດແທນຄຳສັ່ງ.
ພຽງແຕ່ການຂະຫຍາຍວົງເລັບ, ການແຍກຄໍາສັບ, ແລະການຂະຫຍາຍຊື່ເສັ້ນທາງສາມາດປ່ຽນຈໍານວນ
ຄໍາສັບຕ່າງໆຂອງການຂະຫຍາຍຕົວ; ການຂະຫຍາຍອື່ນໆຂະຫຍາຍຄໍາດຽວໄປຫາຄໍາດຽວ. ເທົ່ານັ້ນ
ຂໍ້ຍົກເວັ້ນນີ້ແມ່ນການຂະຫຍາຍຕົວຂອງ "$@"ແລະ"${ຊື່[@]}" ດັ່ງທີ່ອະທິບາຍຂ້າງເທິງ (ເບິ່ງ
PARAMETERS).
Brace ການຂະຫຍາຍຕົວ
Brace ການຂະຫຍາຍຕົວ ແມ່ນກົນໄກທີ່ສາຍທີ່ມັກອາດຈະຖືກສ້າງຂື້ນ. ນີ້
ກົນໄກແມ່ນຄ້າຍຄືກັນກັບ ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ, ແຕ່ຊື່ໄຟລ໌ທີ່ສ້າງຂຶ້ນບໍ່ຈໍາເປັນຕ້ອງມີ.
ຮູບແບບທີ່ຈະໄດ້ຮັບການເສີມຂະຫຍາຍເປັນຮູບແບບຂອງທາງເລືອກ ຄຳ ນຳ, ຕາມດ້ວຍບໍ່ວ່າຈະເປັນ a
ຊຸດຂອງສະຕຣິງທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ ຫຼືການສະແດງອອກຕາມລຳດັບລະຫວ່າງວົງເລັບຄູ່,
ຕິດຕາມດ້ວຍທາງເລືອກ postcript. preamble ແມ່ນ prefixed ກັບແຕ່ລະ string ບັນຈຸ
ພາຍໃນວົງເລັບ, ແລະ postscript ໄດ້ຖືກຕໍ່ທ້າຍກັບແຕ່ລະສະຕຣິງຜົນໄດ້ຮັບ, ຂະຫຍາຍ
ຊ້າຍຫາຂວາ.
ການຂະຫຍາຍສາຍແຂນອາດຈະຖືກວາງໄວ້. ຜົນໄດ້ຮັບຂອງແຕ່ລະສາຍທີ່ຂະຫຍາຍບໍ່ໄດ້ຖືກຈັດຮຽງ; ຊ້າຍ
ຄໍາສັ່ງທີ່ຖືກຕ້ອງຖືກຮັກສາໄວ້. ຕົວຢ່າງ, ກ{d,c,b}e ຂະຫຍາຍເຂົ້າໄປໃນ 'ade ace abe'.
ການສະແດງອອກຕາມລໍາດັບໃຊ້ເວລາຮູບແບບ {x..y[..incr]}, ບ່ອນທີ່ x ແລະ y ເປັນຈໍານວນເຕັມຫຼື
ຕົວອັກສອນດຽວ, ແລະ incr, ການເພີ່ມທາງເລືອກ, ເປັນຈໍານວນເຕັມ. ເມື່ອຈຳນວນເຕັມ
ສະຫນອງໃຫ້, ການສະແດງອອກຂະຫຍາຍໄປຫາແຕ່ລະຕົວເລກລະຫວ່າງ x ແລະ y, ລວມ. ສະໜອງໃຫ້
ຈຳນວນເຕັມອາດຈະຖືກນຳໜ້າດ້ວຍ 0 ເພື່ອບັງຄັບໃຫ້ແຕ່ລະໄລຍະມີຄວາມກວ້າງດຽວກັນ. ເມື່ອໃດ x
or y ເລີ່ມຕົ້ນດ້ວຍສູນ, shell ພະຍາຍາມບັງຄັບໃຫ້ຂໍ້ກໍານົດທີ່ສ້າງຂຶ້ນທັງໝົດມີ
ຕົວເລກດຽວກັນ, ບໍ່ມີ padding ຖ້າຈໍາເປັນ. ໃນເວລາທີ່ຕົວອັກສອນໄດ້ຖືກສະຫນອງ, ໄດ້
ການສະແດງອອກຂະຫຍາຍໄປຫາແຕ່ລະລັກສະນະ lexicographically ລະຫວ່າງ x ແລະ y, ລວມ, ການນໍາໃຊ້
ທ້ອງຖິ່ນ C ເລີ່ມຕົ້ນ. ໃຫ້ສັງເກດວ່າທັງສອງ x ແລະ y ຕ້ອງເປັນປະເພດດຽວກັນ. ໃນເວລາທີ່
increment ແມ່ນສະຫນອງໃຫ້, ມັນຖືກນໍາໃຊ້ເປັນຄວາມແຕກຕ່າງລະຫວ່າງແຕ່ລະໄລຍະ. ຄ່າເລີ່ມຕົ້ນ
ເພີ່ມເປັນ 1 ຫຼື -1 ຕາມຄວາມເໝາະສົມ.
ການຂະຫຍາຍວົງເລັບແມ່ນປະຕິບັດກ່ອນການຂະຫຍາຍອື່ນໆ, ແລະລັກສະນະພິເສດຕໍ່
ການຂະຫຍາຍອື່ນໆແມ່ນຖືກຮັກສາໄວ້ໃນຜົນໄດ້ຮັບ. ມັນເປັນຂໍ້ຄວາມຢ່າງເຂັ້ມງວດ. Bash ບໍ່
ນຳໃຊ້ການຕີຄວາມໝາຍ syntactic ໃດໆກັບບໍລິບົດຂອງການຂະຫຍາຍ ຫຼືຂໍ້ຄວາມລະຫວ່າງ
ວົງເລັບ.
ການຂະຫຍາຍວົງເລັບທີ່ມີຮູບແບບທີ່ຖືກຕ້ອງຈະຕ້ອງມີວົງປີກກາເປີດ ແລະປິດທີ່ບໍ່ໄດ້ອ້າງອີງ, ແລະ
ຢ່າງໜ້ອຍໜຶ່ງເຄື່ອງໝາຍຈຸດທີ່ບໍ່ໄດ້ອ້າງອີງ ຫຼືການສະແດງອອກຕາມລຳດັບທີ່ຖືກຕ້ອງ. ວົງເລັບທີ່ສ້າງຂຶ້ນບໍ່ຖືກຕ້ອງ
ການຂະຫຍາຍແມ່ນປະໄວ້ບໍ່ປ່ຽນແປງ. ກ { or , ອາດຈະຖືກອ້າງອີງດ້ວຍ backslash ເພື່ອປ້ອງກັນການເປັນຂອງມັນ
ຖືວ່າເປັນສ່ວນໜຶ່ງຂອງການສະແດງອອກໃນວົງເລັບ. ເພື່ອຫຼີກເວັ້ນການຂັດແຍ້ງກັບການຂະຫຍາຍພາລາມິເຕີ,
string ${ ບໍ່ໄດ້ຖືກພິຈາລະນາວ່າມີສິດສໍາລັບການຂະຫຍາຍວົງເລັບ.
ໂຄງສ້າງນີ້ມັກຈະຖືກໃຊ້ເປັນ shorthand ເມື່ອຄໍານໍາຫນ້າທົ່ວໄປຂອງສາຍທີ່ຈະເປັນ
ສ້າງຂຶ້ນແມ່ນຍາວກວ່າໃນຕົວຢ່າງຂ້າງເທິງ:
mkdir /usr/local/src/bash/{old,new,dist,bugs}
or
ຮາກ chown /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
ການຂະຫຍາຍຕົວ Brace ແນະນໍາຄວາມບໍ່ເຂົ້າກັນໄດ້ເລັກນ້ອຍກັບສະບັບປະຫວັດສາດຂອງ sh. sh
ບໍ່ປະຕິບັດການເປີດຫຼືປິດວົງເລັບໂດຍສະເພາະເມື່ອພວກມັນປາກົດເປັນສ່ວນຫນຶ່ງຂອງຄໍາ, ແລະ
ຮັກສາພວກມັນຢູ່ໃນຜົນຜະລິດ. Bash ເອົາວົງເລັບອອກຈາກຄໍາທີ່ເປັນຜົນມາຈາກວົງເລັບ
ການຂະຫຍາຍຕົວ. ຕົວຢ່າງ, ຄໍາທີ່ໃສ່ໄປ sh as ໄຟລ໌{1,2} ປະກົດວ່າຄືກັນໃນ
ຜົນຜະລິດ. ຄໍາດຽວກັນແມ່ນຜົນຜະລິດເປັນ ແຟ້ມ 1 ແຟ້ມ 2 ຫຼັງຈາກການຂະຫຍາຍຕົວໂດຍ bash. ຖ້າເຄັ່ງຄັດ
ຄວາມເຂົ້າກັນໄດ້ກັບ sh ແມ່ນຕ້ອງການ, ເລີ່ມຕົ້ນ bash ກັບ +B ທາງເລືອກຫຼືປິດການຂະຫຍາຍວົງເລັບ
ກັບ +B ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ (ເບິ່ງ SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
ເຄື່ອງ ໝາຍ ສຳ ນຽງ ການຂະຫຍາຍຕົວ
ຖ້າຄໍາທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ tilde ທີ່ບໍ່ໄດ້ອ້າງອີງ (`~'), ຕົວອັກສອນທັງໝົດກ່ອນໜ້າ
ການສະແລດທີ່ບໍ່ໄດ້ອ້າງອີງທຳອິດ (ຫຼືຕົວອັກສອນທັງໝົດ, ຖ້າບໍ່ມີ slash unquoted) ຖືກພິຈາລະນາ
a tilde-prefix. ຖ້າບໍ່ມີຕົວອັກສອນໃດນຶ່ງໃນຄຳນຳໜ້າ tilde-prefix ຖືກອ້າງອີງ, ຕົວອັກສອນ
ໃນ tilde-prefix ດັ່ງຕໍ່ໄປນີ້ tilde ແມ່ນປະຕິບັດທີ່ເປັນໄປໄດ້ ເຂົ້າສູ່ລະບົບ ຊື່. ຖ້ານີ້
ຊື່ເຂົ້າສູ່ລະບົບແມ່ນສະຕຣິງ null, tilde ຖືກແທນທີ່ດ້ວຍຄ່າຂອງພາຣາມິເຕີ shell
ຫນ້າທໍາອິດທີ່ຢູ່ ຖ້າຫາກວ່າ ຫນ້າທໍາອິດ ບໍ່ໄດ້ຖືກຕັ້ງ, ໄດເລກະທໍລີເຮືອນຂອງຜູ້ໃຊ້ທີ່ປະຕິບັດ shell ໄດ້ຖືກທົດແທນ
ແທນ. ຖ້າບໍ່ດັ່ງນັ້ນ, tilde-prefix ຈະຖືກແທນທີ່ດ້ວຍ home directory ທີ່ກ່ຽວຂ້ອງກັບ
ຊື່ເຂົ້າສູ່ລະບົບທີ່ລະບຸ.
ຖ້າ tilde-prefix ເປັນ `~+', ຄ່າຂອງຕົວແປຂອງ shell PWD ແທນ tilde-
ຄຳນຳໜ້າ. ຖ້າ tilde-prefix ເປັນ `~-', ຄ່າຂອງຕົວແປຂອງ shell OLDPWD, ຖ້າມັນແມ່ນ
ຕັ້ງ, ຖືກທົດແທນ. ຖ້າຕົວອັກສອນຕໍ່ໄປນີ້ tilde ໃນ tilde-prefix ປະກອບດ້ວຍ
ຈໍານວນຫນຶ່ງ N, ທາງເລືອກທີ່ນຳໜ້າດ້ວຍ `+' ຫຼື `-', tilde-prefix ຖືກແທນທີ່ດ້ວຍ
ອົງປະກອບທີ່ສອດຄ້ອງກັນຈາກ stack ໄດເລກະທໍລີ, ຍ້ອນວ່າມັນຈະຖືກສະແດງໂດຍ ທີ່ຢູ່
buildin ເອີ້ນດ້ວຍ tilde-prefix ເປັນການໂຕ້ຖຽງ. ຖ້າຫາກວ່າລັກສະນະດັ່ງຕໍ່ໄປນີ້
tilde ໃນ tilde-prefix ປະກອບດ້ວຍຕົວເລກທີ່ບໍ່ມີ `+' ຫຼື `-', `+' ແມ່ນ.
ຄາດ.
ຖ້າຊື່ເຂົ້າສູ່ລະບົບບໍ່ຖືກຕ້ອງ, ຫຼືການຂະຫຍາຍ tilde ລົ້ມເຫລວ, ຄໍານັ້ນຈະບໍ່ປ່ຽນແປງ.
ການມອບໝາຍຕົວແປແຕ່ລະອັນຖືກກວດຫາຄຳນຳໜ້າ tilde-prefix ທີ່ບໍ່ໄດ້ອ້າງອີງທັນທີຫຼັງຈາກ a :
ຫຼືຄັ້ງທໍາອິດ =. ໃນກໍລະນີດັ່ງກ່າວນີ້, ການຂະຫຍາຍ tilde ແມ່ນດໍາເນີນ. ດັ່ງນັ້ນ, ຫນຶ່ງອາດຈະ
ໃຊ້ຊື່ໄຟລ໌ທີ່ມີ tildes ໃນການມອບຫມາຍໃຫ້ PATH, MAILPATH, ແລະ CDPATH, ແລະແກະ
ກຳນົດຄ່າທີ່ຂະຫຍາຍ.
ພາລາມິເຕີ ການຂະຫຍາຍຕົວ
ໄດ້ "$' ຕົວອັກສອນແນະນໍາການຂະຫຍາຍພາລາມິເຕີ, ການທົດແທນຄໍາສັ່ງ, ຫຼືເລກເລກ
ການຂະຫຍາຍຕົວ. ຊື່ພາລາມິເຕີຫຼືສັນຍາລັກທີ່ຈະຂະຫຍາຍອາດຈະຖືກຫຸ້ມຢູ່ໃນວົງເລັບ, ເຊິ່ງ
ເປັນທາງເລືອກແຕ່ໃຫ້ບໍລິການເພື່ອປົກປ້ອງຕົວແປທີ່ຈະຂະຫຍາຍອອກຈາກຕົວອັກສອນທັນທີ
ປະຕິບັດຕາມມັນຊຶ່ງສາມາດຕີຄວາມຫມາຍເປັນສ່ວນຫນຶ່ງຂອງຊື່.
ເມື່ອວົງເລັບຖືກໃຊ້, ວົງເລັບສິ້ນສຸດທີ່ກົງກັນແມ່ນ 'ທຳອິດ}' ບໍ່ໄດ້ຫນີໂດຍ
backslash ຫຼືພາຍໃນສະຕຣິງທີ່ອ້າງອີງ, ແລະບໍ່ແມ່ນຢູ່ໃນການຂະຫຍາຍເລກເລກທີ່ຝັງໄວ້,
ການທົດແທນຄໍາສັ່ງ, ຫຼືການຂະຫຍາຍຕົວພາລາມິເຕີ.
${ພາລາມິເຕີ}
ມູນຄ່າຂອງ ພາລາມິເຕີ ຖືກປ່ຽນແທນ. ວົງເລັບແມ່ນຕ້ອງການໃນເວລາທີ່ ພາລາມິເຕີ ເປັນ
ຕົວກໍານົດການຕໍາແຫນ່ງທີ່ມີຫຼາຍກວ່າຫນຶ່ງຕົວເລກ, ຫຼືເວລາໃດ ພາລາມິເຕີ ຕິດຕາມດ້ວຍ a
ລັກສະນະທີ່ບໍ່ໄດ້ຖືກຕີຄວາມຫມາຍເປັນສ່ວນຫນຶ່ງຂອງຊື່ຂອງມັນ. ໄດ້ ພາລາມິເຕີ ເປັນ
ຕົວກໍານົດການ shell ດັ່ງທີ່ໄດ້ອະທິບາຍຂ້າງເທິງ PARAMETERS) ຫຼືການອ້າງອີງ array (ອາເລ).
ຖ້າຫາກວ່າລັກສະນະທໍາອິດຂອງ ພາລາມິເຕີ ເປັນ exclamation ຈຸດ (!), ມັນແນະນໍາລະດັບຂອງ
ທິດທາງການປ່ຽນແປງ. Bash ໃຊ້ຄ່າຂອງຕົວແປທີ່ສ້າງຂຶ້ນຈາກສ່ວນທີ່ເຫຼືອຂອງ
ພາລາມິເຕີ ເປັນຊື່ຂອງຕົວແປ; ຕົວແປນີ້ຈະຖືກຂະຫຍາຍອອກໄປແລະມູນຄ່ານັ້ນແມ່ນ
ໃຊ້ໃນສ່ວນທີ່ເຫຼືອຂອງການທົດແທນ, ແທນທີ່ຈະເປັນມູນຄ່າຂອງ ພາລາມິເຕີ ຕົວຂອງມັນເອງ. ນີ້ແມ່ນ
ເອີ້ນກັນວ່າ ທາງອ້ອມ ການຂະຫຍາຍຕົວ. ຂໍ້ຍົກເວັ້ນນີ້ແມ່ນການຂະຫຍາຍຂອງ ${!ຄຳ ນຳ ໜ້າ*} ແລະ
${!ຊື່[@]} ອະທິບາຍຂ້າງລຸ່ມນີ້. ຈຸດ exclamation ທັນທີຕ້ອງປະຕິບັດຕາມວົງເລັບຊ້າຍ
ເພື່ອແນະນໍາທາງອ້ອມ.
ໃນແຕ່ລະກໍລະນີຂ້າງລຸ່ມນີ້, ຄໍາ ແມ່ນຂຶ້ນກັບການຂະຫຍາຍ tilde, ການຂະຫຍາຍພາລາມິເຕີ,
ການທົດແທນຄໍາສັ່ງ, ແລະການຂະຫຍາຍເລກເລກ.
ເມື່ອບໍ່ປະຕິບັດການຂະຫຍາຍສາຍຍ່ອຍ, ການນໍາໃຊ້ແບບຟອມທີ່ບັນທຶກໄວ້ຂ້າງລຸ່ມນີ້ (ຕົວຢ່າງ: :-), bash
ການທົດສອບສໍາລັບພາລາມິເຕີທີ່ບໍ່ໄດ້ຕັ້ງຫຼື null. ການຖິ້ມຈໍ້າສອງເມັດໃຫ້ຜົນໃນການທົດສອບເທົ່ານັ້ນ
ສໍາລັບພາລາມິເຕີທີ່ບໍ່ໄດ້ຕັ້ງ.
${ພາລາມິເຕີ:-ຄໍາ}
ການນໍາໃຊ້ ມາດຕະຖານ ມູນຄ່າທີ່ຢູ່ ຖ້າຫາກວ່າ ພາລາມິເຕີ ແມ່ນ unset ຫຼື null, ການຂະຫຍາຍຂອງ ຄໍາ is
ທົດແທນ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມູນຄ່າຂອງ ພາລາມິເຕີ ຖືກປ່ຽນແທນ.
${ພາລາມິເຕີ:=ຄໍາ}
ມອບຫມາຍ ມາດຕະຖານ ມູນຄ່າທີ່ຢູ່ ຖ້າຫາກວ່າ ພາລາມິເຕີ ແມ່ນ unset ຫຼື null, ການຂະຫຍາຍຂອງ ຄໍາ is
ການມອບຫມາຍໃຫ້ ພາລາມິເຕີ. ຄຸນຄ່າຂອງ ພາລາມິເຕີ ຫຼັງຈາກນັ້ນຖືກທົດແທນ. ຕໍາແໜ່ງ
ພາລາມິເຕີແລະຕົວກໍານົດການພິເສດອາດຈະບໍ່ຖືກມອບຫມາຍໃນທາງນີ້.
${ພາລາມິເຕີ:?ຄໍາ}
ການສະແດງ Error if null or ບໍ່ໄດ້ຕັ້ງທີ່ຢູ່ ຖ້າຫາກວ່າ ພາລາມິເຕີ ແມ່ນ null ຫຼື unset, ການຂະຫຍາຍຂອງ
ຄໍາ (ຫຼືຂໍ້ຄວາມທີ່ມີຜົນກະທົບນັ້ນຖ້າຫາກວ່າ ຄໍາ isn't present) ຖືກຂຽນໃສ່
ຄວາມຜິດພາດມາດຕະຖານແລະແກະ, ຖ້າມັນບໍ່ແມ່ນການໂຕ້ຕອບ, ອອກຈາກ. ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້
ມູນຄ່າຂອງ ພາລາມິເຕີ ຖືກປ່ຽນແທນ.
${ພາລາມິເຕີ:+ຄໍາ}
ການນໍາໃຊ້ ທາງເລືອກ ມູນຄ່າທີ່ຢູ່ ຖ້າຫາກວ່າ ພາລາມິເຕີ ແມ່ນ null ຫຼື unset, ບໍ່ມີຫຍັງທົດແທນ,
ຖ້າບໍ່ດັ່ງນັ້ນການຂະຫຍາຍຕົວຂອງ ຄໍາ ຖືກປ່ຽນແທນ.
${ພາລາມິເຕີ:ຊົດເຊີຍ}
${ພາລາມິເຕີ:ຊົດເຊີຍ:ຄວາມຍາວ}
ສາຍໃຕ້ ການຂະຫຍາຍຕົວ. ຂະຫຍາຍໄດ້ເຖິງ ຄວາມຍາວ ລັກສະນະຂອງມູນຄ່າຂອງ ພາລາມິເຕີ
ເລີ່ມຈາກລັກສະນະທີ່ລະບຸໄວ້ໂດຍ ຊົດເຊີຍທີ່ຢູ່ ຖ້າຫາກວ່າ ພາລາມິເຕີ is @, ອາເຣທີ່ຖືກດັດສະນີ
ສະໝັກໂດຍ @ or *, ຫຼືຊື່ array ທີ່ກ່ຽວຂ້ອງ, ຜົນໄດ້ຮັບແຕກຕ່າງກັນເປັນ
ອະທິບາຍຂ້າງລຸ່ມນີ້. ຖ້າ ຄວາມຍາວ ຖືກລະເວັ້ນ, ຂະຫຍາຍໄປຫາສະຕຣິງຍ່ອຍຂອງມູນຄ່າຂອງ
ພາລາມິເຕີ ເລີ່ມຈາກລັກສະນະທີ່ລະບຸໄວ້ໂດຍ ຊົດເຊີຍ ແລະຂະຫຍາຍໄປໃນຕອນທ້າຍຂອງ
ມູນຄ່າ. ຄວາມຍາວ ແລະ ຊົດເຊີຍ ແມ່ນການສະແດງອອກທາງເລກເລກ (ເບິ່ງ AITHMETIC ການວິເຄາະ
ດ້ານລຸ່ມ).
If ຊົດເຊີຍ ປະເມີນເປັນຕົວເລກທີ່ນ້ອຍກວ່າສູນ, ຄ່າແມ່ນໃຊ້ເປັນການຊົດເຊີຍໃນ
ຕົວອັກສອນຈາກຈຸດສິ້ນສຸດຂອງມູນຄ່າ ພາລາມິເຕີທີ່ຢູ່ ຖ້າຫາກວ່າ ຄວາມຍາວ ປະເມີນເປັນຕົວເລກ
ຫນ້ອຍກວ່າສູນ, ມັນຖືກຕີຄວາມວ່າເປັນການຊົດເຊີຍໃນຕົວອັກສອນຈາກທ້າຍຂອງ
ມູນຄ່າຂອງ ພາລາມິເຕີ ແທນທີ່ຈະເປັນຈໍານວນຂອງຕົວອັກສອນ, ແລະການຂະຫຍາຍຕົວແມ່ນ
ຕົວອັກສອນລະຫວ່າງ ຊົດເຊີຍ ແລະຜົນໄດ້ຮັບນັ້ນ. ໃຫ້ສັງເກດວ່າການຊົດເຊີຍທາງລົບຈະຕ້ອງເປັນ
ແຍກອອກຈາກຈໍ້າສອງເມັດຢ່າງຫນ້ອຍຫນຶ່ງຊ່ອງເພື່ອຫຼີກເວັ້ນການສັບສົນກັບ :-
ການຂະຫຍາຍຕົວ.
If ພາລາມິເຕີ is @, ຜົນໄດ້ຮັບແມ່ນ ຄວາມຍາວ ຕົວກໍານົດການຕໍາແຫນ່ງເລີ່ມຕົ້ນທີ່ ຊົດເຊີຍ.
A ລົບ ຊົດເຊີຍ ໄດ້ຖືກປະຕິບັດໂດຍສົມທຽບກັບຫນຶ່ງໃຫຍ່ກວ່າຕໍາແຫນ່ງທີ່ຍິ່ງໃຫຍ່ທີ່ສຸດ
ພາລາມິເຕີ, ດັ່ງນັ້ນການຊົດເຊີຍຂອງ -1 ປະເມີນໄປຫາພາລາມິເຕີຕໍາແຫນ່ງສຸດທ້າຍ. ມັນເປັນ
ການຂະຫຍາຍຕົວຜິດພາດຖ້າຫາກວ່າ ຄວາມຍາວ ປະເມີນເປັນຕົວເລກທີ່ໜ້ອຍກວ່າສູນ.
If ພາລາມິເຕີ ເປັນ indexed array ຊື່ subscripted ໂດຍ @ ຫຼື *, ຜົນໄດ້ຮັບແມ່ນ
ຄວາມຍາວ ສະມາຊິກຂອງອາເຣທີ່ເລີ່ມຕົ້ນດ້ວຍ ${ພາລາມິເຕີ[ຊົດເຊີຍ]}. ລົບ ຊົດເຊີຍ
ຖືກນຳໄປທຽບກັບອັນໜຶ່ງທີ່ໃຫຍ່ກວ່າດັດຊະນີສູງສຸດຂອງອາເຣທີ່ລະບຸ. ມັນ
ເປັນຄວາມຜິດພາດການຂະຫຍາຍຕົວຖ້າຫາກວ່າ ຄວາມຍາວ ປະເມີນເປັນຕົວເລກທີ່ໜ້ອຍກວ່າສູນ.
ການຂະຫຍາຍສະຕຣິງຍ່ອຍທີ່ນຳໃຊ້ກັບອາເຣທີ່ກ່ຽວຂ້ອງສ້າງຜົນໄດ້ຮັບທີ່ບໍ່ໄດ້ກຳນົດ.
ການຈັດດັດສະນີຂອງສາຍຍ່ອຍແມ່ນອີງໃສ່ສູນເວັ້ນເສຍແຕ່ວ່າຕົວກໍານົດການຕໍາແຫນ່ງຖືກນໍາໃຊ້, in
ເຊິ່ງກໍລະນີການດັດສະນີເລີ່ມຕົ້ນທີ່ 1 ໂດຍຄ່າເລີ່ມຕົ້ນ. ຖ້າ ຊົດເຊີຍ ແມ່ນ 0, ແລະຕໍາແຫນ່ງ
ຕົວກໍານົດການຖືກນໍາໃຊ້, $0 ຖືກນຳໜ້າໃສ່ລາຍຊື່.
${!ຄຳ ນຳ ໜ້າ*}
${!ຄຳ ນຳ ໜ້າ@}
ຊື່ ການຈັບຄູ່ ຄຳ ນຳ ໜ້າ. ຂະຫຍາຍໄປຫາຊື່ຂອງຕົວແປທີ່ຊື່ເລີ່ມຕົ້ນດ້ວຍ
ຄຳ ນຳ ໜ້າ, ແຍກອອກໂດຍລັກສະນະທໍາອິດຂອງ IFS ຕົວແປພິເສດ. ເມື່ອໃດ @ is
ຖືກນໍາໃຊ້ແລະການຂະຫຍາຍຈະປາກົດຢູ່ໃນວົງຢືມສອງເທົ່າ, ແຕ່ລະຊື່ຕົວແປຂະຫຍາຍໄປ
ຄໍາທີ່ແຍກຕ່າງຫາກ.
${!ຊື່[@]}
${!ຊື່[*]}
ບັນຊີລາຍຊື່ of array ໃຊ້ທີ່ຢູ່ ຖ້າຫາກວ່າ ຊື່ ແມ່ນຕົວແປ array, ຂະຫຍາຍໄປຫາບັນຊີລາຍຊື່ຂອງ array
ດັດຊະນີ (ກະແຈ) ມອບຫມາຍໃນ ຊື່ທີ່ຢູ່ ຖ້າຫາກວ່າ ຊື່ ບໍ່ແມ່ນ array, ຂະຫຍາຍເປັນ 0 if ຊື່ is
ກໍານົດແລະ null ຖ້າບໍ່ດັ່ງນັ້ນ. ເມື່ອໃດ @ ຖືກນໍາໃຊ້ແລະການຂະຫຍາຍຕົວຈະປາກົດພາຍໃນສອງເທົ່າ
quotes, ແຕ່ລະຄີຂະຫຍາຍໄປຫາຄໍາແຍກຕ່າງຫາກ.
${#ພາລາມິເຕີ}
ພາລາມິເຕີ ຄວາມຍາວ. ຄວາມຍາວຂອງຕົວອັກສອນຂອງມູນຄ່າ ພາລາມິເຕີ is
ທົດແທນ. ຖ້າ ພາລາມິເຕີ is * or @, ຄ່າທົດແທນແມ່ນຈໍານວນຂອງ
ຕົວກໍານົດການຕໍາແຫນ່ງ. ຖ້າ ພາລາມິເຕີ ແມ່ນຊື່ array subscripted ໂດຍ * or @, ການ
ຄ່າທົດແທນແມ່ນຈໍານວນຂອງອົງປະກອບໃນ array. ຖ້າ ພາລາມິເຕີ ເປັນ
indexed array name subscripted by a negative number , ຈໍານວນນັ້ນຖືກຕີຄວາມຫມາຍເປັນ
ທຽບກັບອັນໜຶ່ງທີ່ໃຫຍ່ກວ່າດັດຊະນີສູງສຸດຂອງ ພາລາມິເຕີ, ດັ່ງນັ້ນຕົວຊີ້ວັດທາງລົບ
ນັບກັບຄືນຈາກທ້າຍຂອງອາເຣ, ແລະດັດຊະນີ -1 ອ້າງອີງສຸດທ້າຍ
ອົງປະກອບ.
${ພາລາມິເຕີ#ຄໍາ}
${ພາລາມິເຕີ##ຄໍາ}
ເອົາ ການຈັບຄູ່ ຄຳ ນຳ ໜ້າ ຮູບແບບ. ໄດ້ ຄໍາ ແມ່ນຂະຫຍາຍອອກເພື່ອຜະລິດຮູບແບບພຽງແຕ່ເປັນ
ໃນການຂະຫຍາຍຊື່ເສັ້ນທາງ. ຖ້າຮູບແບບກົງກັບຈຸດເລີ່ມຕົ້ນຂອງມູນຄ່າຂອງ
ພາລາມິເຕີ, ຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບຂອງການຂະຫຍາຍຕົວແມ່ນມູນຄ່າການຂະຫຍາຍຕົວຂອງ ພາລາມິເຕີ ກັບ
ຮູບແບບການຈັບຄູ່ທີ່ສັ້ນທີ່ສຸດ (``#'' case) ຫຼືຮູບແບບການຈັບຄູ່ທີ່ຍາວທີ່ສຸດ (the
``##'' case) ຖືກລົບອອກ. ຖ້າ ພາລາມິເຕີ is @ or *, ການປະຕິບັດການໂຍກຍ້າຍຮູບແບບແມ່ນ
ນໍາໃຊ້ກັບແຕ່ລະຕົວກໍານົດການຕໍາແຫນ່ງໃນທາງກັບກັນ, ແລະການຂະຫຍາຍແມ່ນຜົນໄດ້ຮັບ
ບັນຊີລາຍຊື່. ຖ້າ ພາລາມິເຕີ ເປັນຕົວແປ array subscripted ກັບ @ or *, ຮູບແບບ
ການດໍາເນີນງານການໂຍກຍ້າຍແມ່ນນໍາໃຊ້ກັບສະມາຊິກຂອງອາເຣໃນແຕ່ລະ, ແລະການຂະຫຍາຍ
ແມ່ນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ.
${ພາລາມິເຕີ%ຄໍາ}
${ພາລາມິເຕີ%%ຄໍາ}
ເອົາ ການຈັບຄູ່ បច្ច័យ ຮູບແບບ. ໄດ້ ຄໍາ ແມ່ນຂະຫຍາຍອອກເພື່ອຜະລິດຮູບແບບພຽງແຕ່ເປັນ
ໃນການຂະຫຍາຍຊື່ເສັ້ນທາງ. ຖ້າຮູບແບບກົງກັບສ່ວນຕໍ່ທ້າຍຂອງສ່ວນຂະຫຍາຍ
ມູນຄ່າຂອງ ພາລາມິເຕີ, ຫຼັງຈາກນັ້ນຜົນໄດ້ຮັບຂອງການຂະຫຍາຍຕົວແມ່ນມູນຄ່າການຂະຫຍາຍຕົວຂອງ
ພາລາມິເຕີ ດ້ວຍຮູບແບບການຈັບຄູ່ທີ່ສັ້ນທີ່ສຸດ (``%'ກໍລະນີ) ຫຼືຍາວທີ່ສຸດ
ຮູບແບບທີ່ກົງກັນ (``%%'' case) ຖືກລົບອອກ. ຖ້າ ພາລາມິເຕີ is @ or *, ຮູບແບບ
ການດໍາເນີນງານການໂຍກຍ້າຍແມ່ນໄດ້ນໍາໃຊ້ກັບຕົວກໍານົດການຕໍາແຫນ່ງແຕ່ລະຢ່າງ, ແລະ
ການຂະຫຍາຍແມ່ນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ. ຖ້າ ພາລາມິເຕີ ແມ່ນຕົວແປ array subscripted
ກັບ @ or *, ການປະຕິບັດການກໍາຈັດຮູບແບບແມ່ນໃຊ້ກັບສະມາຊິກແຕ່ລະຄົນຂອງອາເຣ
ໃນທາງກັບກັນ, ແລະການຂະຫຍາຍຕົວແມ່ນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ.
${ພາລາມິເຕີ/ຮູບແບບ/string}
ຮູບແບບ ການທົດແທນ. ໄດ້ ຮູບແບບ ແມ່ນຂະຫຍາຍອອກເພື່ອຜະລິດຮູບແບບຄືກັນກັບໃນ
ການຂະຫຍາຍຊື່ເສັ້ນທາງ. ພາລາມິເຕີ ແມ່ນຂະຫຍາຍແລະກົງກັນຍາວທີ່ສຸດຂອງ ຮູບແບບ ຕໍ່
ຄ່າຂອງມັນຖືກແທນທີ່ດ້ວຍ stringທີ່ຢູ່ ຖ້າຫາກວ່າ ຮູບແບບ ເລີ່ມຕົ້ນດ້ວຍ /, ການແຂ່ງຂັນທັງຫມົດຂອງ
ຮູບແບບ ຖືກທົດແທນດ້ວຍ string. ປົກກະຕິແລ້ວພຽງແຕ່ການແຂ່ງຂັນຄັ້ງທໍາອິດເທົ່ານັ້ນທີ່ຖືກປ່ຽນແທນ. ຖ້າ
ຮູບແບບ ເລີ່ມຕົ້ນດ້ວຍ #, ມັນຕ້ອງກົງກັນໃນຕອນຕົ້ນຂອງມູນຄ່າການຂະຫຍາຍຕົວຂອງ
ພາລາມິເຕີທີ່ຢູ່ ຖ້າຫາກວ່າ ຮູບແບບ ເລີ່ມຕົ້ນດ້ວຍ %, ມັນຕ້ອງກົງກັນໃນຕອນທ້າຍຂອງການຂະຫຍາຍ
ມູນຄ່າຂອງ ພາລາມິເຕີທີ່ຢູ່ ຖ້າຫາກວ່າ string ແມ່ນ null, ກົງກັບ ຮູບແບບ ຖືກລົບແລະ /
ດັ່ງຕໍ່ໄປນີ້ ຮູບແບບ ອາດຈະຖືກລະເວັ້ນ. ຖ້າ ພາລາມິເຕີ is @ or *, ການທົດແທນ
ການດໍາເນີນງານແມ່ນນໍາໃຊ້ກັບຕົວກໍານົດການຕໍາແຫນ່ງແຕ່ລະຄົນ, ແລະການຂະຫຍາຍຕົວແມ່ນ
ບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ. ຖ້າ ພາລາມິເຕີ ເປັນຕົວແປ array subscripted ກັບ @ or *, ການ
ການດໍາເນີນງານການທົດແທນແມ່ນນໍາໃຊ້ກັບສະມາຊິກຂອງອາເຣໃນແຕ່ລະ, ແລະ
ການຂະຫຍາຍແມ່ນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ.
${ພາລາມິເຕີ^ຮູບແບບ}
${ພາລາມິເຕີ^^ຮູບແບບ}
${ພາລາມິເຕີ,ຮູບແບບ}
${ພາລາມິເຕີ,,ຮູບແບບ}
ກໍລະນີ ດັດແກ້. ການຂະຫຍາຍຕົວນີ້ດັດແປງກໍລະນີຂອງຕົວອັກສອນໃນ
ພາລາມິເຕີ. ໄດ້ ຮູບແບບ ຖືກຂະຫຍາຍອອກເພື່ອຜະລິດຮູບແບບຄືກັນກັບຊື່ເສັ້ນທາງ
ການຂະຫຍາຍຕົວ. ແຕ່ລະລັກສະນະໃນມູນຄ່າຂະຫຍາຍຂອງ ພາລາມິເຕີ ຖືກທົດສອບຕໍ່ກັບ
ຮູບແບບ, ແລະ, ຖ້າມັນກົງກັບຮູບແບບ, ກໍລະນີຂອງມັນຈະຖືກແປງ. ຮູບແບບຄວນ
ຢ່າພະຍາຍາມຈັບຄູ່ຫຼາຍກວ່າໜຶ່ງຕົວອັກສອນ. ໄດ້ ^ operator ແປງຕົວພິມນ້ອຍ
ຕົວອັກສອນທີ່ກົງກັນ ຮູບແບບ ຫາຕົວພິມໃຫຍ່; ໄດ້ , operator converts ຈັບຄູ່ຕົວພິມໃຫຍ່
ຕົວອັກສອນຕົວພິມນ້ອຍ. ໄດ້ ^^ ແລະ ,, ການຂະຫຍາຍຕົວປ່ຽນແຕ່ລະຕົວລະຄອນທີ່ກົງກັນໃນ
ມູນຄ່າການຂະຫຍາຍ; ໄດ້ ^ ແລະ , ການຂະຫຍາຍຕົວກົງກັນແລະປ່ຽນພຽງແຕ່ທໍາອິດ
ລັກສະນະໃນມູນຄ່າຂະຫຍາຍ. ຖ້າ ຮູບແບບ ຖືກລະເວັ້ນ, ມັນຖືກປະຕິບັດຄືກັບ ?,
ເຊິ່ງກົງກັບທຸກໆຕົວລະຄອນ. ຖ້າ ພາລາມິເຕີ is @ or *, ການແກ້ໄຂກໍລະນີ
ການດໍາເນີນງານແມ່ນນໍາໃຊ້ກັບຕົວກໍານົດການຕໍາແຫນ່ງແຕ່ລະຄົນ, ແລະການຂະຫຍາຍຕົວແມ່ນ
ບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ. ຖ້າ ພາລາມິເຕີ ເປັນຕົວແປ array subscripted ກັບ @ or *, ການ
ການດໍາເນີນງານການດັດແກ້ກໍລະນີແມ່ນນໍາໃຊ້ກັບສະມາຊິກຂອງອາເຣໃນແຕ່ລະ, ແລະ
ການຂະຫຍາຍແມ່ນບັນຊີລາຍຊື່ຜົນໄດ້ຮັບ.
ຄໍາສັ່ງ ປ່ຽນແທນ
ຄໍາສັ່ງ ການທົດແທນ ອະນຸຍາດໃຫ້ຜົນຜະລິດຂອງຄໍາສັ່ງເພື່ອທົດແທນຊື່ຄໍາສັ່ງ. ຢູ່ທີ່ນັ້ນ
ມີສອງຮູບແບບ:
$(ຄໍາສັ່ງ)
or
`ຄໍາສັ່ງ`
Bash ປະຕິບັດການຂະຫຍາຍຕົວໂດຍການດໍາເນີນການ ຄໍາສັ່ງ ແລະການປ່ຽນແທນຄໍາສັ່ງ
ກັບຜົນໄດ້ຮັບມາດຕະຖານຂອງຄໍາສັ່ງ, ທີ່ມີເສັ້ນໃຫມ່ທີ່ຕິດຕາມຖືກລົບອອກ. ຝັງ
ແຖວໃຫມ່ບໍ່ໄດ້ຖືກລຶບ, ແຕ່ພວກມັນອາດຈະຖືກໂຍກຍ້າຍອອກໃນລະຫວ່າງການແຍກຄໍາສັບ. ຄໍາສັ່ງ
ການທົດແທນ $(ແມວ ເອກະສານ) ສາມາດທົດແທນໄດ້ໂດຍທຽບເທົ່າແຕ່ໄວກວ່າ $( ເອກະສານ).
ເມື່ອຮູບແບບ backquote ແບບເກົ່າຖືກໃຊ້ແທນ, backslash ຈະຮັກສາຕົວຫນັງສືຂອງມັນ
ຄວາມ ໝາຍ ຍົກເວັ້ນເມື່ອຕິດຕາມດ້ວຍ $, `, ຫຼື \. backquote ທໍາອິດບໍ່ໄດ້ນໍາຫນ້າໂດຍ a
backslash ຢຸດການທົດແທນຄໍາສັ່ງ. ເມື່ອໃຊ້ $(ຄໍາສັ່ງ) ຮູບແບບ, ທັງຫມົດ
ຕົວອັກສອນລະຫວ່າງວົງເລັບປະກອບເປັນຄໍາສັ່ງ; ບໍ່ມີໃຜຖືກປະຕິບັດເປັນພິເສດ.
ການທົດແທນຄໍາສັ່ງອາດຈະຖືກວາງໄວ້. ເພື່ອຮັງໃນເວລາທີ່ໃຊ້ແບບຟອມ backquoted, ຫນີ
backquotes ພາຍໃນທີ່ມີ backslashes.
ຖ້າການທົດແທນປາກົດຢູ່ໃນວົງຢືມສອງເທົ່າ, ການແຍກຄໍາສັບແລະການຂະຫຍາຍຊື່ເສັ້ນທາງ
ບໍ່ໄດ້ປະຕິບັດໃນຜົນໄດ້ຮັບ.
ເລກຄະນິດສາດ ການຂະຫຍາຍຕົວ
ການຂະຫຍາຍຕົວເລກຄະນິດອະນຸຍາດໃຫ້ການປະເມີນຜົນຂອງການສະແດງອອກເລກຄະນິດສາດແລະ
ການທົດແທນຜົນໄດ້ຮັບ. ຮູບແບບການຂະຫຍາຍເລກເລກແມ່ນ:
$((ການສະແດງອອກ))
ຮູບແບບເກົ່າ $[ການສະແດງອອກ] ຖືກຄັດຄ້ານ ແລະຈະຖືກລຶບອອກໃນລຸ້ນທີ່ຈະມາເຖິງຂອງ
ບ້າ.
ໄດ້ ການສະແດງອອກ ຖືກປະຕິບັດຄືກັບວ່າມັນຢູ່ໃນວົງຢືມຄູ່, ແຕ່ຄໍາເວົ້າສອງເທົ່າພາຍໃນ
ວົງເລັບບໍ່ໄດ້ຖືກປະຕິບັດເປັນພິເສດ. tokens ທັງໝົດໃນ expression undergo parameter
ແລະການຂະຫຍາຍຕົວປ່ຽນແປງ, ການທົດແທນຄໍາສັ່ງ, ແລະການໂຍກຍ້າຍໃບຄໍາສັ່ງ. ຜົນໄດ້ຮັບແມ່ນປະຕິບັດເປັນ
ການສະແດງອອກທາງເລກເລກທີ່ຈະຖືກປະເມີນ. ການຂະຫຍາຍເລກເລກອາດຈະຖືກວາງໄວ້.
ການປະເມີນຜົນແມ່ນປະຕິບັດຕາມລະບຽບການດັ່ງລຸ່ມນີ້ພາຍໃຕ້ການ AITHMETIC
ການວິເຄາະທີ່ຢູ່ ຖ້າຫາກວ່າ ການສະແດງອອກ ບໍ່ຖືກຕ້ອງ, bash ພິມຂໍ້ຄວາມສະແດງເຖິງຄວາມລົ້ມເຫລວແລະບໍ່ມີ
ການທົດແທນເກີດຂຶ້ນ.
ຂະບວນການ ປ່ຽນແທນ
ຂະບວນການ ການທົດແທນ ໄດ້ຮັບການສະຫນັບສະຫນູນໃນລະບົບທີ່ສະຫນັບສະຫນູນທໍ່ທີ່ມີຊື່ (FIFOs) ຫຼືໄດ້
/dev/fd ວິທີການຕັ້ງຊື່ໄຟລ໌ເປີດ. ມັນໃຊ້ເວລາຮູບແບບຂອງ <(ບັນຊີລາຍຊື່) or >(ບັນຊີລາຍຊື່). ໄດ້
ຂະບວນການ ບັນຊີລາຍຊື່ ແມ່ນດໍາເນີນການດ້ວຍການປ້ອນຂໍ້ມູນ ຫຼືຜົນຜະລິດຂອງມັນເຊື່ອມຕໍ່ກັບ a FIFO ຫຼືບາງໄຟລ໌ໃນ /dev/fd.
ຊື່ຂອງໄຟລ໌ນີ້ຖືກສົ່ງຜ່ານເປັນການໂຕ້ຖຽງກັບຄໍາສັ່ງປະຈຸບັນເປັນຜົນມາຈາກການ
ການຂະຫຍາຍຕົວ. ຖ້າ >(ບັນຊີລາຍຊື່) ແບບຟອມຖືກນໍາໃຊ້, ການຂຽນໃສ່ໄຟລ໌ຈະສະຫນອງການປ້ອນຂໍ້ມູນສໍາລັບ ບັນຊີລາຍຊື່.
ຖ້າ <(ບັນຊີລາຍຊື່) ແບບຟອມແມ່ນຖືກນໍາໃຊ້, ໄຟລ໌ທີ່ຜ່ານເປັນການໂຕ້ຖຽງຄວນໄດ້ຮັບການອ່ານເພື່ອໃຫ້ໄດ້
ຜົນຜະລິດຂອງ ບັນຊີລາຍຊື່.
ເມື່ອມີ, ການທົດແທນຂະບວນການແມ່ນດໍາເນີນການພ້ອມໆກັນກັບພາລາມິເຕີແລະ
ການຂະຫຍາຍຕົວປ່ຽນແປງ, ການທົດແທນຄໍາສັ່ງ, ແລະການຂະຫຍາຍຕົວເລກຄະນິດສາດ.
Word ການແບ່ງປັນ
ແກະສະແກນຜົນຂອງການຂະຫຍາຍພາລາມິເຕີ, ການທົດແທນຄໍາສັ່ງ, ແລະເລກເລກ
ການຂະຫຍາຍຕົວທີ່ບໍ່ໄດ້ເກີດຂຶ້ນພາຍໃນວົງຢືມຄູ່ສໍາລັບ ຄໍາ ການແບ່ງປັນ.
ແກະປະຕິບັດຕໍ່ລັກສະນະຂອງແຕ່ລະຄົນ IFS ເປັນຕົວຂັ້ນ, ແລະແຍກຜົນໄດ້ຮັບຂອງອັນອື່ນ
ຂະຫຍາຍເຂົ້າໄປໃນຄໍາສັບຕ່າງໆໂດຍໃຊ້ຕົວອັກສອນເຫຼົ່ານີ້ເປັນຕົວສິ້ນສຸດພາກສະຫນາມ. ຖ້າ IFS ບໍ່ໄດ້ຕັ້ງ, ຫຼື
ມູນຄ່າຂອງມັນແມ່ນແທ້ , ຄ່າເລີ່ມຕົ້ນ, ຫຼັງຈາກນັ້ນລໍາດັບຂອງ , ,
ແລະ ໃນຕອນຕົ້ນແລະໃນຕອນທ້າຍຂອງຜົນໄດ້ຮັບຂອງການຂະຫຍາຍຕົວທີ່ຜ່ານມາແມ່ນ
ບໍ່ສົນໃຈ, ແລະລໍາດັບໃດໆຂອງ IFS ຕົວອັກສອນທີ່ບໍ່ແມ່ນໃນຕອນຕົ້ນຫຼືການສິ້ນສຸດເຮັດໃຫ້ມີການຈໍາກັດ
ຄໍາສັບຕ່າງໆ. ຖ້າ IFS ມີຄ່າອື່ນນອກເໜືອໄປຈາກຄ່າເລີ່ມຕົ້ນ, ຈາກນັ້ນຈັດລໍາດັບຂອງຊ່ອງຫວ່າງ
ລັກສະນະ ຊ່ອງ ແລະ ແຖບ ຖືກລະເລີຍໃນຕອນຕົ້ນແລະທ້າຍຂອງຄໍາສັບ, ຕາບໃດທີ່
ຕົວອັກສອນຊ່ອງຫວ່າງຢູ່ໃນຄ່າຂອງ IFS (ເປັນ IFS ລັກສະນະຊ່ອງຫວ່າງ). ຕົວລະຄອນໃດນຶ່ງ
in IFS ນັ້ນບໍ່ແມ່ນ IFS ຊ່ອງຫວ່າງ, ພ້ອມກັບບ່ອນຢູ່ໃກ້ຄຽງ IFS ຕົວອັກສອນຊ່ອງຫວ່າງ,
ຂີດຈຳກັດຊ່ອງຂໍ້ມູນ. ລໍາດັບຂອງ IFS ຕົວອັກສອນຊ່ອງຫວ່າງຍັງຖືກປະຕິບັດເປັນຕົວຂັ້ນ.
ຖ້າຫາກວ່າມູນຄ່າຂອງ IFS ແມ່ນ null, ບໍ່ມີການແບ່ງຄໍາສັບໃດໆເກີດຂຶ້ນ.
arguments null ຢ່າງຈະແຈ້ງ ("" or '') ຖືກເກັບຮັກສາໄວ້. arguments null implicit unquoted,
ເປັນຜົນມາຈາກການຂະຫຍາຍຕົວຂອງຕົວກໍານົດການທີ່ບໍ່ມີຄ່າ, ຖືກໂຍກຍ້າຍ. ຖ້າ ກ
ພາລາມິເຕີທີ່ບໍ່ມີຄ່າແມ່ນຂະຫຍາຍຢູ່ໃນວົງຢືມຄູ່, ຜົນໄດ້ຮັບການໂຕ້ຖຽງ null ແລະແມ່ນ
ເກັບຮັກສາໄວ້.
ໃຫ້ສັງເກດວ່າຖ້າບໍ່ມີການຂະຫຍາຍໃດໆເກີດຂື້ນ, ບໍ່ມີການແຕກແຍກ.
ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ
ຫຼັງຈາກການແບ່ງປັນຄໍາສັບ, ເວັ້ນເສຍແຕ່ວ່າ -f ທາງເລືອກໄດ້ຖືກກໍານົດໄວ້, bash scans ແຕ່ລະຄໍາສໍາລັບການ
ລັກສະນະ *, ?, ແລະ [. ຖ້າຫນຶ່ງໃນລັກສະນະເຫຼົ່ານີ້ປາກົດ, ຫຼັງຈາກນັ້ນຄໍາທີ່ຖືກຖືວ່າເປັນ
a ຮູບແບບ, ແລະແທນທີ່ດ້ວຍລາຍຊື່ໄຟລ໌ທີ່ຈັດຮຽງຕາມຕົວອັກສອນທີ່ກົງກັບ
ຮູບແບບ (ເບິ່ງ ຮູບແບບ ການຈັບຄູ່ ຂ້າງລຸ່ມນີ້). ຖ້າບໍ່ພົບຊື່ໄຟລ໌ທີ່ກົງກັນ, ແລະແກະ
ທາງເລືອກ nullglob ບໍ່ໄດ້ເປີດໃຊ້ງານ, ຄໍາສັບຕ່າງໆແມ່ນບໍ່ມີການປ່ຽນແປງ. ຖ້າ nullglob ທາງເລືອກແມ່ນ
ກໍານົດ, ແລະບໍ່ພົບຄໍາທີ່ກົງກັນ, ຄໍາທີ່ຖືກໂຍກຍ້າຍ. ຖ້າ ລົ້ມເຫລວ ທາງເລືອກ shell ໄດ້ຖືກຕັ້ງໄວ້,
ແລະບໍ່ພົບຂໍ້ມູນທີ່ກົງກັນ, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຖືກພິມອອກແລະຄໍາສັ່ງບໍ່ໄດ້ຖືກປະຕິບັດ. ຖ້າ
ທາງເລືອກ shell nocaseglob ຖືກເປີດໃຊ້, ການຈັບຄູ່ແມ່ນດໍາເນີນການໂດຍບໍ່ຄໍານຶງເຖິງກໍລະນີ
ຂອງຕົວອັກສອນ. ໃຫ້ສັງເກດວ່າເມື່ອໃຊ້ການສະແດງອອກໄລຍະເຊັ່ນ [az] (ເບິ່ງຂ້າງລຸ່ມນີ້),
ຕົວອັກສອນຂອງກໍລະນີອື່ນໆອາດຈະຖືກລວມເຂົ້າ, ຂຶ້ນກັບການຕັ້ງຄ່າຂອງ LC_COLLATE. ເມື່ອເປັນ
ຮູບແບບແມ່ນໃຊ້ສໍາລັບການຂະຫຍາຍຊື່, ລັກສະນະ ``.'' ໃນຕອນເລີ່ມຕົ້ນຂອງຊື່ຫຼື
ທັນທີປະຕິບັດຕາມ slash ຕ້ອງໄດ້ຮັບການຈັບຄູ່ຢ່າງຈະແຈ້ງ, ເວັ້ນເສຍແຕ່ທາງເລືອກ shell dotglob
ຖືກກໍານົດ. ເມື່ອຈັບຄູ່ຊື່ເສັ້ນທາງ, ຕົວອັກສອນຫຍໍ້ໜ້າຈະຕ້ອງຖືກຈັບຄູ່ຢ່າງຈະແຈ້ງສະເໝີ.
ໃນກໍລະນີອື່ນໆ, the ``.'' ລັກສະນະບໍ່ໄດ້ຖືກປະຕິບັດເປັນພິເສດ. ເບິ່ງລາຍລະອຽດຂອງ
ຮ້ານຄ້າ ຂ້າງລຸ່ມນີ້ SHELL ອາຄານ ສາມາດ ສໍາລັບຄໍາອະທິບາຍຂອງ nocaseglob, nullglob,
ລົ້ມເຫລວ, ແລະ dotglob ຕົວເລືອກແກະ.
ໄດ້ GLOBIGNORE Shell variable ອາດຈະຖືກນໍາໃຊ້ເພື່ອຈໍາກັດຊຸດຂອງຊື່ໄຟລ໌ທີ່ກົງກັບ a
ຮູບແບບທີ່ຢູ່ ຖ້າຫາກວ່າ GLOBIGNORE ຖືກຕັ້ງໄວ້, ແຕ່ລະຊື່ໄຟລ໌ທີ່ກົງກັນທີ່ກົງກັບຫນຶ່ງຂອງ
ຮູບແບບໃນ GLOBIGNORE ຖືກລຶບອອກຈາກລາຍຊື່ການແຂ່ງຂັນ. ຊື່ໄຟລ໌ ``.'' ແລະ
``..'' ສະເຫມີຖືກລະເລີຍໃນເວລາທີ່ GLOBIGNORE ຖືກກໍານົດແລະບໍ່ null. ຢ່າງໃດກໍຕາມ, ການຕັ້ງຄ່າ
GLOBIGNORE ກັບຄ່າທີ່ບໍ່ແມ່ນ null ມີຜົນກະທົບຂອງການເຮັດໃຫ້ໄດ້ dotglob ທາງເລືອກ shell, ສະນັ້ນທັງຫມົດ
ຊື່ໄຟລ໌ອື່ນໆທີ່ເລີ່ມຕົ້ນດ້ວຍ a ``.'' ຈະກົງກັນ. ເພື່ອໃຫ້ໄດ້ຮັບພຶດຕິກໍາເກົ່າຂອງການບໍ່ສົນໃຈ
ຊື່ໄຟລ໌ທີ່ເລີ່ມຕົ້ນດ້ວຍ a ``.'', ເຮັດໃຫ້ ``.*'' ຫນຶ່ງໃນຮູບແບບໃນ GLOBIGNORE. ໄດ້
dotglob ທາງເລືອກຖືກປິດໃຊ້ງານເມື່ອ GLOBIGNORE ບໍ່ໄດ້ຕັ້ງ.
ຮູບແບບ ການຈັບຄູ່
ຕົວອັກສອນໃດໆກໍຕາມທີ່ປະກົດຢູ່ໃນຮູບແບບໃດໜຶ່ງ, ນອກເໜືອໄປຈາກຕົວລະຄອນທີ່ມີຮູບແບບພິເສດ
ອະທິບາຍຂ້າງລຸ່ມນີ້, ກົງກັບຕົວມັນເອງ. ຕົວອັກສອນ NUL ອາດຈະບໍ່ເກີດຂຶ້ນໃນຮູບແບບ. ກ
backslash escapes ລັກສະນະດັ່ງຕໍ່ໄປນີ້; backslash ໜີ ຖືກຍົກເລີກເມື່ອ
ການຈັບຄູ່. ຕົວອັກສອນຮູບແບບພິເສດຈະຕ້ອງຖືກອ້າງອີງຖ້າພວກມັນຈະກົງກັນ
ຮູ້ຫນັງສື.
ຕົວອັກສອນຮູບແບບພິເສດມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
* ກົງກັບສະຕຣິງໃດນຶ່ງ, ລວມທັງສະຕຣິງ null. ໃນເວລາທີ່ globstar ຫອຍ
ທາງເລືອກແມ່ນເປີດໃຊ້ງານ, ແລະ * ຖືກນໍາໃຊ້ໃນສະພາບການຂະຫຍາຍຊື່ເສັ້ນທາງ, ສອງ
ຕິດກັນ *s ໃຊ້ເປັນຮູບແບບດຽວຈະກົງກັບໄຟລ໌ທັງຫມົດແລະສູນຫຼືຫຼາຍກວ່ານັ້ນ
ໄດເລກະທໍລີ ແລະໄດເລກະທໍລີຍ່ອຍ. ຖ້າຕິດຕາມດ້ວຍ ກ /, ສອງຢູ່ຕິດກັນ *s ຈະ
ຈັບຄູ່ພຽງແຕ່ໄດເລກະທໍລີແລະໄດເລກະທໍລີຍ່ອຍ.
? ກົງກັບຕົວອັກສອນດຽວ.
[ ... ] ກົງກັບຕົວລະຄອນໃດນຶ່ງທີ່ອ້ອມຮອບ. ຄູ່ຂອງຕົວອັກສອນແຍກອອກ
ໂດຍ hyphen ຫມາຍເຖິງ a ລະດັບ ການສະແດງອອກ; ລັກສະນະໃດນຶ່ງທີ່ຕົກຢູ່ໃນລະຫວ່າງ
ຕົວອັກສອນສອງອັນນັ້ນ, ຮວມກັນ, ນຳໃຊ້ຕົວປະສານຂອງສະຖານທີ່ປັດຈຸບັນ
ລໍາດັບແລະຊຸດຕົວອັກສອນ, ຖືກຈັບຄູ່. ຖ້າຫາກວ່າລັກສະນະທໍາອິດດັ່ງຕໍ່ໄປນີ້
ໄດ້ [ ເປັນ ! ຫຼື ^ ຫຼັງຈາກນັ້ນ, ຕົວອັກສອນໃດໆທີ່ບໍ່ໄດ້ປິດລ້ອມແມ່ນກົງກັນ. ໄດ້
ການຈັດຮຽງລໍາດັບຂອງຕົວອັກສອນໃນການສະແດງຜົນຂອບເຂດແມ່ນຖືກກໍານົດໂດຍ
ທ້ອງຖິ່ນໃນປະຈຸບັນແລະຄ່າຂອງ LC_COLLATE or LC_ALL ຕົວແປຂອງແກະ,
ຖ້າຕັ້ງ. ເພື່ອໃຫ້ໄດ້ຮັບການຕີລາຄາພື້ນຖານຂອງການສະແດງອອກລະດັບ,
ບ່ອນທີ່ [ໂຄສະນາ] ເທົ່າກັບ [ກຂຄງ], ກໍານົດມູນຄ່າຂອງ LC_ALL shell ຕົວແປ
to C, ຫຼືເປີດໃຊ້ງານ globasciiranges ຕົວເລືອກແກະ. ກ - ອາດຈະຖືກຈັບຄູ່ໂດຍ
ລວມທັງມັນເປັນລັກສະນະທໍາອິດຫຼືສຸດທ້າຍໃນຊຸດ. ກ ] ອາດຈະຖືກຈັບຄູ່
ໂດຍລວມທັງມັນເປັນລັກສະນະທໍາອິດໃນຊຸດ.
ພາຍໃນ [ ແລະ ], ລັກສະນະ ຫ້ອງຮຽນ ສາມາດຖືກກໍານົດໂດຍໃຊ້ syntax
[:ລະດັບ:], ບ່ອນທີ່ ລະດັບ ແມ່ນໜຶ່ງໃນຊັ້ນຮຽນຕໍ່ໄປນີ້ທີ່ກຳນົດໄວ້ໃນ POSIX
ມາດຕະຖານ:
ເລກເກົ່າ alpha ASCII ເປົ່າ cntrl ຫລັກ graph ຕ່ໍາ ພິມ punct ຊ່ອງ ເທິງ ຄໍາ
xdigit
ຫ້ອງຮຽນຕົວອັກສອນກົງກັບຕົວອັກສອນໃດໆກໍຕາມທີ່ເປັນຂອງຫ້ອງຮຽນນັ້ນ. ໄດ້ ຄໍາ
ຫ້ອງຮຽນຕົວອັກສອນກົງກັບຕົວອັກສອນ, ຕົວເລກ, ແລະຕົວອັກສອນ _.
ພາຍໃນ [ ແລະ ], ເປັນ ທຽບເທົ່າ ລະດັບ ສາມາດຖືກກໍານົດໂດຍໃຊ້ syntax
[=c=], ເຊິ່ງກົງກັບຕົວອັກສອນທັງໝົດທີ່ມີນ້ຳໜັກລວມດຽວກັນ (ເປັນ
ກໍານົດໂດຍທ້ອງຖິ່ນໃນປະຈຸບັນ) ເປັນລັກສະນະ c.
ພາຍໃນ [ ແລະ ], syntax ໄດ້ [.ສັນຍາລັກ.] ກົງກັບສັນຍາລັກການລວບລວມ ສັນຍາລັກ.
ຖ້າ extglob ຕົວເລືອກ shell ຖືກເປີດໃຊ້ໂດຍໃຊ້ ຮ້ານຄ້າ buildin, ຫຼາຍຮູບແບບຂະຫຍາຍ
ປະຕິບັດການຈັບຄູ່ໄດ້ຖືກຮັບຮູ້. ໃນຄໍາອະທິບາຍຕໍ່ໄປນີ້, a ລາຍການຮູບແບບ ແມ່ນບັນຊີລາຍຊື່
ຂອງຫນຶ່ງຫຼືຫຼາຍຮູບແບບທີ່ແຍກອອກໂດຍ a |. ຮູບແບບປະກອບອາດຈະຖືກສ້າງຕັ້ງຂຶ້ນໂດຍໃຊ້ຫນຶ່ງຫຼື
ເພີ່ມເຕີມຂອງຮູບແບບຍ່ອຍຕໍ່ໄປນີ້:
?(ລາຍການຮູບແບບ)
ກົງກັບສູນ ຫຼືໜຶ່ງການປະກົດຕົວຂອງຮູບແບບທີ່ໃຫ້
*(ລາຍການຮູບແບບ)
ກົງກັບສູນ ຫຼືຫຼາຍກວ່າການປະກົດຕົວຂອງຮູບແບບທີ່ໃຫ້ໄວ້
+(ລາຍການຮູບແບບ)
ກົງກັບໜຶ່ງ ຫຼືຫຼາຍກວ່າການປະກົດຕົວຂອງຮູບແບບທີ່ໃຫ້ໄວ້
@(ລາຍການຮູບແບບ)
ກົງກັບໜຶ່ງໃນຮູບແບບທີ່ໃຫ້ໄວ້
!(ລາຍການຮູບແບບ)
ຈັບຄູ່ກັບອັນໃດອັນໜຶ່ງຍົກເວັ້ນຮູບແບບທີ່ໃຫ້ໄວ້
ອ້າງ ການໂຍກຍ້າຍ
ຫຼັງຈາກການຂະຫຍາຍຕົວກ່ອນຫນ້ານີ້, ທັງຫມົດ unquoted ທີ່ເກີດຂຶ້ນຂອງຕົວອັກສອນ \, ', ແລະ "
ທີ່ບໍ່ໄດ້ຜົນມາຈາກຫນຶ່ງໃນການຂະຫຍາຍຕົວຂ້າງເທິງນີ້ໄດ້ຖືກໂຍກຍ້າຍອອກ.
ການປ່ຽນເສັ້ນທາງ
ກ່ອນທີ່ຄໍາສັ່ງຈະຖືກປະຕິບັດ, ການປ້ອນຂໍ້ມູນແລະຜົນຜະລິດຂອງມັນອາດຈະເປັນ redirected ການນໍາໃຊ້ພິເສດ
notation ຕີຄວາມຫມາຍໂດຍແກະ. ການປ່ຽນເສັ້ນທາງອະນຸຍາດໃຫ້ການຈັດການໄຟລ໌ຄໍາສັ່ງທີ່ຈະເປັນ
duplicated, ເປີດ, ປິດ, ເຮັດເພື່ອອ້າງເຖິງໄຟລ໌ທີ່ແຕກຕ່າງກັນ, ແລະສາມາດປ່ຽນໄຟລ໌ໄດ້
ຄໍາສັ່ງອ່ານຈາກແລະຂຽນຫາ. ການປ່ຽນເສັ້ນທາງອາດຈະຖືກໃຊ້ເພື່ອແກ້ໄຂຕົວຈັດການໄຟລ໌ໃນ
ສະພາບແວດລ້ອມການປະຕິບັດ shell ໃນປັດຈຸບັນ. ໂຕປະຕິບັດການປ່ຽນເສັ້ນທາງຕໍ່ໄປນີ້ອາດຈະໄປກ່ອນ
ຫຼືປາກົດຢູ່ບ່ອນໃດກໍໄດ້ພາຍໃນ a ງ່າຍດາຍ ຄໍາສັ່ງ ຫຼືອາດຈະປະຕິບັດຕາມ a ຄໍາສັ່ງ. ການປ່ຽນເສັ້ນທາງແມ່ນ
ປຸງແຕ່ງຕາມລໍາດັບທີ່ປາກົດ, ຈາກຊ້າຍຫາຂວາ.
ແຕ່ລະການປ່ຽນເສັ້ນທາງທີ່ອາດຈະຖືກນໍາຫນ້າໂດຍຫມາຍເລກ descriptor ໄຟລ໌ອາດຈະຖືກນໍາຫນ້າ
ໂດຍຄໍາສັບຂອງຮູບແບບ {varname}. ໃນກໍລະນີນີ້, ສໍາລັບແຕ່ລະຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງຍົກເວັ້ນ >&-
ແລະ <&-, shell ຈະຈັດສັນຕົວອະທິບາຍໄຟລ໌ທີ່ໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບ 10 ແລະມອບໝາຍ.
ມັນໄປ varname. ຖ້າ >&- ຫຼື <&- ຖືກນຳໜ້າໂດຍ {varname}, ມູນຄ່າຂອງ varname ກໍານົດ
ຕົວອະທິບາຍໄຟລ໌ທີ່ຈະປິດ.
ໃນຄໍາອະທິບາຍຕໍ່ໄປນີ້, ຖ້າຫມາຍເລກ descriptor ໄຟລ໌ຖືກລະເວັ້ນ, ແລະທໍາອິດ
ລັກສະນະຂອງຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງແມ່ນ <, ການປ່ຽນເສັ້ນທາງຫມາຍເຖິງການປ້ອນຂໍ້ມູນມາດຕະຖານ
(ຕົວອະທິບາຍໄຟລ໌ 0). ຖ້າລັກສະນະທໍາອິດຂອງຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງແມ່ນ >, ການ
redirection ຫມາຍເຖິງຜົນຜະລິດມາດຕະຖານ (ໄຟລ໌ descriptor 1).
ຄໍາທີ່ປະຕິບັດຕາມຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງໃນຄໍາອະທິບາຍຕໍ່ໄປນີ້, ເວັ້ນເສຍແຕ່
ສັງເກດເຫັນຖ້າບໍ່ດັ່ງນັ້ນ, ແມ່ນຂຶ້ນກັບການຂະຫຍາຍ brace, ການຂະຫຍາຍ tilde, ພາລາມິເຕີແລະຕົວແປ
ການຂະຫຍາຍຕົວ, ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍຕົວເລກຄະນິດສາດ, ການໂຍກຍ້າຍອອກຄໍາແນະນໍາ, ການຂະຫຍາຍຊື່ເສັ້ນທາງ,
ແລະການແບ່ງປັນຄໍາສັບຕ່າງໆ. ຖ້າມັນຂະຫຍາຍອອກໄປຫຼາຍກວ່າຫນຶ່ງຄໍາ, bash ລາຍງານຄວາມຜິດພາດ.
ໃຫ້ສັງເກດວ່າຄໍາສັ່ງຂອງການປ່ຽນເສັ້ນທາງແມ່ນສໍາຄັນ. ສໍາລັບຕົວຢ່າງ, ຄໍາສັ່ງ
ls > ບັນຊີລາຍຊື່ 2>&1
ຊີ້ທິດທາງທັງຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານໄປຫາໄຟລ໌ ບັນຊີລາຍການ, ໃນຂະນະທີ່ຄໍາສັ່ງ
ລ 2>&1 > ບັນຊີລາຍການ
ຊີ້ທິດທາງພຽງແຕ່ຜົນຜະລິດມາດຕະຖານທີ່ຈະໄຟລ໌ ບັນຊີລາຍການ, ເນື່ອງຈາກວ່າຄວາມຜິດພາດມາດຕະຖານແມ່ນ
duplicated ຈາກຜົນຜະລິດມາດຕະຖານກ່ອນທີ່ຈະຜົນຜະລິດມາດຕະຖານໄດ້ຖືກໂອນໄປຫາ ບັນຊີລາຍການ.
Bash ຈັດການຫຼາຍຊື່ໄຟລ໌ໂດຍສະເພາະເມື່ອພວກມັນຖືກໃຊ້ໃນການປ່ຽນເສັ້ນທາງ, ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້
ໃນຕາຕະລາງຕໍ່ໄປນີ້:
/dev/fd/fd
If fd ເປັນຈຳນວນເຕັມທີ່ຖືກຕ້ອງ, ຕົວອະທິບາຍໄຟລ໌ fd ແມ່ນຊໍ້າກັນ.
/dev/stdin
ຕົວອະທິບາຍໄຟລ໌ 0 ແມ່ນຊໍ້າກັນ.
/dev/stdout
ຕົວອະທິບາຍໄຟລ໌ 1 ແມ່ນຊໍ້າກັນ.
/dev/stderr
ຕົວອະທິບາຍໄຟລ໌ 2 ແມ່ນຊໍ້າກັນ.
/dev/tcp/ເຈົ້າພາບ/port
If ເຈົ້າພາບ ເປັນຊື່ເຈົ້າພາບ ຫຼືທີ່ຢູ່ອິນເຕີເນັດທີ່ຖືກຕ້ອງ, ແລະ port ເປັນພອດຈຳນວນເຕັມ
ໝາຍເລກ ຫຼືຊື່ການບໍລິການ, bash ພະຍາຍາມເປີດເຕົ້າຮັບ TCP ທີ່ສອດຄ້ອງກັນ.
/dev/udp/ເຈົ້າພາບ/port
If ເຈົ້າພາບ ເປັນຊື່ເຈົ້າພາບ ຫຼືທີ່ຢູ່ອິນເຕີເນັດທີ່ຖືກຕ້ອງ, ແລະ port ເປັນພອດຈຳນວນເຕັມ
ໝາຍເລກ ຫຼືຊື່ການບໍລິການ, bash ພະຍາຍາມເປີດຊັອກເກັດ UDP ທີ່ສອດຄ້ອງກັນ.
ຄວາມລົ້ມເຫລວໃນການເປີດ ຫຼືສ້າງໄຟລ໌ເຮັດໃຫ້ການປ່ຽນເສັ້ນທາງລົ້ມເຫລວ.
ການປ່ຽນເສັ້ນທາງໂດຍໃຊ້ຕົວອະທິບາຍໄຟລ໌ທີ່ໃຫຍ່ກວ່າ 9 ຄວນຖືກໃຊ້ດ້ວຍຄວາມລະມັດລະວັງ, ຍ້ອນວ່າພວກມັນອາດຈະ
ຂັດກັບຕົວອະທິບາຍໄຟລ໌ທີ່ shell ໃຊ້ພາຍໃນ.
ຫມາຍເຫດວ່າ exec ຄໍາສັ່ງ builtin ສາມາດເຮັດໃຫ້ການປ່ຽນເສັ້ນທາງມີຜົນໃນ shell ໃນປັດຈຸບັນ.
ການປ່ຽນເສັ້ນທາງ ການປ້ອນຂໍ້ມູນ
ການປ່ຽນເສັ້ນທາງຂອງການປ້ອນຂໍ້ມູນເຮັດໃຫ້ໄຟລ໌ທີ່ມີຊື່ຜົນມາຈາກການຂະຫຍາຍຕົວຂອງ ຄໍາ ຈະ
ເປີດສໍາລັບການອ່ານຢູ່ໃນຕົວອະທິບາຍໄຟລ໌ n, ຫຼືການປ້ອນຂໍ້ມູນມາດຕະຖານ (ຕົວອະທິບາຍໄຟລ໌ 0) ຖ້າ n is
ບໍ່ໄດ້ລະບຸ.
ຮູບແບບທົ່ວໄປສໍາລັບການປ່ຽນເສັ້ນທາງການປ້ອນຂໍ້ມູນແມ່ນ:
[n]<ຄໍາ
ການປ່ຽນເສັ້ນທາງ ຜົນຜະລິດ
ການປ່ຽນເສັ້ນທາງຂອງຜົນຜະລິດເຮັດໃຫ້ໄຟລ໌ທີ່ມີຊື່ຜົນມາຈາກການຂະຫຍາຍຕົວຂອງ ຄໍາ ຈະ
ເປີດສໍາລັບການຂຽນໃນຕົວອະທິບາຍໄຟລ໌ n, ຫຼືຜົນຜະລິດມາດຕະຖານ (ໄຟລ໌ descriptor 1) ຖ້າ n
ບໍ່ໄດ້ລະບຸ. ຖ້າໄຟລ໌ບໍ່ມີມັນຖືກສ້າງຂຶ້ນ; ຖ້າຫາກວ່າມັນມີຢູ່, ມັນແມ່ນ
ຕັດເປັນສູນ.
ຮູບແບບທົ່ວໄປສໍາລັບການປ່ຽນເສັ້ນທາງຜົນຜະລິດແມ່ນ:
[n]>ຄໍາ
ຖ້າຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງແມ່ນ >, ແລະ noclobber ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ buildin ໄດ້
ເປີດໃຊ້, ການປ່ຽນເສັ້ນທາງຈະລົ້ມເຫລວຖ້າຫາກວ່າໄຟລ໌ທີ່ມີຊື່ຜົນມາຈາກການຂະຫຍາຍຕົວຂອງ
ຄໍາ ມີຢູ່ແລະເປັນໄຟລ໌ປົກກະຕິ. ຖ້າຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງແມ່ນ >|, ຫຼືການປ່ຽນເສັ້ນທາງ
ຜູ້ປະກອບການແມ່ນ > ແລະ noclobber ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin ບໍ່ໄດ້ຖືກເປີດໃຊ້, the
ການປ່ຽນເສັ້ນທາງແມ່ນພະຍາຍາມເຖິງແມ່ນວ່າໄຟລ໌ທີ່ມີຊື່ໂດຍ ຄໍາ ລາຄາ:.
ຕໍ່ທ້າຍ ຖືກດັດແປງ ຜົນຜະລິດ
ການປ່ຽນເສັ້ນທາງຂອງຜົນຜະລິດໃນຮູບແບບນີ້ເຮັດໃຫ້ໄຟລ໌ທີ່ມີຊື່ຜົນໄດ້ຮັບຈາກ
ການຂະຫຍາຍຂອງ ຄໍາ ຈະຖືກເປີດສໍາລັບການເພີ່ມເຕີມໃນຕົວອະທິບາຍໄຟລ໌ n, ຫຼືຜົນຜະລິດມາດຕະຖານ
(ຕົວອະທິບາຍໄຟລ໌ 1) ຖ້າ n ບໍ່ໄດ້ລະບຸ. ຖ້າໄຟລ໌ບໍ່ມີ, ມັນຖືກສ້າງຂຶ້ນ.
ຮູບແບບທົ່ວໄປສໍາລັບການຕໍ່ທ້າຍຜົນຜະລິດແມ່ນ:
[n]>>ຄໍາ
ການປ່ຽນເສັ້ນທາງ ມາດຕະຖານ ຜົນຜະລິດ ແລະ ມາດຕະຖານ Error
ໂຄງສ້າງນີ້ອະນຸຍາດໃຫ້ທັງສອງຜົນໄດ້ຮັບມາດຕະຖານ (ໄຟລ໌ descriptor 1) ແລະຄວາມຜິດພາດມາດຕະຖານ
output (file descriptor 2) ທີ່ຈະໄດ້ຮັບ redirected ກັບໄຟລ໌ທີ່ມີຊື່ຂອງການຂະຫຍາຍຕົວຂອງ
ຄໍາ.
ມີສອງຮູບແບບສໍາລັບການປ່ຽນເສັ້ນທາງຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານ:
&>ຄໍາ
ແລະ
>&ຄໍາ
ຂອງທັງສອງຮູບແບບ, ທໍາອິດແມ່ນມັກ. ນີ້ແມ່ນຄໍາສັບຕ່າງໆທຽບເທົ່າກັບ
>ຄໍາ 2>&1
ເມື່ອໃຊ້ຮູບແບບທີສອງ, ຄໍາ ອາດຈະບໍ່ຂະຫຍາຍອອກເປັນຈໍານວນຫຼື -. ຖ້າມັນເຮັດ, ອື່ນໆ
ປະຕິບັດການປ່ຽນເສັ້ນທາງນໍາໃຊ້ (ເບິ່ງ ເຮັດຊໍ້າ ເອກະສານ ລາຍລະອຽດ ຂ້າງລຸ່ມນີ້) ສໍາລັບຄວາມເຂົ້າກັນໄດ້
ເຫດຜົນ.
ຕໍ່ທ້າຍ ມາດຕະຖານ ຜົນຜະລິດ ແລະ ມາດຕະຖານ Error
ໂຄງສ້າງນີ້ອະນຸຍາດໃຫ້ທັງສອງຜົນໄດ້ຮັບມາດຕະຖານ (ໄຟລ໌ descriptor 1) ແລະຄວາມຜິດພາດມາດຕະຖານ
ຜົນຜະລິດ (ຕົວອະທິບາຍໄຟລ໌ 2) ທີ່ຈະໄດ້ຮັບການຕໍ່ທ້າຍກັບໄຟລ໌ທີ່ມີຊື່ຂອງການຂະຫຍາຍຕົວຂອງ ຄໍາ.
ຮູບແບບການຕໍ່ທ້າຍຜົນຜະລິດມາດຕະຖານ ແລະຄວາມຜິດພາດມາດຕະຖານແມ່ນ:
&>>ຄໍາ
ນີ້ແມ່ນຄໍາສັບຕ່າງໆທຽບເທົ່າກັບ
>>ຄໍາ 2>&1
(ເບິ່ງ ເຮັດຊໍ້າ ເອກະສານ ລາຍລະອຽດ ດ້ານລຸ່ມ).
ທີ່ນີ້ ເອກະສານ
ປະເພດຂອງການປ່ຽນເສັ້ນທາງນີ້ສັ່ງໃຫ້ shell ອ່ານການປ້ອນຂໍ້ມູນຈາກແຫຼ່ງປະຈຸບັນຈົນກ່ວາ a
ເສັ້ນທີ່ມີພຽງແຕ່ ຕົວຂັ້ນ (ບໍ່ມີຊ່ອງຫວ່າງຕໍ່ຫນ້າ) ແມ່ນເຫັນ. ທຸກໆສາຍທີ່ອ່ານ
ຈົນເຖິງຈຸດນັ້ນຖືກໃຊ້ເປັນວັດສະດຸປ້ອນມາດຕະຖານສໍາລັບຄໍາສັ່ງ.
ຮູບແບບຂອງເອກະສານທີ່ນີ້ແມ່ນ:
<<[-]ຄໍາ
ທີ່ນີ້ - ເອກະສານ
ຕົວຂັ້ນ
ບໍ່ມີພາລາມິເຕີແລະການຂະຫຍາຍຕົວແປ, ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍຕົວເລກເລກ, ຫຼື
ການຂະຫຍາຍຊື່ເສັ້ນທາງແມ່ນດໍາເນີນຢູ່ ຄໍາ. ຖ້າຕົວລະຄອນໃດນຶ່ງໃນ ຄໍາ ອ້າງເຖິງຂໍ້ຄວາມຈາກ
ຕົວຂັ້ນ ເປັນຜົນມາຈາກການໂຍກຍ້າຍ quote ສຸດ ຄໍາ, ແລະສາຍໃນເອກະສານຢູ່ທີ່ນີ້
ບໍ່ໄດ້ຂະຫຍາຍ. ຖ້າ ຄໍາ ແມ່ນ unquoted, ສາຍທັງຫມົດຂອງເອກະສານ here-document ແມ່ນຂຶ້ນກັບ
ການຂະຫຍາຍພາລາມິເຕີ, ການທົດແທນຄໍາສັ່ງ, ແລະການຂະຫຍາຍຕົວເລກຄະນິດສາດ, ລັກສະນະ
ລໍາດັບ \ ຖືກລະເລີຍ, ແລະ \ ຕ້ອງໃຊ້ເພື່ອອ້າງເຖິງຕົວອັກສອນ \, $, ແລະ `.
ຖ້າຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງແມ່ນ <<-, ຫຼັງຈາກນັ້ນ, ຕົວອັກສອນແຖບນໍາຫນ້າທັງຫມົດຖືກຖອດອອກຈາກ
ເສັ້ນປ້ອນຂໍ້ມູນແລະເສັ້ນທີ່ປະກອບດ້ວຍ ຕົວຂັ້ນ. ອັນນີ້ອະນຸຍາດໃຫ້ມີເອກະສານພາຍໃນ shell
script ທີ່ຈະຫຍໍ້ຫນ້າໃນແບບທໍາມະຊາດ.
ທີ່ນີ້ Strings
ຕົວແປຂອງເອກະສານຢູ່ທີ່ນີ້, ຮູບແບບແມ່ນ:
<<ຄໍາ
ໄດ້ ຄໍາ ຜ່ານການຂະຫຍາຍວົງເລັບ, ການຂະຫຍາຍ tilde, ຕົວກໍານົດການແລະການຂະຫຍາຍຕົວປ່ຽນແປງ,
ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍຕົວເລກຄະນິດສາດ, ແລະການລົບຄໍາແນະນໍາ. ການຂະຫຍາຍເສັ້ນທາງແລະ
ການແຍກຄໍາສັບບໍ່ໄດ້ຖືກປະຕິບັດ. ຜົນໄດ້ຮັບແມ່ນສະຫນອງໃຫ້ເປັນສາຍດຽວກັບ
ຄໍາສັ່ງກ່ຽວກັບການປ້ອນຂໍ້ມູນມາດຕະຖານຂອງມັນ.
ເຮັດຊໍ້າ ເອກະສານ ລາຍລະອຽດ
ຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງ
[n]<&ຄໍາ
ຖືກໃຊ້ເພື່ອຊໍ້າກັນຕົວອະທິບາຍໄຟລ໌ປ້ອນຂໍ້ມູນ. ຖ້າ ຄໍາ ຂະຫຍາຍເປັນຕົວເລກນຶ່ງ ຫຼືຫຼາຍໂຕ, the
file descriptor denoted ໂດຍ n ຖືກສ້າງຂື້ນເພື່ອເປັນສຳເນົາຂອງຕົວອະທິບາຍໄຟລ໌ນັ້ນ. ຖ້າຕົວເລກ
in ຄໍາ ບໍ່ລະບຸຕົວອະທິບາຍໄຟລ໌ເປີດສໍາລັບການປ້ອນຂໍ້ມູນ, ຄວາມຜິດພາດການປ່ຽນເສັ້ນທາງເກີດຂຶ້ນ. ຖ້າ
ຄໍາ ປະເມີນເຖິງ -, ຕົວອະທິບາຍໄຟລ໌ n ປິດ. ຖ້າ n ບໍ່ໄດ້ລະບຸ, ມາດຕະຖານ
ການປ້ອນຂໍ້ມູນ (ຕົວອະທິບາຍໄຟລ໌ 0) ຖືກໃຊ້.
ຜູ້ປະຕິບັດການ
[n]>&ຄໍາ
ຖືກໃຊ້ຄ້າຍຄືກັນກັບຕົວອະທິບາຍໄຟລ໌ຜົນຜະລິດຊໍ້າກັນ. ຖ້າ n ບໍ່ໄດ້ລະບຸ, ໄດ້
ຜົນຜະລິດມາດຕະຖານ (ໄຟລ໌ descriptor 1) ຖືກນໍາໃຊ້. ຖ້າຕົວເລກໃນ ຄໍາ ບໍ່ລະບຸໄຟລ໌
descriptor ເປີດສໍາລັບຜົນໄດ້ຮັບ, ຄວາມຜິດພາດການປ່ຽນເສັ້ນທາງເກີດຂຶ້ນ. ຖ້າ ຄໍາ ປະເມີນເຖິງ -, ແຟ້ມ
ຕົວອະທິບາຍ n ປິດ. ເປັນກໍລະນີພິເສດ, ຖ້າ n ຖືກລະເວັ້ນ, ແລະ ຄໍາ ບໍ່ຂະຫຍາຍໄປ
ຫນຶ່ງ ຫຼື ຫຼາຍ ຕົວ ເລກ ຫຼື -, ຜົນຜະລິດມາດຕະຖານແລະຄວາມຜິດພາດມາດຕະຖານຖືກໂອນເປັນ
ອະທິບາຍກ່ອນຫນ້ານີ້.
ການເຄື່ອນຍ້າຍ ເອກະສານ ລາຍລະອຽດ
ຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງ
[n]<&ຫລັກ-
ຍ້າຍຕົວອະທິບາຍໄຟລ໌ ຫລັກ ເພື່ອຍື່ນຄໍາອະທິບາຍ n, ຫຼືການປ້ອນຂໍ້ມູນມາດຕະຖານ (ໄຟລ໌
descriptor 0) ຖ້າ n ບໍ່ໄດ້ລະບຸ. ຫລັກ ປິດຫຼັງຈາກຖືກຊໍ້າຊ້ອນກັບ n.
ເຊັ່ນດຽວກັນ, ຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງ
[n]>&ຫລັກ-
ຍ້າຍຕົວອະທິບາຍໄຟລ໌ ຫລັກ ເພື່ອຍື່ນຄໍາອະທິບາຍ n, ຫຼືຜົນຜະລິດມາດຕະຖານ (ໄຟລ໌
descriptor 1) ຖ້າ n ບໍ່ໄດ້ລະບຸ.
ເປີດ ເອກະສານ ລາຍລະອຽດ ສໍາລັບການ ອ່ານ ແລະ ລາຍລັກອັກສອນ
ຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງ
[n]<>ຄໍາ
ເຮັດໃຫ້ໄຟລ໌ທີ່ມີຊື່ແມ່ນການຂະຫຍາຍຕົວຂອງ ຄໍາ ທີ່ຈະໄດ້ຮັບການເປີດສໍາລັບການອ່ານແລະ
ຂຽນໃນຕົວອະທິບາຍໄຟລ໌ n, ຫຼືຢູ່ໃນຕົວອະທິບາຍໄຟລ໌ 0 ຖ້າ n ບໍ່ໄດ້ລະບຸ. ຖ້າໄຟລ໌
ບໍ່ມີ, ມັນຖືກສ້າງຂຶ້ນ.
ນາມແຝງ
ນາມແຝງ ອະນຸຍາດໃຫ້ສະຕຣິງທີ່ຈະຖືກທົດແທນສໍາລັບຄໍາສັບໃດຫນຶ່ງໃນເວລາທີ່ມັນຖືກນໍາໃຊ້ເປັນຄໍາທໍາອິດຂອງ a
ຄໍາສັ່ງງ່າຍດາຍ. Shell ຮັກສາບັນຊີລາຍຊື່ຂອງນາມແຝງທີ່ອາດຈະຖືກຕັ້ງແລະບໍ່ຕັ້ງດ້ວຍ
alias ແລະ ນາມແຝງ ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້). ຄໍາທໍາອິດຂອງ
ແຕ່ລະຄໍາສັ່ງທີ່ງ່າຍດາຍ, ຖ້າ unquoted, ຖືກກວດສອບເພື່ອເບິ່ງວ່າມັນມີນາມແຝງ. ຖ້າເປັນດັ່ງນັ້ນ, ຄໍານັ້ນ
ຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມຂອງນາມແຝງ. ລັກສະນະ /, $, `, ແລະ = ແລະເປືອກຫອຍໃດນຶ່ງ
metacharacters ຫຼືຕົວອັກສອນອ້າງອີງທີ່ລະບຸໄວ້ຂ້າງເທິງອາດຈະບໍ່ປາກົດຢູ່ໃນຊື່ນາມແຝງ. ໄດ້
ຂໍ້ຄວາມແທນທີ່ອາດມີການປ້ອນຂໍ້ມູນ shell ທີ່ຖືກຕ້ອງ, ລວມທັງຕົວແປຂອງ shell. ໄດ້
ຄໍາທໍາອິດຂອງຂໍ້ຄວາມທົດແທນແມ່ນການທົດສອບສໍາລັບນາມແຝງ, ແຕ່ຄໍາທີ່ຄ້າຍຄືກັບ
ນາມແຝງທີ່ຖືກຂະຫຍາຍບໍ່ໄດ້ຖືກຂະຫຍາຍເປັນເທື່ອທີສອງ. ນີ້ຫມາຍຄວາມວ່າຫນຶ່ງອາດຈະ alias ls
to ls -F, ສໍາລັບການຍົກຕົວຢ່າງ, ແລະ bash ບໍ່ໄດ້ພະຍາຍາມຂະຫຍາຍຂໍ້ຄວາມແທນທີ່ຊ້ຳໆ.
ຖ້າຕົວອັກສອນສຸດທ້າຍຂອງຄ່ານາມແຝງແມ່ນ a ເປົ່າ, ຫຼັງຈາກນັ້ນຄໍາຄໍາສັ່ງຕໍ່ໄປດັ່ງຕໍ່ໄປນີ້
alias ຍັງຖືກກວດສອບສໍາລັບການຂະຫຍາຍຕົວ alias.
ນາມແຝງຖືກສ້າງຂື້ນແລະລະບຸໄວ້ດ້ວຍ alias ຄໍາສັ່ງ, ແລະການໂຍກຍ້າຍອອກດ້ວຍ ນາມແຝງ
ຄໍາສັ່ງ.
ບໍ່ມີກົນໄກສໍາລັບການນໍາໃຊ້ການໂຕ້ຖຽງໃນຂໍ້ຄວາມທົດແທນ. ຖ້າມີການໂຕ້ຖຽງ
ຈໍາເປັນ, ຫນ້າທີ່ແກະຄວນຈະຖືກນໍາໃຊ້ (ເບິ່ງ FUNCTIONS ດ້ານລຸ່ມ).
ນາມແຝງບໍ່ໄດ້ຖືກຂະຫຍາຍເມື່ອແກະບໍ່ໂຕ້ຕອບ, ເວັ້ນເສຍແຕ່ວ່າ expand_aliases
ຕົວເລືອກ shell ຖືກກໍານົດໂດຍໃຊ້ ຮ້ານຄ້າ (ເບິ່ງລາຍລະອຽດຂອງ ຮ້ານຄ້າ ພາຍໃຕ້ການ SHELL ອາຄານ ສາມາດ
ດ້ານລຸ່ມ).
ກົດລະບຽບກ່ຽວກັບການໃຫ້ຄໍານິຍາມແລະການນໍາໃຊ້ນາມແຝງແມ່ນຂ້ອນຂ້າງສັບສົນ. Bash
ສະເຫມີອ່ານຢ່າງຫນ້ອຍຫນຶ່ງແຖວການປ້ອນຂໍ້ມູນຄົບຖ້ວນກ່ອນທີ່ຈະປະຕິບັດຄໍາສັ່ງໃດໆໃນ
ເສັ້ນນັ້ນ. ນາມແຝງຖືກຂະຫຍາຍເມື່ອຄໍາສັ່ງຖືກອ່ານ, ບໍ່ແມ່ນເມື່ອມັນຖືກປະຕິບັດ.
ດັ່ງນັ້ນ, ຄໍານິຍາມນາມແຝງທີ່ປາກົດຢູ່ໃນເສັ້ນດຽວກັນກັບຄໍາສັ່ງອື່ນບໍ່ໄດ້ໃຊ້
ຜົນກະທົບຈົນກ່ວາແຖວຕໍ່ໄປຂອງການປ້ອນຂໍ້ມູນຖືກອ່ານ. ຄໍາສັ່ງປະຕິບັດຕາມຄໍານິຍາມນາມແຝງ
ໃນແຖວນັ້ນບໍ່ໄດ້ຮັບຜົນກະທົບຈາກນາມແຝງໃໝ່. ພຶດຕິກໍານີ້ຍັງເປັນບັນຫາໃນເວລາທີ່
ຟັງຊັນຖືກປະຕິບັດ. ນາມແຝງຖືກຂະຫຍາຍເມື່ອຄຳນິຍາມຟັງຊັນຖືກອ່ານ, ບໍ່ແມ່ນເມື່ອໃດ
ຟັງຊັນຖືກປະຕິບັດ, ເພາະວ່າຄໍານິຍາມຟັງຊັນແມ່ນຕົວຂອງມັນເອງຄໍາສັ່ງປະສົມ. ເປັນ
ຜົນສະທ້ອນ, ນາມແຝງທີ່ກໍານົດຢູ່ໃນຟັງຊັນບໍ່ສາມາດໃຊ້ໄດ້ຈົນກ່ວາຫຼັງຈາກຟັງຊັນນັ້ນ
ຖືກປະຕິບັດ. ເພື່ອຄວາມປອດໄພ, ສະເຫມີໃສ່ຄໍານິຍາມນາມແຝງຢູ່ໃນເສັ້ນແຍກຕ່າງຫາກ, ແລະຢ່າໃຊ້
alias ໃນຄໍາສັ່ງປະສົມ.
ສໍາລັບເກືອບທຸກຈຸດປະສົງ, ນາມແຝງຖືກແທນທີ່ດ້ວຍຫນ້າທີ່ແກະ.
FUNCTIONS
ການທໍາງານຂອງແກະ, ກໍານົດຕາມທີ່ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ SHELL ໄວຍະກອນ, ເກັບຮັກສາຊຸດຂອງ
ຄໍາສັ່ງສໍາລັບການປະຕິບັດຕໍ່ມາ. ໃນເວລາທີ່ຊື່ຂອງຫນ້າທີ່ shell ໄດ້ຖືກນໍາໃຊ້ເປັນງ່າຍດາຍ
ຊື່ຄໍາສັ່ງ, ບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງທີ່ກ່ຽວຂ້ອງກັບຊື່ຟັງຊັນນັ້ນຖືກປະຕິບັດ.
ຟັງຊັນຖືກປະຕິບັດໃນສະພາບການຂອງແກະປະຈຸບັນ; ບໍ່ມີຂະບວນການໃຫມ່ຖືກສ້າງຂື້ນເພື່ອ
ຕີຄວາມຫມາຍພວກມັນ (ກົງກັນຂ້າມກັບການປະຕິບັດຂອງ Shell script). ເມື່ອຟັງຊັນເປັນ
ປະຕິບັດ, ການໂຕ້ຖຽງກັບຟັງຊັນກາຍເປັນຕົວກໍານົດການຕໍາແຫນ່ງໃນລະຫວ່າງການຂອງມັນ
ການປະຕິບັດ. ຕົວກໍານົດການພິເສດ # ໄດ້ຖືກປັບປຸງເພື່ອສະທ້ອນການປ່ຽນແປງ. ພາລາມິເຕີພິເສດ 0
ບໍ່ປ່ຽນແປງ. ອົງປະກອບທໍາອິດຂອງການ FUNCNAME ຕົວແປແມ່ນຕັ້ງເປັນຊື່ຂອງ
function ໃນຂະນະທີ່ຟັງຊັນກໍາລັງປະຕິບັດ.
ທຸກໆດ້ານອື່ນໆຂອງສະພາບແວດລ້ອມການປະຕິບັດແກະແມ່ນຄືກັນລະຫວ່າງຫນ້າທີ່ແລະ
ຜູ້ໂທຂອງຕົນມີຂໍ້ຍົກເວັ້ນເຫຼົ່ານີ້: ໄດ້ ດີບັກ ແລະ ກັບຄືນ ໃສ່ກັບດັກ (ເບິ່ງລາຍລະອຽດຂອງ
ຈັ່ນຈັບ ການກໍ່ສ້າງພາຍໃຕ້ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້) ບໍ່ໄດ້ຖືກສືບທອດເວັ້ນເສຍແຕ່ວ່າຫນ້າທີ່ມີ
ໄດ້ຮັບການ trace ຄຸນລັກສະນະ (ເບິ່ງລາຍລະອຽດຂອງ ປະກາດ builtin ຂ້າງລຸ່ມນີ້) ຫຼື
-o ຫນ້າທີ່ ຕົວເລືອກ shell ໄດ້ຖືກເປີດໃຊ້ດ້ວຍ ທີ່ກໍານົດໄວ້ builtin (ໃນກໍລະນີທັງຫມົດ
ຫນ້າທີ່ສືບທອດ ດີບັກ ແລະ ກັບຄືນ traps), ແລະ ERR ຈັ່ນຈັບບໍ່ໄດ້ຖືກສືບທອດເວັ້ນເສຍແຕ່
ໄດ້ -o ຜິດພາດ ຕົວເລືອກ shell ໄດ້ຖືກເປີດໃຊ້ແລ້ວ.
ຕົວແປທ້ອງຖິ່ນຕໍ່ກັບຟັງຊັນອາດຈະຖືກປະກາດດ້ວຍ ທ້ອງຖິ່ນ ຄໍາສັ່ງ builtin.
ໂດຍປົກກະຕິ, ຕົວແປແລະຄຸນຄ່າຂອງພວກມັນຖືກແບ່ງປັນລະຫວ່າງຟັງຊັນແລະຕົວເອີ້ນຂອງມັນ.
ໄດ້ ມ່ວນສຸດ ຕົວແປ, ຖ້າຕັ້ງເປັນຄ່າຕົວເລກທີ່ໃຫຍ່ກວ່າ 0, ຈະກຳນົດຄ່າສູງສຸດ
ລະດັບການທໍາງານຂອງຮັງ. ການເອີ້ນຟັງຊັນທີ່ເກີນຂີດຈຳກັດເຮັດໃຫ້ທັງໝົດ
ຄໍາສັ່ງໃຫ້ເອົາລູກອອກ.
ຖ້າຄໍາສັ່ງ builtin ການກັບຄືນມາ ຖືກປະຕິບັດໃນຫນ້າທີ່, ຫນ້າທີ່ສໍາເລັດແລະ
ການປະຕິບັດສືບຕໍ່ກັບຄໍາສັ່ງຕໍ່ໄປຫຼັງຈາກການເອີ້ນຟັງຊັນ. ຄໍາສັ່ງໃດໆທີ່ກ່ຽວຂ້ອງ
ກັບ ກັບຄືນ ຈັ່ນຈັບໄດ້ຖືກປະຕິບັດກ່ອນທີ່ຈະດໍາເນີນການຕໍ່. ໃນເວລາທີ່ຫນ້າທີ່ສໍາເລັດ, ໄດ້
ຄ່າຂອງຕົວກໍານົດການຕໍາແຫນ່ງແລະພາລາມິເຕີພິເສດ # ຖືກຟື້ນຟູກັບຄຸນຄ່າ
ພວກເຂົາເຈົ້າມີກ່ອນທີ່ຈະປະຕິບັດຫນ້າທີ່.
ຊື່ຫນ້າທີ່ແລະຄໍານິຍາມອາດຈະຖືກຈັດໃສ່ໃນລາຍການ -f ທາງເລືອກໃນການ ປະກາດ or ປະເພດ
ຄໍາສັ່ງ builtin. ໄດ້ -F ທາງເລືອກທີ່ຈະ ປະກາດ or ປະເພດ ຈະບອກຊື່ຟັງຊັນເທົ່ານັ້ນ
(ແລະທາງເລືອກຂອງໄຟລ໌ແຫຼ່ງແລະຕົວເລກແຖວ, ຖ້າ extdebug ຕົວເລືອກ shell ຖືກເປີດໃຊ້).
ຟັງຊັນອາດຈະຖືກສົ່ງອອກເພື່ອໃຫ້ subshells ອັດຕະໂນມັດໃຫ້ພວກເຂົາຖືກກໍານົດດ້ວຍ -f
ທາງເລືອກໃນການ ການສົ່ງອອກ ກໍ່ສ້າງ. ຄໍານິຍາມຟັງຊັນອາດຈະຖືກລຶບໂດຍໃຊ້ -f ທາງເລືອກທີ່ຈະ
ໄດ້ ກຳ ນົດ ກໍ່ສ້າງ. ໃຫ້ສັງເກດວ່າການທໍາງານຂອງແກະແລະຕົວແປທີ່ມີຊື່ດຽວກັນອາດຈະສົ່ງຜົນ
ໃນຫຼາຍລາຍການທີ່ມີຊື່ດຽວກັນຢູ່ໃນສະພາບແວດລ້ອມໄດ້ສົ່ງໄປຫາລູກຂອງແກະ.
ຄວນລະມັດລະວັງໃນກໍລະນີທີ່ອັນນີ້ອາດຈະເຮັດໃຫ້ເກີດບັນຫາ.
ຟັງຊັນອາດຈະເກີດຂຶ້ນຊ້ຳໆ. ໄດ້ ມ່ວນສຸດ ຕົວແປອາດຈະຖືກນໍາໃຊ້ເພື່ອຈໍາກັດຄວາມເລິກຂອງ
function call stack ແລະຈໍາກັດຈໍານວນຂອງການເອີ້ນໃຊ້ຟັງຊັນ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ບໍ່ມີຂອບເຂດຈໍາກັດ
ແມ່ນ imposed ໃນຈໍານວນຂອງການໂທ recursive.
AITHMETIC ການວິເຄາະ
ເປືອກອະນຸຍາດໃຫ້ການສະແດງອອກເລກຄະນິດສາດໄດ້ຮັບການປະເມີນຜົນ, ພາຍໃຕ້ສະຖານະການສະເພາະໃດຫນຶ່ງ (ເບິ່ງ
ໄດ້ ໃຫ້ ແລະ ປະກາດ ຄໍາສັ່ງ builtin ແລະ ເລກຄະນິດສາດ ການຂະຫຍາຍຕົວ). ການປະເມີນຜົນແມ່ນເຮັດໃນ
ຈຳນວນເຕັມຄວາມກວ້າງຄົງທີ່ທີ່ບໍ່ມີການກວດສອບການລົ້ນ, ເຖິງແມ່ນວ່າການຫານດ້ວຍ 0 ແມ່ນຕິດຢູ່ ແລະ
ຖືກໝາຍວ່າເປັນຂໍ້ຜິດພາດ. ຜູ້ປະກອບການແລະຄວາມສໍາຄັນ, ສະມາຄົມ, ແລະຄຸນຄ່າຂອງເຂົາເຈົ້າ
ຄືກັນກັບພາສາ C. ບັນຊີລາຍຊື່ປະຕິບັດການດັ່ງຕໍ່ໄປນີ້ແມ່ນຈັດກຸ່ມເປັນລະດັບຂອງ
ຕົວປະຕິບັດການກ່ອນຄວາມເທົ່າທຽມກັນ. ລະດັບແມ່ນໄດ້ລະບຸໄວ້ໃນລໍາດັບຂອງການຫຼຸດລົງກ່ອນຫນ້າ.
id++ id--
ການປ່ຽນແປງຫຼັງການເພີ່ມ ແລະຫຼັງການຫຼຸດໜ້ອຍລົງ
++id --id
ການປ່ຽນແປງທາງສ່ວນຫນ້າຂອງການເພີ່ມຂຶ້ນແລະກ່ອນການຫຼຸດລົງ
- + unary ລົບແລະບວກ
! ~ ການປະຕິເສດຢ່າງມີເຫດຜົນ ແລະບິດເບືອນ
** ເລກກຳລັງ
* / % ການຄູນ, ການຫານ, ສ່ວນທີ່ເຫຼືອ
+ - ບວກ, ການຫັກລົບ
<< >> ຊ້າຍ ແລະຂວາ ປ່ຽນບິດບິດ
<= >= < >
ການປຽບທຽບ
== != ຄວາມສະເໝີພາບ ແລະ ຄວາມບໍ່ສະເໝີພາບ
& bitwise ແລະ
^ bitwise exclusive OR
| bitwise OR
&& ມີເຫດຜົນ AND
|| ມີເຫດຜົນ OR
ຕົວຢ່າງ?ຕົວຢ່າງ:ຕົວຢ່າງ
ປະຕິບັດການຕາມເງື່ອນໄຂ
= *= /= %= += -= << = >> = &= ^= |=
ການມອບຫມາຍ
expr1 , expr2
comma
ຕົວແປ Shell ແມ່ນອະນຸຍາດໃຫ້ເປັນຕົວປະຕິບັດ; ການຂະຫຍາຍພາລາມິເຕີແມ່ນປະຕິບັດກ່ອນ
ການສະແດງອອກຖືກປະເມີນ. ພາຍໃນການສະແດງອອກ, ຕົວແປຂອງແກະອາດຈະຖືກອ້າງອີງໂດຍ
ຊື່ໂດຍບໍ່ມີການໃຊ້ syntax ຂະຫຍາຍພາລາມິເຕີ. ຕົວແປ shell ທີ່ເປັນ null ຫຼືບໍ່ໄດ້ຕັ້ງ
ປະເມີນເປັນ 0 ເມື່ອອ້າງອີງດ້ວຍຊື່ໂດຍບໍ່ໃຊ້ syntax ຂະຫຍາຍພາລາມິເຕີ. ໄດ້
ຄ່າຂອງຕົວແປຖືກປະເມີນເປັນການສະແດງອອກທາງເລກຄະນິດສາດເມື່ອມັນຖືກອ້າງອີງ, ຫຼື
ເມື່ອຕົວແປທີ່ໄດ້ຖືກມອບໃຫ້ integer ຄຸນລັກສະນະການນໍາໃຊ້ ປະກາດ -i ຖືກມອບໝາຍໃຫ້ ກ
ຄ່າ. ຄ່າ null ປະເມີນເປັນ 0. ຕົວແປຂອງ shell ບໍ່ຈໍາເປັນຕ້ອງມີຂອງມັນ integer ຄຸນລັກສະນະ
ເປີດໃຊ້ເພື່ອໃຊ້ໃນການສະແດງອອກ.
ຕົວເລກຄົງທີ່ທີ່ມີ 0 ນໍາໜ້າຖືກຕີຄວາມໝາຍເປັນເລກຖານແປດ. 0x ຫຼື 0X ຫຼັກໝາຍເຖິງ
ເລກຖານສິບຫົກ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕົວເລກຈະເປັນຮູບແບບ [ພື້ນຖານ#]n, ບ່ອນທີ່ທາງເລືອກ ຖານ ເປັນ
ເລກທົດສະນິຍົມລະຫວ່າງ 2 ຫາ 64 ແທນຖານເລກຄະນິດ, ແລະ n ເປັນຕົວເລກໃນ
ພື້ນຖານນັ້ນ. ຖ້າ ພື້ນຖານ# ຖືກລະເວັ້ນ, ຫຼັງຈາກນັ້ນພື້ນຖານ 10 ຖືກໃຊ້. ເມື່ອລະບຸ n, ຕົວເລກ
ຫຼາຍກວ່າ 9 ແມ່ນສະແດງດ້ວຍຕົວພິມນ້ອຍ, ຕົວພິມໃຫຍ່, @, ແລະ _,
ໃນຄໍາສັ່ງນັ້ນ. ຖ້າ ຖານ ໜ້ອຍກວ່າ ຫຼືເທົ່າກັບ 36, ໂຕພິມນ້ອຍ ແລະຕົວພິມໃຫຍ່ອາດ
ໃຊ້ແທນກັນເພື່ອສະແດງຕົວເລກລະຫວ່າງ 10 ຫາ 35.
ຜູ້ປະຕິບັດງານໄດ້ຖືກປະເມີນຕາມລໍາດັບກ່ອນຫນ້າ. ການສະແດງອອກຍ່ອຍຢູ່ໃນວົງເລັບແມ່ນ
ປະເມີນກ່ອນແລະອາດຈະ override ກົດລະບຽບກ່ອນຫນ້າຂ້າງເທິງ.
ສະພາບແວດລ້ອມ ການສະແດງອອກ
ການສະແດງອອກຕາມເງື່ອນໄຂແມ່ນໃຊ້ໂດຍ [[ ຄໍາສັ່ງປະສົມແລະ ການທົດສອບ ແລະ [ ປຸກສ້າງ
ຄໍາສັ່ງເພື່ອທົດສອບຄຸນລັກສະນະຂອງໄຟລ໌ ແລະປະຕິບັດການປຽບທຽບສະຕຣິງ ແລະເລກເລກ.
ການສະແດງອອກແມ່ນມາຈາກ unary ຫຼື binary primaries ຕໍ່ໄປນີ້. ຖ້າມີ ເອກະສານ ການໂຕ້ຖຽງ
ກັບຫນຶ່ງໃນຂັ້ນຕົ້ນແມ່ນຮູບແບບ /dev/fd/n, ຫຼັງຈາກນັ້ນຕົວອະທິບາຍໄຟລ໌ n ຖືກກວດ. ຖ້າ
ໄດ້ ເອກະສານ ການໂຕ້ຖຽງກັບຫນຶ່ງໃນຂັ້ນຕົ້ນແມ່ນຫນຶ່ງໃນ /dev/stdin, /dev/stdout, ຫຼື
/dev/stderr, ຕົວອະທິບາຍໄຟລ໌ 0, 1, ຫຼື 2, ຕາມລໍາດັບ, ຖືກກວດສອບ.
ເວັ້ນເສຍແຕ່ໄດ້ລະບຸໄວ້ເປັນຢ່າງອື່ນ, ຕົ້ນຕໍທີ່ດໍາເນີນການກ່ຽວກັບໄຟລ໌ປະຕິບັດຕາມການເຊື່ອມຕໍ່ສັນຍາລັກແລະ
ດໍາເນີນການກ່ຽວກັບເປົ້າຫມາຍຂອງການເຊື່ອມຕໍ່, ແທນທີ່ຈະເຊື່ອມຕໍ່ຕົວມັນເອງ.
ເມື່ອໃຊ້ກັບ [[, ການ < ແລະ > ຜູ້ປະກອບການຈັດຮຽງ lexicographically ໂດຍໃຊ້ທ້ອງຖິ່ນໃນປະຈຸບັນ.
ໄດ້ ການທົດສອບ ການຈັດຮຽງຄໍາສັ່ງໂດຍໃຊ້ຄໍາສັ່ງ ASCII.
-a ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ລາຄາ:.
-b ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນໄຟລ໌ພິເສດບລັອກ.
-c ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນໄຟລ໌ພິເສດລັກສະນະ.
-d ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນໄດເລກະທໍລີ.
-e ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ລາຄາ:.
-f ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນໄຟລ໌ປົກກະຕິ.
-g ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ ແລະເປັນ set-group-id.
-h ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນການເຊື່ອມຕໍ່ສັນຍາລັກ.
-k ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ ແລະມັນຖືກຕັ້ງໄວ້.
-p ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນທໍ່ທີ່ມີຊື່ (FIFO).
-r ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະສາມາດອ່ານໄດ້.
-s ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ ແລະ ມີຂະໜາດໃຫຍ່ກວ່າສູນ.
-t fd ແມ່ນແທ້ຖ້າຕົວອະທິບາຍໄຟລ໌ fd ແມ່ນເປີດແລະຫມາຍເຖິງ terminal.
-u ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະ bit set-user-id ຂອງມັນຖືກຕັ້ງ.
-w ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະສາມາດຂຽນໄດ້.
-x ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ ແລະສາມາດປະຕິບັດໄດ້.
-G ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ ແລະເປັນເຈົ້າຂອງໂດຍ ID ກຸ່ມທີ່ມີປະສິດທິພາບ.
-L ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນການເຊື່ອມຕໍ່ສັນຍາລັກ.
-N ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະໄດ້ຖືກດັດແກ້ນັບຕັ້ງແຕ່ມັນໄດ້ຖືກອ່ານຄັ້ງສຸດທ້າຍ.
-O ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນເຈົ້າຂອງໂດຍ id ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບ.
-S ເອກະສານ
ຄວາມຈິງຖ້າ ເອກະສານ ມີຢູ່ແລະເປັນເຕົ້າຮັບ.
ແຟ້ມ 1 -ຖ້າ ແຟ້ມ 2
ຄວາມຈິງຖ້າ ແຟ້ມ 1 ແລະ ແຟ້ມ 2 ອ້າງອີງເຖິງອຸປະກອນດຽວກັນ ແລະຕົວເລກ inode.
ແຟ້ມ 1 -nt ແຟ້ມ 2
ຄວາມຈິງຖ້າ ແຟ້ມ 1 ໃໝ່ກວ່າ (ຕາມວັນທີດັດແກ້) ກວ່າ ແຟ້ມ 2, ຫຼືຖ້າ ແຟ້ມ 1
ມີຢູ່ແລະ ແຟ້ມ 2 ບໍ່.
ແຟ້ມ 1 -ot ແຟ້ມ 2
ຄວາມຈິງຖ້າ ແຟ້ມ 1 ມີອາຍຸຫຼາຍກວ່າ ແຟ້ມ 2, ຫຼືຖ້າ ແຟ້ມ 2 ມີຢູ່ແລະ ແຟ້ມ 1 ບໍ່.
-o ເລືອກຊື່
ຄວາມຈິງຖ້າຫາກວ່າທາງເລືອກ shell ເລືອກຊື່ ຖືກເປີດໃຊ້. ເບິ່ງບັນຊີລາຍຊື່ຂອງທາງເລືອກພາຍໃຕ້ການ
ລາຍລະອຽດຂອງ -o ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ builtin ຂ້າງລຸ່ມນີ້.
-v varname
ຄວາມຈິງຖ້າຕົວແປຂອງ shell varname ຖືກກໍານົດ (ຖືກມອບຫມາຍຄ່າ).
-R varname
ຄວາມຈິງຖ້າຕົວແປຂອງ shell varname ຖືກກໍານົດແລະເປັນການອ້າງອິງຊື່.
-z string
ຄວາມຈິງຖ້າຫາກວ່າຄວາມຍາວຂອງ string ແມ່ນສູນ.
string
-n string
ຄວາມຈິງຖ້າຫາກວ່າຄວາມຍາວຂອງ string ບໍ່ແມ່ນສູນ.
string1 == string2
string1 = string2
ແທ້ຈິງຖ້າສະຕຣິງເທົ່າທຽມກັນ. = ຄວນຖືກນໍາໃຊ້ກັບ ການທົດສອບ ຄໍາສັ່ງສໍາລັບ POSIX
ຄວາມສອດຄ່ອງ. ເມື່ອໃຊ້ກັບ [[ ຄໍາສັ່ງ, ນີ້ປະຕິບັດການຈັບຄູ່ຮູບແບບເປັນ
ອະທິບາຍຂ້າງເທິງ (ສົມທົບ ຄໍາສັ່ງ).
string1 != string2
ຄວາມຈິງຖ້າສາຍບໍ່ເທົ່າກັນ.
string1 < string2
ຄວາມຈິງຖ້າ string1 ຄັດກ່ອນ string2 lexicographically.
string1 > string2
ຄວາມຈິງຖ້າ string1 ຄັດຫຼັງຈາກ string2 lexicographically.
arg1 OP arg2
OP ແມ່ນຫນຶ່ງໃນ -eq, - ບໍ່, -lt, -ການ, -gt, ຫຼື -ຈີ. ໂຕປະຕິບັດການຖານສອງເລກຄະນິດເຫຼົ່ານີ້
ກັບຄືນຄວາມຈິງຖ້າຫາກວ່າ arg1 ເທົ່າກັບ, ບໍ່ເທົ່າກັບ, ໜ້ອຍກວ່າ, ໜ້ອຍກວ່າ ຫຼືເທົ່າກັບ,
ໃຫຍ່ກວ່າ, ຫຼືໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບ arg2, ຕາມລໍາດັບ. arg1 ແລະ arg2 ອາດຈະເປັນ
ຈຳນວນເຕັມບວກ ຫຼືລົບ.
SIMPLE ຄໍາສັ່ງ EXPANSION
ເມື່ອຄໍາສັ່ງງ່າຍໆຖືກປະຕິບັດ, shell ດໍາເນີນການຂະຫຍາຍດັ່ງຕໍ່ໄປນີ້,
ການມອບໝາຍ, ແລະການປ່ຽນເສັ້ນທາງ, ຈາກຊ້າຍຫາຂວາ.
1. ຄໍາທີ່ parser ໄດ້ຫມາຍເປັນການມອບຫມາຍຕົວແປ (ຄໍາທີ່ນໍາຫນ້າ
ຊື່ຄໍາສັ່ງ) ແລະການປ່ຽນເສັ້ນທາງຖືກບັນທຶກໄວ້ສໍາລັບການປຸງແຕ່ງຕໍ່ມາ.
2. ຄໍາສັບທີ່ບໍ່ແມ່ນການມອບຫມາຍການປ່ຽນແປງຫຼືການປ່ຽນເສັ້ນທາງແມ່ນຂະຫຍາຍອອກ. ຖ້າມີ
ຄໍາສັບຕ່າງໆຍັງຄົງຢູ່ຫຼັງຈາກການຂະຫຍາຍ, ຄໍາທໍາອິດຖືກນໍາມາເປັນຊື່ຂອງຄໍາສັ່ງ
ແລະຄໍາທີ່ຍັງເຫຼືອແມ່ນການໂຕ້ຖຽງ.
3. ການປ່ຽນເສັ້ນທາງແມ່ນປະຕິບັດຕາມທີ່ໄດ້ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ ການປ່ຽນເສັ້ນທາງ.
4. ຂໍ້ຄວາມຫຼັງຈາກ = ໃນແຕ່ລະການມອບຫມາຍຕົວແປໄດ້ຮັບການຂະຫຍາຍ tilde,
ການຂະຫຍາຍຕົວກໍານົດການ, ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍຕົວເລກຄະນິດສາດ, ແລະການເອົາຄໍາເວົ້າອອກ
ກ່ອນທີ່ຈະຖືກມອບຫມາຍໃຫ້ກັບຕົວແປ.
ຖ້າບໍ່ມີຊື່ຄໍາສັ່ງຜົນໄດ້ຮັບ, ການມອບຫມາຍຕົວແປມີຜົນກະທົບສະພາບແວດລ້ອມ shell ໃນປັດຈຸບັນ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ຕົວແປຈະຖືກເພີ່ມເຂົ້າໃນສະພາບແວດລ້ອມຂອງຄໍາສັ່ງທີ່ຖືກປະຕິບັດແລະບໍ່ເຮັດ
ຜົນກະທົບຕໍ່ສະພາບແວດລ້ອມຂອງແກະໃນປະຈຸບັນ. ຖ້າວຽກໃດນຶ່ງພະຍາຍາມມອບໝາຍ ກ
ຄ່າໃຫ້ກັບຕົວແປທີ່ອ່ານໄດ້ຢ່າງດຽວ, ມີຂໍ້ຜິດພາດເກີດຂຶ້ນ, ແລະຄຳສັ່ງອອກດ້ວຍຄ່າທີ່ບໍ່ແມ່ນສູນ.
ສະຖານະພາບ.
ຖ້າບໍ່ມີຜົນໄດ້ຮັບຊື່ຄໍາສັ່ງ, ການປ່ຽນເສັ້ນທາງແມ່ນປະຕິບັດ, ແຕ່ບໍ່ມີຜົນຕໍ່ປະຈຸບັນ
ສະພາບແວດລ້ອມຂອງຫອຍ. ຄວາມຜິດພາດການປ່ຽນເສັ້ນທາງເຮັດໃຫ້ຄໍາສັ່ງອອກໄປດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ.
ຖ້າມີຊື່ຄໍາສັ່ງປະໄວ້ຫຼັງຈາກການຂະຫຍາຍ, ການປະຕິບັດດໍາເນີນການດັ່ງທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້.
ຖ້າບໍ່ດັ່ງນັ້ນ, ຄໍາສັ່ງອອກ. ຖ້າການຂະຫຍາຍອັນໃດອັນໜຶ່ງມີການທົດແທນຄຳສັ່ງ,
ສະຖານະການອອກຂອງຄໍາສັ່ງແມ່ນສະຖານະການອອກຂອງການທົດແທນຄໍາສັ່ງສຸດທ້າຍ
ປະຕິບັດ. ຖ້າບໍ່ມີການປ່ຽນຄໍາສັ່ງ, ຄໍາສັ່ງຈະອອກດ້ວຍສະຖານະຂອງ
ສູນ.
ຄໍາສັ່ງ ການປະຕິບັດ
ຫຼັງຈາກຄໍາສັ່ງໄດ້ຖືກແບ່ງອອກເປັນຄໍາສັບ, ຖ້າມັນສົ່ງຜົນໃຫ້ຄໍາສັ່ງງ່າຍດາຍແລະເປັນ
ບັນຊີລາຍຊື່ທາງເລືອກຂອງການໂຕ້ຖຽງ, ການປະຕິບັດຕໍ່ໄປນີ້ແມ່ນປະຕິບັດ.
ຖ້າຊື່ຄໍາສັ່ງບໍ່ມີ slashes, shell ພະຍາຍາມຊອກຫາມັນ. ຖ້າມີ
ຟັງຊັນ shell ໂດຍຊື່ນັ້ນ, ຟັງຊັນນັ້ນຖືກເອີ້ນຕາມທີ່ອະທິບາຍຂ້າງເທິງໃນ FUNCTIONS.
ຖ້າຊື່ບໍ່ກົງກັບຫນ້າທີ່, ແກະຊອກຫາມັນຢູ່ໃນບັນຊີລາຍຊື່ຂອງແກະ
ເຄື່ອງກໍ່ສ້າງ. ຖ້າພົບການຈັບຄູ່, buildin ນັ້ນຈະຖືກເອີ້ນ.
ຖ້າຊື່ບໍ່ແມ່ນຟັງຊັນ shell ຫຼື buildin, ແລະບໍ່ມີ slashes, bash
ຄົ້ນຫາແຕ່ລະອົງປະກອບຂອງ PATH ສໍາລັບໄດເລກະທໍລີທີ່ມີໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ໂດຍນັ້ນ
ຊື່ Bash ໃຊ້ຕາຕະລາງ hash ເພື່ອຈື່ຊື່ເສັ້ນທາງເຕັມຂອງໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້ (ເບິ່ງ hash
ພາຍໃຕ້ການ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້). ການຄົ້ນຫາອັນເຕັມທີ່ຂອງໄດເລກະທໍລີໃນ PATH is
ປະຕິບັດພຽງແຕ່ຖ້າຄໍາສັ່ງບໍ່ພົບຢູ່ໃນຕາຕະລາງ hash. ຖ້າການຄົ້ນຫາແມ່ນ
ບໍ່ສຳເລັດ, shell ຄົ້ນຫາຟັງຊັນ shell ທີ່ກຳນົດຊື່
command_not_found_handle. ຖ້າຟັງຊັນນັ້ນມີຢູ່, ມັນຈະຖືກເອີ້ນດ້ວຍຕົ້ນສະບັບ
ຄໍາສັ່ງແລະການໂຕ້ຖຽງຂອງຄໍາສັ່ງຕົ້ນສະບັບເປັນ arguments ຂອງມັນ, ແລະການອອກຂອງຟັງຊັນ
ສະຖານະພາບກາຍເປັນສະຖານະພາບທາງອອກຂອງແກະ. ຖ້າຟັງຊັນນັ້ນບໍ່ໄດ້ຖືກກໍານົດ, shell
ພິມຂໍ້ຄວາມຜິດພາດແລະກັບຄືນສະຖານະການອອກຂອງ 127.
ຖ້າການຄົ້ນຫາປະສົບຜົນສໍາເລັດ, ຫຼືຖ້າຊື່ຄໍາສັ່ງປະກອບດ້ວຍຫນຶ່ງຫຼືຫຼາຍກວ່າ slashes, the
shell ປະຕິບັດໂຄງການທີ່ມີຊື່ໃນສະພາບແວດລ້ອມການປະຕິບັດແຍກຕ່າງຫາກ. Argument 0 ຖືກຕັ້ງ
ກັບຊື່ທີ່ໃຫ້, ແລະການໂຕ້ຖຽງທີ່ຍັງເຫຼືອກັບຄໍາສັ່ງແມ່ນຖືກກໍານົດເປັນ arguments
ໃຫ້, ຖ້າມີ.
ຖ້າການປະຕິບັດນີ້ລົ້ມເຫລວເພາະວ່າໄຟລ໌ບໍ່ຢູ່ໃນຮູບແບບທີ່ສາມາດປະຕິບັດໄດ້, ແລະໄຟລ໌ບໍ່ແມ່ນ
ໄດເລກະທໍລີ, ມັນແມ່ນສົມມຸດວ່າເປັນ ຫອຍ script, ໄຟລ໌ທີ່ປະກອບດ້ວຍຄໍາສັ່ງ shell. ກ
subshell ແມ່ນ spawned ເພື່ອປະຕິບັດມັນ. subshell ນີ້ reinitializes ຕົວຂອງມັນເອງ, ດັ່ງນັ້ນຜົນກະທົບ
ແມ່ນຄືກັບວ່າເປືອກຫອຍ ໃໝ່ ໄດ້ຖືກເອີ້ນໃຫ້ຈັດການກັບສະຄິບ, ໂດຍມີຂໍ້ຍົກເວັ້ນວ່າ
ສະຖານທີ່ຂອງຄໍາສັ່ງທີ່ພໍ່ແມ່ຈື່ (ເບິ່ງ hash ຂ້າງລຸ່ມນີ້ SHELL ອາຄານ
ສາມາດ) ແມ່ນເກັບຮັກສາໄວ້ໂດຍເດັກ.
ຖ້າໂຄງການແມ່ນໄຟລ໌ທີ່ເລີ່ມຕົ້ນດ້ວຍ #!, ສ່ວນທີ່ເຫຼືອຂອງແຖວທໍາອິດກໍານົດເປັນ
ນາຍພາສາສໍາລັບໂຄງການ. Shell ປະຕິບັດຕົວແປທີ່ລະບຸໄວ້ໃນເວລາປະຕິບັດງານ
ລະບົບທີ່ບໍ່ຈັດການຮູບແບບທີ່ສາມາດປະຕິບັດໄດ້ດ້ວຍຕົນເອງ. ການໂຕ້ຖຽງກັບ
ນາຍພາສາປະກອບດ້ວຍການໂຕ້ຖຽງທາງເລືອກດຽວຕາມຊື່ນາຍພາສາຢູ່ໃນ
ແຖວທຳອິດຂອງໂປແກມ, ຕິດຕາມດ້ວຍຊື່ໂປຣແກຣມ, ຕາມດ້ວຍຄຳສັ່ງ
ການໂຕ້ຖຽງ, ຖ້າມີ.
ຄໍາສັ່ງ ການປະຕິບັດ ENVIRONMENT
ແກະມີ ການປະຕິບັດ ສະພາບແວດລ້ອມ, ຊຶ່ງປະກອບດ້ວຍດັ່ງຕໍ່ໄປນີ້:
·ເປີດໄຟລ໌ທີ່ສືບທອດມາຈາກແກະຢູ່ໃນການຮຽກຮ້ອງ, ຕາມການດັດແກ້ໂດຍການປ່ຽນເສັ້ນທາງ
ສະຫນອງໃຫ້ກັບ exec ປຸກສ້າງ
·ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຕາມທີ່ກໍານົດໂດຍ cd, pushd, ຫຼື popd, ຫຼືສືບທອດໂດຍ
shell ໃນການຮຽກຮ້ອງ
· ໜ້າກາກຮູບແບບການສ້າງໄຟລ໌ຕາມທີ່ຕັ້ງໄວ້ ໜ້າ ກາກ ຫຼືສືບທອດມາຈາກພໍ່ແມ່ຂອງແກະ
·ໃສ່ກັບດັກປະຈຸບັນກໍານົດໂດຍ ຈັ່ນຈັບ
·ຕົວກໍານົດການ shell ທີ່ຖືກກໍານົດໂດຍການກໍານົດການປ່ຽນແປງຫຼືດ້ວຍ ທີ່ກໍານົດໄວ້ ຫຼືສືບທອດມາຈາກ
ພໍ່ແມ່ຂອງແກະໃນສະພາບແວດລ້ອມ
· ຟັງຊັນ shell ກຳນົດໃນລະຫວ່າງການປະຕິບັດ ຫຼືສືບທອດມາຈາກພໍ່ແມ່ຂອງ shell ໃນ
ສິ່ງແວດລອ້ມ
· ທາງເລືອກທີ່ເປີດໃຫ້ໃຊ້ງານໃນການຮຽກຮ້ອງ (ບໍ່ວ່າຈະເປັນຄ່າເລີ່ມຕົ້ນຫຼືມີການໂຕ້ຖຽງເສັ້ນຄໍາສັ່ງ) ຫຼື
by ທີ່ກໍານົດໄວ້
·ທາງເລືອກໃນການເປີດໃຊ້ງານໂດຍ ຮ້ານຄ້າ
· shell aliases ກໍານົດດ້ວຍ alias
· ID ຂະບວນການຕ່າງໆ, ລວມທັງວຽກພື້ນຖານ, ມູນຄ່າຂອງ $$, ແລະ
ມູນຄ່າຂອງ PPID
ເມື່ອຄໍາສັ່ງງ່າຍໆນອກເຫນືອຈາກການທໍາງານຂອງ buildin ຫຼື shell ຈະຖືກປະຕິບັດ, ມັນແມ່ນ
invoked ໃນສະພາບແວດລ້ອມການປະຕິບັດແຍກຕ່າງຫາກທີ່ປະກອບດ້ວຍດັ່ງຕໍ່ໄປນີ້. ເວັ້ນເສຍແຕ່
ສັງເກດເຫັນຖ້າບໍ່ດັ່ງນັ້ນ, ຄຸນຄ່າແມ່ນສືບທອດມາຈາກແກະ.
· ໄຟລ ໌ ເປີດ ຂອງ ແກະ, ບວກ ກັບ ການ ດັດ ແກ້ ໃດໆ ແລະ ເພີ່ມ ເຕີມ ກໍາ ນົດ ໂດຍ
ການປ່ຽນເສັ້ນທາງໄປຫາຄໍາສັ່ງ
·ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ
·ຫນ້າກາກຮູບແບບການສ້າງໄຟລ໌
·ຕົວແປຂອງແກະແລະຫນ້າທີ່ຫມາຍສໍາລັບການສົ່ງອອກ, ພ້ອມກັບຕົວແປທີ່ສົ່ງອອກສໍາລັບ
ຄໍາສັ່ງ, ຜ່ານໃນສະພາບແວດລ້ອມ
· ກັບດັກຈັບໄດ້ໂດຍແກະຖືກປັບເປັນຄ່າທີ່ສືບທອດມາຈາກແກະ
ພໍ່ແມ່, ແລະໃສ່ກັບດັກທີ່ຖືກລະເລີຍໂດຍແກະຖືກລະເລີຍ
ຄໍາສັ່ງທີ່ເອີ້ນໃນສະພາບແວດລ້ອມແຍກຕ່າງຫາກນີ້ບໍ່ສາມາດສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດຂອງແກະໄດ້
ສິ່ງແວດລ້ອມ.
ການທົດແທນຄໍາສັ່ງ, ຄໍາສັ່ງຈັດກຸ່ມກັບວົງເລັບ, ແລະຄໍາສັ່ງ asynchronous ແມ່ນ
invoked ໃນສະພາບແວດລ້ອມ subshell ທີ່ຊ້ໍາກັນຂອງສະພາບແວດລ້ອມ shell, ຍົກເວັ້ນ
ວ່າດັກຈັບໄດ້ໂດຍແກະຖືກປັບເປັນຄ່າທີ່ແກະສືບທອດມາຈາກມັນ
ພໍ່ແມ່ຢູ່ໃນການຮຽກຮ້ອງ. ຄໍາສັ່ງ Builtin ທີ່ຖືກເອີ້ນເປັນສ່ວນຫນຶ່ງຂອງທໍ່ສົ່ງແມ່ນຍັງ
ປະຕິບັດໃນສະພາບແວດລ້ອມ subshell. ການປ່ຽນແປງທີ່ເຮັດກັບສະພາບແວດລ້ອມ subshell ບໍ່ສາມາດ
ຜົນກະທົບຕໍ່ສະພາບແວດລ້ອມການປະຕິບັດຂອງແກະ.
subshells spawned ເພື່ອປະຕິບັດການທົດແທນຄໍາສັ່ງສືບທອດມູນຄ່າຂອງ -e ທາງເລືອກຈາກ
ແກະຂອງພໍ່ແມ່. ເມື່ອບໍ່ຢູ່ໃນ ບວກ ຮູບແບບ, bash ລ້າງ -e ທາງເລືອກໃນ subshells ດັ່ງກ່າວ.
ຖ້າຄໍາສັ່ງຖືກປະຕິບັດຕາມໂດຍ a & ແລະການຄວບຄຸມວຽກບໍ່ເຄື່ອນໄຫວ, ການປ້ອນຂໍ້ມູນມາດຕະຖານເລີ່ມຕົ້ນ
ສໍາລັບຄໍາສັ່ງແມ່ນໄຟລ໌ເປົ່າ / dev / null. ຖ້າບໍ່ດັ່ງນັ້ນ, ຄໍາສັ່ງ invoked ສືບທອດ
ໄຟລ໌ descriptors ຂອງ calling shell ເປັນດັດແກ້ໂດຍການປ່ຽນເສັ້ນທາງ.
ENVIRONMENT
ເມື່ອໂຄງການຖືກເອີ້ນມັນຈະຖືກມອບໃຫ້ array ຂອງ strings ເອີ້ນວ່າ the ສະພາບແວດລ້ອມ. ນີ້ແມ່ນ
ບັນຊີລາຍຊື່ຂອງ ຊື່-ມູນຄ່າ ຄູ່, ຂອງແບບຟອມ ຊື່=ມູນຄ່າ.
ແກະສະ ໜອງ ໃຫ້ຫຼາຍວິທີເພື່ອໝູນໃຊ້ສະພາບແວດລ້ອມ. ກ່ຽວກັບການຮຽກຮ້ອງ, ແກະ
scans ສະພາບແວດລ້ອມຂອງຕົນເອງແລະສ້າງພາລາມິເຕີສໍາລັບແຕ່ລະຊື່ທີ່ພົບເຫັນ, ອັດຕະໂນມັດ
ຫມາຍມັນສໍາລັບ ການສົ່ງອອກ ຂະບວນການຂອງເດັກນ້ອຍ. ຄໍາສັ່ງທີ່ປະຕິບັດໄດ້ສືບທອດສະພາບແວດລ້ອມ. ໄດ້
ການສົ່ງອອກ ແລະ ປະກາດ -x ຄໍາສັ່ງອະນຸຍາດໃຫ້ພາຣາມິເຕີແລະຫນ້າທີ່ຈະໄດ້ຮັບການເພີ່ມແລະລົບ
ຈາກສິ່ງແວດລ້ອມ. ຖ້າຄ່າຂອງພາລາມິເຕີໃນສະພາບແວດລ້ອມໄດ້ຖືກດັດແກ້, ໃຫມ່
ມູນຄ່າກາຍເປັນສ່ວນຫນຶ່ງຂອງສະພາບແວດລ້ອມ, ແທນທີ່ເກົ່າ. ສິ່ງແວດລ້ອມສືບທອດໂດຍ
ຄໍາສັ່ງປະຕິບັດໃດໆປະກອບດ້ວຍສະພາບແວດລ້ອມເບື້ອງຕົ້ນຂອງແກະ, ຄຸນຄ່າຂອງມັນອາດຈະເປັນ
ດັດ ແກ້ ໃນ ແກະ ໄດ້ , ຫນ້ອຍ ຄູ່ ໃດ ໂຍກ ຍ້າຍ ອອກ ໂດຍ ກຳ ນົດ ຄໍາສັ່ງ, ບວກໃສ່ການເພີ່ມເຕີມໃດໆໂດຍຜ່ານ
ໄດ້ ການສົ່ງອອກ ແລະ ປະກາດ -x ຄຳ ສັ່ງ.
ສະພາບແວດລ້ອມສໍາລັບການໃດໆ ງ່າຍດາຍ ຄໍາສັ່ງ ຫຼືຟັງຊັນອາດຈະເພີ່ມຂຶ້ນຊົ່ວຄາວໂດຍ
prefixing ມັນກັບການກໍາຫນົດພາລາມິເຕີ, ດັ່ງທີ່ອະທິບາຍຂ້າງເທິງນີ້ໃນ PARAMETERS. ເຫຼົ່ານີ້
ຄໍາຖະແຫຼງການມອບຫມາຍມີຜົນກະທົບພຽງແຕ່ສະພາບແວດລ້ອມທີ່ເຫັນໂດຍຄໍາສັ່ງນັ້ນ.
ຖ້າ -k ທາງເລືອກແມ່ນໄດ້ຖືກກໍານົດ (ເບິ່ງ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ buildin ຂ້າງລຸ່ມນີ້), ຫຼັງຈາກນັ້ນ ທັງຫມົດ ພາລາມິເຕີ
ການມອບຫມາຍແມ່ນຖືກຈັດໃສ່ໃນສະພາບແວດລ້ອມສໍາລັບຄໍາສັ່ງ, ບໍ່ພຽງແຕ່ສິ່ງທີ່ນໍາຫນ້າ
ຊື່ຄໍາສັ່ງ.
ເມື່ອໃດ bash ຮຽກຮ້ອງຄໍາສັ່ງພາຍນອກ, ຕົວປ່ຽນແປງໄດ້ _ ຖືກຕັ້ງເປັນຊື່ໄຟລ໌ເຕັມຂອງ
ຄໍາສັ່ງແລະຜ່ານຄໍາສັ່ງນັ້ນໃນສະພາບແວດລ້ອມຂອງມັນ.
ອອກ STATUS
ສະຖານະການອອກຂອງຄໍາສັ່ງທີ່ຖືກປະຕິບັດແມ່ນຄ່າທີ່ສົ່ງຄືນໂດຍ ລໍຄອຍ ໂທລະບົບຫຼື
ຫນ້າທີ່ທຽບເທົ່າ. ສະຖານະການອອກແມ່ນຢູ່ລະຫວ່າງ 0 ຫາ 255, ເຖິງແມ່ນວ່າ, ດັ່ງທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້,
ແກະອາດຈະໃຊ້ຄ່າສູງກວ່າ 125 ໂດຍສະເພາະ. ອອກຈາກສະຖານະຈາກ shell buildins ແລະ
ຄໍາສັ່ງປະສົມຍັງຖືກຈໍາກັດຢູ່ໃນຂອບເຂດນີ້. ພາຍໃຕ້ສະຖານະການສະເພາະໃດຫນຶ່ງ, ຫອຍ
ຈະໃຊ້ຄ່າພິເສດເພື່ອຊີ້ບອກຮູບແບບຄວາມລົ້ມເຫລວສະເພາະ.
ສໍາລັບຈຸດປະສົງຂອງແກະ, ຄໍາສັ່ງທີ່ອອກຈາກສະຖານະທີ່ບໍ່ມີສູນໄດ້ສໍາເລັດ. ອັນ
ສະຖານະອອກຈາກສູນສະແດງເຖິງຄວາມສຳເລັດ. ສະຖານະທາງອອກທີ່ບໍ່ແມ່ນສູນສະແດງເຖິງຄວາມລົ້ມເຫລວ. ເມື່ອ ກ
ຄໍາສັ່ງຢຸດຢູ່ໃນສັນຍານອັນຕະລາຍ N, bash ໃຊ້ຄ່າຂອງ 128+N ເປັນສະຖານະການອອກ.
ຖ້າບໍ່ພົບຄໍາສັ່ງ, ຂະບວນການເດັກທີ່ສ້າງຂຶ້ນເພື່ອປະຕິບັດມັນສົ່ງຄືນສະຖານະຂອງ
127. ຖ້າຄໍາສັ່ງຖືກພົບເຫັນແຕ່ບໍ່ສາມາດປະຕິບັດໄດ້, ສະຖານະກັບຄືນແມ່ນ 126.
ຖ້າຄໍາສັ່ງລົ້ມເຫລວເນື່ອງຈາກຄວາມຜິດພາດໃນລະຫວ່າງການຂະຫຍາຍຫຼືການປ່ຽນເສັ້ນທາງ, ສະຖານະການອອກແມ່ນ
ໃຫຍ່ກວ່າສູນ.
Shell builtin ຄໍາສັ່ງສົ່ງຄືນສະຖານະຂອງ 0 (ທີ່ແທ້ຈິງ) ຖ້າຫາກວ່າສໍາເລັດຜົນ, ແລະບໍ່ແມ່ນສູນ (ທີ່ບໍ່ຖືກຕ້ອງ) ຖ້າ
ຂໍ້ຜິດພາດເກີດຂຶ້ນໃນຂະນະທີ່ພວກເຂົາປະຕິບັດ. buildins ທັງໝົດສົ່ງຄືນສະຖານະທາງອອກຂອງ 2 ເພື່ອຊີ້ບອກ
ການນໍາໃຊ້ທີ່ບໍ່ຖືກຕ້ອງ.
Bash ຕົວມັນເອງສົ່ງຄືນສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ປະຕິບັດ, ເວັ້ນເສຍແຕ່ວ່າ syntax ຜິດພາດ
ເກີດຂື້ນ, ໃນກໍລະນີທີ່ມັນອອກໄປດ້ວຍຄ່າທີ່ບໍ່ແມ່ນສູນ. ເບິ່ງຍັງ ການທ່ອງທ່ຽວ ຄໍາສັ່ງ builtin
ຂ້າງລຸ່ມນີ້.
ລາຍເຊັນ
ເມື່ອໃດ bash ແມ່ນການໂຕ້ຕອບ, ໃນກໍລະນີທີ່ບໍ່ມີໃສ່ກັບດັກ, ມັນບໍ່ສົນໃຈ ໄລຍະເປົ້າໝາຍ (ດັ່ງນັ້ນ ຂ້າ 0
ບໍ່ໄດ້ຂ້າແກະແບບໂຕ້ຕອບ), ແລະ ເຊັນເຂົ້າ ຖືກຈັບແລະຈັດການ (ດັ່ງນັ້ນ ລໍຖ້າ
buildin ແມ່ນຂັດຂວາງ). ໃນທຸກກໍລະນີ, bash ບໍ່ສົນໃຈ SIGQUIT. ຖ້າການຄວບຄຸມວຽກຢູ່ໃນ
ຜົນກະທົບ, bash ບໍ່ສົນໃຈ SIGTTIN, SIGTTOU, ແລະ SIGTSTP.
ຄໍາສັ່ງທີ່ບໍ່ແມ່ນ builtin ດໍາເນີນການໂດຍ bash ມີຕົວຈັດການສັນຍານທີ່ຕັ້ງເປັນຄ່າທີ່ສືບທອດໂດຍ
ແກະຈາກພໍ່ແມ່ຂອງມັນ. ເມື່ອການຄວບຄຸມວຽກບໍ່ມີຜົນ, ຄຳສັ່ງ asynchronous ບໍ່ສົນໃຈ
ເຊັນເຂົ້າ ແລະ SIGQUIT ນອກ ເໜືອ ໄປຈາກຕົວຈັດການທີ່ສືບທອດເຫຼົ່ານີ້. ຄໍາສັ່ງດໍາເນີນການເປັນຜົນມາຈາກ
ການທົດແທນຄໍາສັ່ງບໍ່ສົນໃຈສັນຍານການຄວບຄຸມວຽກທີ່ສ້າງຂຶ້ນໂດຍແປ້ນພິມ SIGTTIN, SIGTTOU,
ແລະ SIGTSTP.
Shell ອອກໄປຕາມຄ່າເລີ່ມຕົ້ນເມື່ອໄດ້ຮັບ A ຕິດຕາມ. ກ່ອນທີ່ຈະອອກ, ແກະແບບໂຕ້ຕອບ
ສົ່ງຄືນ ຕິດຕາມ ກັບທຸກວຽກ, ແລ່ນ ຫຼືຢຸດ. ວຽກທີ່ຢຸດເຊົາຖືກສົ່ງ ສັນຍາລັກ to
ຮັບປະກັນວ່າເຂົາເຈົ້າໄດ້ຮັບ ຕິດຕາມ. ເພື່ອປ້ອງກັນບໍ່ໃຫ້ແກະສົ່ງສັນຍານໄປຫາ a
ວຽກເຮັດງານທໍາໂດຍສະເພາະ, ມັນຄວນຈະຖືກໂຍກຍ້າຍອອກຈາກຕາຕະລາງວຽກເຮັດງານທໍາທີ່ມີ ປະຕິເສດ builtin (ເບິ່ງ
SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມ) ຫຼືໝາຍວ່າບໍ່ໄດ້ຮັບ ຕິດຕາມ ການນໍາໃຊ້ ປະຕິເສດ -h.
ຖ້າ huponexit ຕົວເລືອກ shell ໄດ້ຖືກກໍານົດດ້ວຍ ຮ້ານຄ້າ, bash ສົ່ງ a ຕິດຕາມ ຕໍ່ກັບວຽກທັງໝົດ
ເມື່ອແກະການເຂົ້າສູ່ລະບົບແບບໂຕ້ຕອບອອກ.
If bash ກໍາລັງລໍຖ້າຄໍາສັ່ງໃຫ້ສໍາເລັດແລະໄດ້ຮັບສັນຍານທີ່ຈັ່ນຈັບມີ
ໄດ້ຖືກຕັ້ງໄວ້, ຈັ່ນຈັບຈະບໍ່ຖືກປະຕິບັດຈົນກ່ວາຄໍາສັ່ງສໍາເລັດ. ເມື່ອໃດ bash ແມ່ນລໍຖ້າ
ສໍາລັບຄໍາສັ່ງ asynchronous ຜ່ານ ລໍຖ້າ builtin, ການຮັບສັນຍານສໍາລັບການທີ່ a
ຈັ່ນຈັບໄດ້ຖືກກໍານົດຈະເຮັດໃຫ້ ລໍຖ້າ builtin ເພື່ອກັບຄືນທັນທີທີ່ມີສະຖານະການອອກ
ຫຼາຍກ່ວາ 128, ໃນທັນທີຫຼັງຈາກນັ້ນຈັ່ນຈັບໄດ້ຖືກປະຕິບັດ.
JOB ການຄວບຄຸມ
ວຽກເຮັດງານທໍາ ການຄວບຄຸມ ໝາຍເຖິງຄວາມສາມາດໃນການເລືອກຢຸດ (suspends) ການປະຕິບັດຂະບວນການ
ແລະສືບຕໍ່ (ຊີວະປະຫວັດ) ການປະຕິບັດຂອງເຂົາເຈົ້າໃນຈຸດຕໍ່ມາ. ຜູ້ໃຊ້ປົກກະຕິໃຊ້ວຽກນີ້
ສິ່ງອໍານວຍຄວາມສະດວກໂດຍຜ່ານການໂຕ້ຕອບແບບໂຕ້ຕອບທີ່ສະຫນອງຮ່ວມກັນໂດຍ kernel ຂອງລະບົບປະຕິບັດການ
terminal driver ແລະ bash.
ຫອຍຮ່ວມກັບ ກ ວຽກເຮັດງານທໍາ ກັບແຕ່ລະທໍ່. ມັນຮັກສາຕາຕະລາງຂອງການປະຕິບັດໃນປະຈຸບັນ
ວຽກເຮັດງານທໍາ, ທີ່ອາດຈະໄດ້ຮັບການລະບຸໄວ້ກັບ ວຽກເຮັດງານທໍາ ຄໍາສັ່ງ. ເມື່ອໃດ bash ເລີ່ມວຽກແບບບໍ່ກົງກັນ
(ໃນ ຄວາມເປັນມາ), ມັນພິມເສັ້ນທີ່ຄ້າຍຄື:
[ປີ 1] 25647
ຊີ້ໃຫ້ເຫັນວ່າວຽກນີ້ແມ່ນວຽກທີ່ 1 ແລະ ID ຂະບວນການຂອງຂະບວນການສຸດທ້າຍໃນ
ທໍ່ທີ່ກ່ຽວຂ້ອງກັບວຽກນີ້ແມ່ນ 25647. ຂະບວນການທັງຫມົດໃນທໍ່ດຽວ
ແມ່ນສະມາຊິກຂອງວຽກດຽວກັນ. Bash ໃຊ້ໄດ້ ວຽກເຮັດງານທໍາ abstraction ເປັນພື້ນຖານສໍາລັບການຄວບຄຸມວຽກເຮັດງານທໍາ.
ເພື່ອອໍານວຍຄວາມສະດວກໃນການປະຕິບັດການໂຕ້ຕອບຜູ້ໃຊ້ໃນການຄວບຄຸມວຽກ, ການດໍາເນີນງານ
ລະບົບຮັກສາແນວຄວາມຄິດຂອງ a ໃນປະຈຸບັນ ປາຍທາງ ຂະບວນການ ກຸ່ມ ID. ສະມາຊິກຂອງເລື່ອງນີ້
ກຸ່ມຂະບວນການ (ຂະບວນການທີ່ມີ ID ກຸ່ມຂະບວນການເທົ່າກັບຂະບວນການ terminal ໃນປັດຈຸບັນ
ກຸ່ມ ID) ໄດ້ຮັບສັນຍານທີ່ສ້າງໂດຍແປ້ນພິມເຊັ່ນ ເຊັນເຂົ້າ. ຂະບວນການເຫຼົ່ານີ້ແມ່ນເວົ້າ
ຈະຢູ່ໃນ ພື້ນທີ່. ຄວາມເປັນມາ ຂະບວນການແມ່ນຜູ້ທີ່ ID ກຸ່ມຂະບວນການແຕກຕ່າງຈາກ
terminal ຂອງ; ຂະບວນການດັ່ງກ່າວແມ່ນມີພູມຕ້ານທານກັບສັນຍານທີ່ສ້າງໂດຍແປ້ນພິມ. ເບື້ອງໜ້າເທົ່ານັ້ນ
ຂະບວນການໄດ້ຖືກອະນຸຍາດໃຫ້ອ່ານຈາກຫຼື, ຖ້າຜູ້ໃຊ້ກໍານົດດ້ວຍ stty tostop, ຂຽນຫາ
terminal ໄດ້. ຂະບວນການພື້ນຖານທີ່ພະຍາຍາມອ່ານຈາກ (ຂຽນເຖິງເວລາທີ່ stty tostop
ມີຜົນບັງຄັບໃຊ້) terminal ຖືກສົ່ງ a SIGTTIN (SIGTTOU) ສັນຍານໂດຍ terminal ຂອງ kernel
ຄົນຂັບ, ເຊິ່ງ, ເວັ້ນເສຍແຕ່ຖືກຈັບ, ໂຈະຂະບວນການ.
ຖ້າຫາກວ່າລະບົບປະຕິບັດການທີ່ bash ແມ່ນແລ່ນສະຫນັບສະຫນູນການຄວບຄຸມວຽກເຮັດງານທໍາ, bash ປະກອບດ້ວຍ
ສິ່ງອໍານວຍຄວາມສະດວກໃນການນໍາໃຊ້ມັນ. ການພິມ suspends ລັກສະນະ (ໂດຍປົກກະຕິ ^Z, Control-Z) ໃນຂະນະທີ່ ກ
ຂະບວນການແມ່ນແລ່ນເຮັດໃຫ້ຂະບວນການທີ່ຈະຢຸດເຊົາແລະກັບຄືນໄປບ່ອນການຄວບຄຸມ bash. ພິມ
ໄດ້ ຊັກຊ້າ suspends ລັກສະນະ (ໂດຍປົກກະຕິ ^Y, Control-Y) ເຮັດໃຫ້ຂະບວນການຢຸດເຊົາ
ໃນເວລາທີ່ມັນພະຍາຍາມທີ່ຈະອ່ານການປ້ອນຂໍ້ມູນຈາກ terminal, ແລະການຄວບຄຸມທີ່ຈະກັບຄືນໄປບ່ອນ bash. ໄດ້
ຜູ້ໃຊ້ອາດຈະຈັດການສະຖານະຂອງວຽກນີ້, ໂດຍໃຊ້ bg ຄໍາສັ່ງເພື່ອສືບຕໍ່ມັນຢູ່ໃນ
ຄວາມເປັນມາ, ໄດ້ fg ຄໍາສັ່ງທີ່ຈະສືບຕໍ່ມັນຢູ່ໃນ foreground, ຫຼື ຂ້າ ຄໍາສັ່ງໃຫ້ຂ້າ
ມັນ. ກ ^Z ມີຜົນກະທົບທັນທີທັນໃດ, ແລະມີຜົນຂ້າງຄຽງເພີ່ມເຕີມຂອງການເຮັດໃຫ້ຍັງຄ້າງຢູ່
output ແລະ typeahead ທີ່ຈະຍົກເລີກ.
ມີຫຼາຍວິທີທີ່ຈະອ້າງເຖິງວຽກໃນແກະ. ລັກສະນະ % ແນະ ນຳ ກ
ສະເພາະວຽກ (ວຽກ). ໝາຍເລກວຽກ n ອາດຈະຖືກກ່າວເຖິງວ່າເປັນ %n. ວຽກເຮັດງານທໍາອາດຈະເປັນ
ຫມາຍເຖິງການໃຊ້ຄໍານໍາຫນ້າຂອງຊື່ທີ່ໃຊ້ເພື່ອເລີ່ມຕົ້ນມັນ, ຫຼືໃຊ້ substring ທີ່ປາກົດ
ໃນບັນຊີຄໍາສັ່ງຂອງຕົນ. ຍົກຕົວຢ່າງ, %ce ຫມາຍເຖິງການຢຸດເຊົາ ce ວຽກ. ຖ້າຄໍານໍາຫນ້າກົງກັນ
ຫຼາຍກ່ວາຫນຶ່ງວຽກເຮັດງານທໍາ, bash ລາຍງານຄວາມຜິດພາດ. ການນໍາໃຊ້ %?ce, ໃນທາງກົງກັນຂ້າມ, ຫມາຍເຖິງໃດໆ
ວຽກທີ່ບັນຈຸສາຍ ce ໃນບັນຊີຄໍາສັ່ງຂອງຕົນ. ຖ້າສາຍຍ່ອຍກົງກັນຫຼາຍກວ່າໜຶ່ງອັນ
ວຽກ, bash ລາຍງານຄວາມຜິດພາດ. ສັນຍາລັກ %% ແລະ %+ ອ້າງເຖິງແນວຄິດຂອງຫອຍຂອງ
ໃນປະຈຸບັນ ວຽກເຮັດງານທໍາ, ເຊິ່ງເປັນວຽກສຸດທ້າຍທີ່ຢຸດເຊົາໃນຂະນະທີ່ມັນຢູ່ເບື້ອງຫນ້າຫຼືເລີ່ມຕົ້ນໃນ
ພື້ນຫລັງ. ໄດ້ ທີ່ຜ່ານມາ ວຽກເຮັດງານທໍາ ອາດຈະຖືກອ້າງອີງໂດຍໃຊ້ %-. ຖ້າມີພຽງແຕ່ດຽວ
ວຽກ, %+ ແລະ %- ທັງສອງສາມາດໃຊ້ເພື່ອອ້າງອີງເຖິງວຽກນັ້ນ. ໃນຜົນຜະລິດກ່ຽວກັບວຽກເຮັດງານທໍາ (ເຊັ່ນ:
ຜົນຜະລິດຂອງ ວຽກເຮັດງານທໍາ command), ວຽກປະຈຸບັນຖືກໝາຍໄວ້ສະເໝີດ້ວຍ a +, ແລະ
ວຽກທີ່ຜ່ານມາກັບ a -. % ດຽວ (ບໍ່ມີສະເພາະວຽກທີ່ມາພ້ອມກັບ) ຍັງຫມາຍເຖິງ
ວຽກປະຈຸບັນ.
ການຕັ້ງຊື່ວຽກງ່າຍໆ ສາມາດໃຊ້ເພື່ອນຳມາໃສ່ໃນເບື້ອງໜ້າໄດ້: %1 ແມ່ນຄໍາສັບຄ້າຍຄືສໍາລັບ ``fg
%1'', ເອົາວຽກເຮັດງານທໍາ 1 ຈາກພື້ນຫລັງເຂົ້າໄປໃນ foreground. ເຊັ່ນດຽວກັນ, ``%1 &'' ຊີວະປະຫວັດ
ວຽກ 1 ໃນພື້ນຖານ, ທຽບເທົ່າກັບ ``ຂ %1''.
Shell ຮຽນຮູ້ທັນທີທຸກຄັ້ງທີ່ວຽກເຮັດງານທໍາມີການປ່ຽນແປງລັດ. ປົກກະຕິ, bash ລໍຖ້າຈົນກ່ວາມັນ
ກໍາລັງຈະພິມການເຕືອນກ່ອນທີ່ຈະລາຍງານການປ່ຽນແປງໃນສະຖານະຂອງວຽກເພື່ອບໍ່ໃຫ້
ຂັດຂວາງຜົນຜະລິດອື່ນໆ. ຖ້າ -b ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin ຖືກເປີດໃຊ້, bash
ລາຍງານການປ່ຽນແປງດັ່ງກ່າວທັນທີ. ໃສ່ກັບດັກໃດໆ SIGCHLD ຖືກປະຕິບັດສໍາລັບເດັກນ້ອຍແຕ່ລະຄົນ
ອອກ.
ຖ້າຫາກວ່າຄວາມພະຍາຍາມທີ່ຈະອອກ bash ແມ່ນເຮັດໃນຂະນະທີ່ວຽກຖືກຢຸດ (ຫຼື, ຖ້າ ວຽກກວດເຊັກ ຫອຍ
ທາງເລືອກໄດ້ຖືກເປີດໃຊ້ງານໂດຍໃຊ້ ຮ້ານຄ້າ buildin, ແລ່ນ), shell ພິມຄໍາເຕືອນ
ຂໍ້ຄວາມ, ແລະ, ຖ້າ ວຽກກວດເຊັກ ທາງເລືອກແມ່ນເປີດໃຊ້ງານ, ລາຍການວຽກເຮັດງານທໍາແລະສະຖານະພາບຂອງເຂົາເຈົ້າ. ໄດ້
ວຽກເຮັດງານທໍາ ຄໍາສັ່ງອາດຈະຖືກນໍາໃຊ້ເພື່ອກວດກາສະຖານະຂອງເຂົາເຈົ້າ. ຖ້າຄວາມພະຍາຍາມທີ່ຈະອອກເປັນຄັ້ງທີສອງ
ເຮັດໂດຍບໍ່ມີຄໍາສັ່ງແຊກແຊງ, shell ບໍ່ໄດ້ພິມຄໍາເຕືອນອື່ນ, ແລະໃດໆ
ວຽກທີ່ຢຸດເຊົາແມ່ນຖືກຍົກເລີກ.
ການເຕືອນ
ເມື່ອປະຕິບັດການໂຕ້ຕອບ, bash ສະແດງການເຕືອນເບື້ອງຕົ້ນ PS1 ໃນເວລາທີ່ມັນພ້ອມທີ່ຈະ
ອ່ານຄໍາສັ່ງ, ແລະຄໍາສັ່ງທີສອງ PS2 ໃນເວລາທີ່ມັນຕ້ອງການການປ້ອນຂໍ້ມູນເພີ່ມເຕີມເພື່ອເຮັດສໍາເລັດ a
ຄໍາສັ່ງ. Bash ອະນຸຍາດໃຫ້ສະຕຣິງເຕືອນເຫຼົ່ານີ້ເພື່ອປັບແຕ່ງໂດຍການໃສ່ຈໍານວນຂອງ
backslash-escaped ຕົວອັກສອນພິເສດທີ່ຖືກຖອດລະຫັດດັ່ງຕໍ່ໄປນີ້:
\a ຕົວກະດິ່ງ ASCII (07)
\d ວັນທີໃນຮູບແບບ "Weekday Month Date" (ເຊັ່ນ: "Tue May 26")
\D{ຮູບແບບ}
ໄດ້ ຮູບແບບ ແມ່ນຜ່ານໄປ ເວລາຕໍ່ເວລາ(3) ແລະຜົນໄດ້ຮັບແມ່ນ inserted ເຂົ້າໄປໃນ
ຊ່ອຍແນ່; ຫວ່າງເປົ່າ ຮູບແບບ ຜົນໄດ້ຮັບໃນໄລຍະເວລາສະເພາະທ້ອງຖິ່ນ
ການເປັນຕົວແທນ. ເຂັມຂັດແມ່ນຕ້ອງການ
\e ຕົວອັກສອນທີ່ຫນີ ASCII (033)
\h ຊື່ເຈົ້າພາບຂຶ້ນກັບ `.' ທໍາອິດ.
\H ຊື່ເຈົ້າພາບ
\j ຈໍານວນຂອງວຽກເຮັດງານທໍາໃນປັດຈຸບັນການຄຸ້ມຄອງໂດຍ shell ໄດ້
\l ຊື່ພື້ນຖານຂອງຊື່ອຸປະກອນຢູ່ປາຍຍອດຂອງ shell
\n ແຖວໃໝ່
\r ສົ່ງຄືນ
\s ຊື່ຂອງຫອຍ, ຊື່ພື້ນຖານຂອງ $0 (ສ່ວນດັ່ງຕໍ່ໄປນີ້ສຸດທ້າຍ
ທັບ)
\t ເວລາປະຈຸບັນໃນຮູບແບບ HH:MM:SS 24 ຊົ່ວໂມງ
\T ເວລາປະຈຸບັນໃນຮູບແບບ HH:MM:SS 12 ຊົ່ວໂມງ
\@ ເວລາປະຈຸບັນໃນຮູບແບບ 12-hour am/pm
\A ເວລາປະຈຸບັນໃນຮູບແບບ HH:MM 24 ຊົ່ວໂມງ
\u ຊື່ຜູ້ໃຊ້ຂອງປະຈຸບັນ
\v ສະບັບຂອງ bash (ເຊັ່ນ: 2.00)
\V ການປ່ອຍຂອງ bash, ຮຸ່ນ + ລະດັບ patch (ເຊັ່ນ: 2.00.0)
\w ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ, ກັບ $ ບ້ານ ຫຍໍ້ດ້ວຍ tilde (ໃຊ້
ມູນຄ່າຂອງ PROMPT_DIRTRIM ຕົວແປ)
\W ຊື່ພື້ນຖານຂອງໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ, ກັບ $ ບ້ານ ຫຍໍ້ດ້ວຍ ກ
tilde
\! ຈໍານວນປະຫວັດສາດຂອງຄໍາສັ່ງນີ້
\# ຈໍານວນຄໍາສັ່ງຂອງຄໍາສັ່ງນີ້
\$ ຖ້າ UID ທີ່ມີປະສິດທິພາບແມ່ນ 0, a #, ຖ້າບໍ່ດັ່ງນັ້ນ a $
\nnn ຕົວອັກສອນທີ່ກົງກັບເລກແປດ nnn
\\ backslash
\[ ເລີ່ມຕົ້ນລໍາດັບຂອງຕົວອັກສອນທີ່ບໍ່ແມ່ນການພິມ, ເຊິ່ງສາມາດຖືກນໍາໃຊ້ເພື່ອຝັງ a
ລໍາດັບການຄວບຄຸມ terminal ເຂົ້າໄປໃນ prompt
\] ສິ້ນສຸດລໍາດັບຂອງຕົວອັກສອນທີ່ບໍ່ແມ່ນການພິມ
ຈໍານວນຄໍາສັ່ງແລະຈໍານວນປະຫວັດສາດແມ່ນປົກກະຕິແລ້ວແຕກຕ່າງກັນ: ຈໍານວນປະຫວັດສາດຂອງ a
ຄໍາສັ່ງແມ່ນຕໍາແຫນ່ງຂອງມັນຢູ່ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ, ເຊິ່ງອາດຈະປະກອບມີຄໍາສັ່ງທີ່ຖືກຟື້ນຟູຈາກ
ເອກະສານປະຫວັດສາດ (ເບິ່ງ ປະຫວັດຄວາມເປັນ ຂ້າງລຸ່ມນີ້), ໃນຂະນະທີ່ຈໍານວນຄໍາສັ່ງແມ່ນຕໍາແຫນ່ງຢູ່ໃນລໍາດັບ
ຂອງຄໍາສັ່ງທີ່ຖືກປະຕິບັດໃນລະຫວ່າງກອງປະຊຸມ shell ໃນປັດຈຸບັນ. ຫຼັງຈາກ string ຖືກຖອດລະຫັດ, ມັນແມ່ນ
ການຂະຫຍາຍຕົວໂດຍຜ່ານການຂະຫຍາຍຕົວກໍານົດການ, ການທົດແທນຄໍາສັ່ງ, ການຂະຫຍາຍທາງເລກຄະນິດສາດ, ແລະ quote
ການໂຍກຍ້າຍ, ຂຶ້ນກັບມູນຄ່າຂອງ promptvars ຕົວເລືອກ shell (ເບິ່ງລາຍລະອຽດຂອງ
ຮ້ານຄ້າ ຄໍາສັ່ງພາຍໃຕ້ SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
READLINE
ນີ້ແມ່ນຫ້ອງສະຫມຸດທີ່ຈັດການການອ່ານການປ້ອນຂໍ້ມູນໃນເວລາທີ່ການນໍາໃຊ້ແກະແບບໂຕ້ຕອບ, ເວັ້ນເສຍແຕ່ໄດ້
--noediting ທາງເລືອກແມ່ນໄດ້ຮັບໃນການຮຽກຮ້ອງໃຫ້ shell. ການແກ້ໄຂເສັ້ນຍັງຖືກນໍາໃຊ້ໃນເວລາທີ່ການນໍາໃຊ້
-e ທາງເລືອກໃນການ ອ່ານ ກໍ່ສ້າງ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄໍາສັ່ງແກ້ໄຂເສັ້ນແມ່ນຄ້າຍຄືກັນກັບມັນ
ຂອງ Emacs. ມີການໂຕ້ຕອບການແກ້ໄຂເສັ້ນແບບ vi-style. ການແກ້ໄຂເສັ້ນສາມາດ
ເປີດໃຊ້ໄດ້ທຸກເວລາໂດຍໃຊ້ -o emacs or -o vi ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ builtin (ເບິ່ງ SHELL
ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້). ເພື່ອປິດການແກ້ໄຂເສັ້ນຫຼັງຈາກ shell ແລ່ນ, ໃຫ້ໃຊ້ປຸ່ມ +o
emacs or +o vi ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ກໍ່ສ້າງ.
ເສັ້ນອ່ານ notation
ໃນພາກນີ້, ສັນຍາລັກແບບ Emacs ຖືກນໍາໃຊ້ເພື່ອຊີ້ໃຫ້ເຫັນການກົດແປ້ນພິມ. ປຸ່ມຄວບຄຸມແມ່ນ
ໝາຍເຖິງ C-ທີ່ສໍາຄັນ, eg, Cn ຫມາຍຄວາມວ່າ Control-N. ເຊັ່ນດຽວກັນ, meta ລະຫັດແມ່ນສະແດງໂດຍ M-ທີ່ສໍາຄັນ,
ດັ່ງນັ້ນ Mx ຫມາຍຄວາມວ່າ Meta-X. (ໃນແປ້ນພິມທີ່ບໍ່ມີ a meta ກະແຈ, M-x ຫມາຍຄວາມວ່າ ESC x, ie, ກົດ
Escape key ຫຼັງຈາກນັ້ນໄດ້ x ກະແຈ. ນີ້ເຮັດໃຫ້ ESC ໄດ້ meta ຄຳ ນຳ ໜ້າ. ການປະສົມປະສານ MC-x ວິທີການ
ESC-Control-x, ຫຼືກົດປຸ່ມ Escape ຈາກນັ້ນກົດປຸ່ມຄວບຄຸມໃນຂະນະທີ່ກົດປຸ່ມ x
ກຸນແຈ.)
ຄໍາສັ່ງ Readline ອາດຈະໄດ້ຮັບຕົວເລກ ກະທູ້ທີ່, ເຊິ່ງປົກກະຕິເຮັດຫນ້າທີ່ເປັນການນັບຄືນ.
ບາງຄັ້ງ, ຢ່າງໃດກໍຕາມ, ມັນເປັນສັນຍານຂອງການໂຕ້ຖຽງທີ່ມີຄວາມສໍາຄັນ. ຜ່ານ ກ
ການໂຕ້ຖຽງທາງລົບຕໍ່ຄໍາສັ່ງທີ່ປະຕິບັດໃນທິດທາງຂ້າງຫນ້າ (ເຊັ່ນ: ເສັ້ນຂ້າ) ສາເຫດ
ຄໍາສັ່ງທີ່ຈະປະຕິບັດໃນທິດທາງກັບຄືນໄປບ່ອນ. ຄໍາສັ່ງທີ່ມີພຶດຕິກໍາທີ່ມີການໂຕ້ຖຽງ
deviates ຈາກນີ້ແມ່ນສັງເກດເຫັນຂ້າງລຸ່ມນີ້.
ເມື່ອຄໍາສັ່ງຖືກອະທິບາຍວ່າເປັນ ຂ້າ ຂໍ້ຄວາມ, ຂໍ້ຄວາມທີ່ຖືກລົບຈະຖືກບັນທຶກໄວ້ສໍາລັບອະນາຄົດທີ່ເປັນໄປໄດ້
ດຶງຂໍ້ມູນ (ຍິ້ມແຍ້ມແຈ່ມໃສ). ຂໍ້ຄວາມທີ່ຖືກຂ້າຖືກບັນທຶກໄວ້ໃນ a ຂ້າ ວົງ. ເຮັດໃຫ້ເກີດການສັງຫານໝູ່
ຂໍ້ຄວາມທີ່ຈະໄດ້ຮັບການສະສົມເປັນຫນຶ່ງຫນ່ວຍ, ທີ່ສາມາດໄດ້ຮັບການ yank ທັງຫມົດໃນເວລາດຽວ. ຄໍາສັ່ງທີ່
ຢ່າຂ້າຂໍ້ຄວາມແຍກຊິ້ນສ່ວນຂອງຂໍ້ຄວາມໃນວົງການຂ້າ.
ເສັ້ນອ່ານ ການລິເລີ່ມ
Readline ຖືກປັບແຕ່ງໂດຍການໃສ່ຄໍາສັ່ງໃນໄຟລ໌ເບື້ອງຕົ້ນ (the inputrc ໄຟລ).
ຊື່ຂອງໄຟລ໌ນີ້ແມ່ນເອົາມາຈາກຄ່າຂອງ INPUTRC ຕົວແປ. ຖ້າຕົວແປນັ້ນ
ບໍ່ໄດ້ຕັ້ງ, ຄ່າເລີ່ມຕົ້ນແມ່ນ ~ / .inputrc. ເມື່ອໂຄງການທີ່ໃຊ້ຫ້ອງສະຫມຸດ readline
ເລີ່ມຕົ້ນຂຶ້ນ, ໄຟລ໌ເບື້ອງຕົ້ນຖືກອ່ານ, ແລະການຜູກມັດທີ່ສໍາຄັນແລະຕົວແປຖືກຕັ້ງ.
ມີພຽງແຕ່ການກໍ່ສ້າງພື້ນຖານຈໍານວນຫນ້ອຍທີ່ອະນຸຍາດໃຫ້ຢູ່ໃນໄຟລ໌ເບື້ອງຕົ້ນ readline. ຫວ່າງ
ສາຍຖືກລະເລີຍ. ແຖວຕົ້ນດ້ວຍ ກ # ແມ່ນຄໍາຄິດເຫັນ. ແຖວຕົ້ນດ້ວຍ ກ $
ຊີ້ບອກໂຄງສ້າງທີ່ມີເງື່ອນໄຂ. ແຖວອື່ນໝາຍເຖິງການຜູກມັດຫຼັກ ແລະການຕັ້ງຄ່າຕົວແປ.
ການຜູກມັດລະຫັດເລີ່ມຕົ້ນອາດຈະຖືກປ່ຽນແປງດ້ວຍ inputrc ໄຟລ໌. ໂຄງການອື່ນໆທີ່ໃຊ້
ຫ້ອງສະຫມຸດນີ້ອາດຈະເພີ່ມຄໍາສັ່ງແລະການຜູກມັດຂອງເຂົາເຈົ້າເອງ.
ຕົວຢ່າງ, ການວາງ
M-Control-u: universal-argument
or
C-Meta-u: universal-argument
ເຂົ້າໄປໃນ inputrc ຈະເຮັດໃຫ້ MCU ປະຕິບັດຄໍາສັ່ງ readline universal-argument.
ຊື່ຕົວອັກສອນສັນຍາລັກຕໍ່ໄປນີ້ຖືກຮັບຮູ້: ຣູບູ, DEL, ESC, LFD, NEWLINE,
RET, ກັບຄືນ, SPC, SPACE, ແລະ TAB.
ນອກເຫນືອຈາກຊື່ຄໍາສັ່ງ, readline ອະນຸຍາດໃຫ້ລະຫັດຖືກຜູກມັດກັບສະຕຣິງທີ່ເປັນ
ໃສ່ເມື່ອກົດປຸ່ມ (ກ ມະຫາພາກ).
ເສັ້ນອ່ານ ທີ່ສໍາຄັນ ຜູກມັດ
syntax ສໍາລັບການຄວບຄຸມການຜູກມັດທີ່ສໍາຄັນໃນ inputrc ໄຟລ໌ແມ່ນງ່າຍດາຍ. ທັງໝົດນັ້ນແມ່ນ
ຕ້ອງການແມ່ນຊື່ຂອງຄໍາສັ່ງຫຼືຂໍ້ຄວາມຂອງ macro ແລະລໍາດັບທີ່ສໍາຄັນທີ່ມັນ
ຄວນຖືກຜູກມັດ. ຊື່ອາດຈະໄດ້ຮັບການລະບຸໄວ້ໃນຫນຶ່ງໃນສອງວິທີການ: ເປັນຊື່ສໍາຄັນສັນຍາລັກ,
ອາດຈະເປັນ ເມຕາ- or ການຄວບຄຸມ - ຄໍານໍາຫນ້າ, ຫຼືເປັນລໍາດັບທີ່ສໍາຄັນ.
ເມື່ອໃຊ້ແບບຟອມ ຊື່ຄີ:function-name or ມະຫາພາກ, ຊື່ຄີ ແມ່ນຊື່ຂອງການສະກົດຄໍາທີ່ສໍາຄັນ
ອອກໃນພາສາອັງກິດ. ຍົກຕົວຢ່າງ:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> ຜົນຜະລິດ"
ໃນຕົວຢ່າງຂ້າງເທິງ, Cu ຖືກຜູກມັດກັບຫນ້າທີ່ universal-argument, M-DEL ຖືກຜູກມັດກັບ
ໜ້າ ທີ່ backward-kill-word, ແລະ ບໍລິສັດ ຖືກຜູກມັດເພື່ອແລ່ນມະຫາພາກທີ່ສະແດງອອກຢູ່ເບື້ອງຂວາ
hand side (ແມ່ນ, ເພື່ອໃສ່ຂໍ້ຄວາມ ``> output '' ເຂົ້າໄປໃນເສັ້ນ).
ໃນຮູບແບບທີສອງ, "keyseq":function-name or ມະຫາພາກ, keyseq ແຕກຕ່າງຈາກ ຊື່ຄີ ຂ້າງເທິງໃນ
ສະຕຣິງທີ່ສະແດງເຖິງລໍາດັບຫຼັກທັງໝົດອາດຈະຖືກລະບຸໂດຍການວາງລໍາດັບ
ພາຍໃນວົງຢືມຄູ່. ບາງຮູບແບບ GNU Emacs ສາມາດຖືກໃຊ້, ດັ່ງຕໍ່ໄປນີ້
ຕົວຢ່າງ, ແຕ່ຊື່ຕົວອັກສອນທີ່ເປັນສັນຍາລັກບໍ່ໄດ້ຖືກຮັບຮູ້.
"\ Cu": universal-argument
"\Cx\Cr": re-read-init-file
"\e[11~": "ປຸ່ມຟັງຊັນ 1"
ໃນຕົວຢ່າງນີ້, Cu ອີກເທື່ອຫນຶ່ງໄດ້ຖືກຜູກມັດກັບຫນ້າທີ່ universal-argument. Cx Cr ຖືກຜູກມັດ
ກັບຫນ້າທີ່ re-read-init-file, ແລະ ESC [ 1 1 ~ ຜູກມັດໃສ່ຂໍ້ຄວາມ ``ຟັງຊັນ
ກະແຈ 1''.
ຊຸດເຕັມຂອງລໍາດັບການຫລົບຫນີແບບ GNU Emacs ແມ່ນ
\C- ການຄວບຄຸມ prefix
\M- ຄໍານໍາຫນ້າ meta
\e ລັກສະນະຫລົບຫນີ
\\ backslash
\" ຕົວຫນັງສື "
\' ຕົວໜັງສື
ນອກເຫນືອໄປຈາກລໍາດັບການຫລົບຫນີແບບ GNU Emacs, ຊຸດທີສອງຂອງການຫລົບຫນີ backslash ແມ່ນ
ມີ:
\a ເຕືອນ (ກະດິ່ງ)
\b ພື້ນຫຼັງ
\d ລຶບ
\f ອາຫານແບບຟອມ
\n ແຖວໃໝ່
\r ສົ່ງຄືນ
\t ແຖບແນວນອນ
\v ແຖບແນວຕັ້ງ
\nnn ຕົວອັກສອນແປດບິດທີ່ມີຄ່າເປັນຄ່າແປດ nnn (ຫນຶ່ງຫາສາມ
ຕົວເລກ)
\xHH ຕົວອັກສອນແປດບິດທີ່ມີມູນຄ່າເປັນເລກຖານສິບຫົກ HH (ຫນຶ່ງຫຼືສອງ
ຕົວເລກ hex)
ເມື່ອໃສ່ຂໍ້ຄວາມຂອງມະຫາພາກ, ວົງຢືມດ່ຽວ ຫຼືຄູ່ຕ້ອງໃຊ້ເພື່ອຊີ້ບອກ a
ນິຍາມມະຫາພາກ. ຂໍ້ຄວາມທີ່ບໍ່ໄດ້ອ້າງອີງແມ່ນສົມມຸດວ່າເປັນຊື່ຟັງຊັນ. ຢູ່ໃນຮ່າງກາຍມະຫາພາກ, ໄດ້
ການຫລົບຫນີ backslash ທີ່ອະທິບາຍຂ້າງເທິງແມ່ນຂະຫຍາຍອອກ. Backslash ຈະອ້າງເຖິງຕົວອັກສອນອື່ນໃດນຶ່ງ
ໃນຂໍ້ຄວາມມະຫາພາກ, ລວມທັງ "ແລະ '.
Bash ອະນຸຍາດໃຫ້ການຜູກມັດທີ່ສໍາຄັນ readline ໃນປະຈຸບັນເພື່ອສະແດງຫຼືການແກ້ໄຂກັບ ຜູກ
ຄໍາສັ່ງ builtin. ຮູບແບບການແກ້ໄຂອາດຈະຖືກປ່ຽນໃນລະຫວ່າງການໃຊ້ແບບໂຕ້ຕອບໂດຍການນໍາໃຊ້ -o
ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ ດ້ານລຸ່ມ).
ເສັ້ນອ່ານ Variables
Readline ມີຕົວແປທີ່ສາມາດໃຊ້ເພື່ອປັບແຕ່ງພຶດຕິກໍາຂອງມັນຕື່ມອີກ. ຕົວແປອາດຈະ
ຖືກຕັ້ງຢູ່ໃນ inputrc ໄຟລ໌ທີ່ມີຄໍາຖະແຫຼງຂອງແບບຟອມ
ທີ່ກໍານົດໄວ້ variable-name ມູນຄ່າ
ຍົກເວັ້ນບ່ອນທີ່ບັນທຶກໄວ້, ຕົວແປ readline ສາມາດເອົາຄ່າໄດ້ On or off (ໂດຍບໍ່ສົນເລື່ອງ
ກໍລະນີ). ຊື່ຕົວແປທີ່ບໍ່ຮູ້ຈັກຖືກລະເລີຍ. ເມື່ອຄ່າຕົວແປຖືກອ່ານ, ຫວ່າງເປົ່າຫຼື
ຄ່າ null, "on" (case-insensitive), ແລະ "1" ແມ່ນທຽບເທົ່າກັບ On. ຄ່າອື່ນໆທັງໝົດແມ່ນ
ທຽບເທົ່າກັບ off. ຕົວແປແລະຄ່າເລີ່ມຕົ້ນຂອງພວກມັນແມ່ນ:
ແບບລະຄັງ (ຟັງໄດ້)
ຄວບຄຸມວ່າຈະເກີດຫຍັງຂຶ້ນເມື່ອ readline ຕ້ອງການໃຫ້ກະດິ່ງດັງຂຶ້ນ. ຖ້າຕັ້ງເປັນ
none, readline ບໍ່ເຄີຍດັງລະຄັງ. ຖ້າຕັ້ງເປັນ ສັງເກດເຫັນ, readline ໃຊ້ການເບິ່ງເຫັນ
ກະດິ່ງຖ້າມີ. ຖ້າຕັ້ງເປັນ ຟັງໄດ້, readline ພະຍາຍາມດັງ
ກະດິ່ງຂອງສະຖານີ.
bind-tty-special-chars (ເທິງ)
ຖ້າຕັ້ງ On, readline ພະຍາຍາມຜູກມັດຕົວອັກສອນຄວບຄຸມທີ່ໄດ້ຮັບການປິ່ນປົວໂດຍສະເພາະ
terminal driver ຂອງ kernel ກັບ readline ທຽບເທົ່າຂອງເຂົາເຈົ້າ.
ສະຖິຕິສີ (ປິດ)
ຖ້າຕັ້ງ On, readline ສະແດງການສໍາເລັດທີ່ເປັນໄປໄດ້ໂດຍໃຊ້ສີທີ່ແຕກຕ່າງກັນກັບ
ຊີ້ບອກປະເພດໄຟລ໌ຂອງເຂົາເຈົ້າ. ຄໍານິຍາມສີແມ່ນເອົາມາຈາກມູນຄ່າຂອງ
LS_COLORS environment variable
ຄໍາຄິດເຫັນ - ເລີ່ມຕົ້ນ (``#'')
ສະຕຣິງທີ່ໃສ່ເມື່ອເສັ້ນອ່ານ insert-comment ຄໍາສັ່ງຖືກປະຕິບັດ.
ຄໍາສັ່ງນີ້ແມ່ນຜູກມັດກັບ M-# ໃນຮູບແບບ emacs ແລະເພື່ອ # ໃນຮູບແບບຄໍາສັ່ງ vi.
ສໍາເລັດ-ບໍ່ສົນໃຈ-ກໍລະນີ (ປິດ)
ຖ້າຕັ້ງ On, readline ປະຕິບັດການຈັບຄູ່ຊື່ໄຟລ໌ແລະການສໍາເລັດໃນ a
ຄົນອັບເດດ: ກໍລະນີທີ່ບໍ່ລະອຽດອ່ອນ.
completion-prefix-display-length (0)
ຄວາມຍາວຂອງຕົວອັກສອນຂອງຄໍານໍາຫນ້າທົ່ວໄປຂອງບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້
ທີ່ສະແດງໂດຍບໍ່ມີການດັດແປງ. ເມື່ອຕັ້ງເປັນຄ່າທີ່ໃຫຍ່ກວ່າສູນ,
ຄຳນຳໜ້າທົ່ວໄປທີ່ຍາວກວ່າຄ່ານີ້ຈະຖືກແທນທີ່ດ້ວຍຮູບໄຂ່ເມື່ອ
ສະແດງຄວາມສໍາເລັດທີ່ເປັນໄປໄດ້.
completion-query-items (100)
ນີ້ກໍານົດເວລາທີ່ຜູ້ໃຊ້ຖືກສອບຖາມກ່ຽວກັບການເບິ່ງຈໍານວນທີ່ເປັນໄປໄດ້
ສໍາເລັດທີ່ສ້າງຂຶ້ນໂດຍ ການສໍາເລັດທີ່ເປັນໄປໄດ້ ຄໍາສັ່ງ. ມັນອາດຈະຖືກຕັ້ງຄ່າເປັນອັນໃດກໍໄດ້
ຄ່າຈຳນວນເຕັມທີ່ໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບສູນ. ຖ້າຫາກວ່າຈໍານວນຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້
ແມ່ນໃຫຍ່ກວ່າຫຼືເທົ່າກັບມູນຄ່າຂອງຕົວແປນີ້, ຜູ້ໃຊ້ຖືກຖາມວ່າ
ຫຼືບໍ່ເຂົາຕ້ອງການເບິ່ງເຂົາເຈົ້າ; ຖ້າບໍ່ດັ່ງນັ້ນພວກມັນຈະຖືກລະບຸໄວ້ພຽງແຕ່ຢູ່ໃນເຄື່ອງບິນ.
convert-meta (ເທິງ)
ຖ້າຕັ້ງ On, readline ຈະປ່ຽນຕົວອັກສອນທີ່ມີຊຸດແປດບິດເປັນ ASCII
ລຳດັບຫຼັກໂດຍການລອກບິດທີແປດ ແລະນຳໜ້າຕົວໜັງສືໜີ (ໃນ
ຜົນກະທົບ, ການນໍາໃຊ້ escape ເປັນ meta ຄຳ ນຳ ໜ້າ).
disable-ສໍາເລັດ (ປິດ)
ຖ້າຕັ້ງ On, readline ຈະຂັດຂວາງການສໍາເລັດຄໍາສັບ. ຕົວອັກສອນທີ່ສໍາເລັດຈະເປັນ
ໃສ່ເຂົ້າໄປໃນເສັ້ນຄືກັບວ່າພວກເຂົາຖືກແຜນທີ່ ໃສ່ຕົນເອງ.
ຮູບແບບການແກ້ໄຂ (emacs)
ຄວບຄຸມວ່າ readline ເລີ່ມຕົ້ນດ້ວຍຊຸດການຜູກມັດຫຼັກທີ່ຄ້າຍຄືກັນກັບ Emacs or vi.
ຮູບແບບການແກ້ໄຂ ສາມາດຖືກຕັ້ງເປັນ emacs or vi.
echo-control-ລັກສະນະ (ເທິງ)
ເມື່ອຕັ້ງຄ່າ On, ໃນລະບົບປະຕິບັດການທີ່ຊີ້ບອກວ່າພວກເຂົາສະຫນັບສະຫນູນມັນ, readline echoes
ຕົວອັກສອນທີ່ສອດຄ້ອງກັບສັນຍານທີ່ສ້າງຂຶ້ນຈາກແປ້ນພິມ.
ປຸ່ມກົດເປີດ (ປິດ)
ເມື່ອຕັ້ງຄ່າ On, readline ຈະພະຍາຍາມເປີດໃຊ້ປຸ່ມກົດແອັບພລິເຄຊັນເມື່ອມັນຢູ່
ເອີ້ນວ່າ. ບາງລະບົບຕ້ອງການອັນນີ້ເພື່ອເປີດໃຊ້ປຸ່ມລູກສອນ.
ເປີດໃຊ້ງານ-meta-key (ເທິງ)
ເມື່ອຕັ້ງຄ່າ On, readline ຈະພະຍາຍາມເປີດໃຊ້ປຸ່ມຕົວແກ້ໄຂ meta ໃດໆທີ່ terminal
ອ້າງວ່າສະຫນັບສະຫນູນໃນເວລາທີ່ມັນຖືກເອີ້ນວ່າ. ໃນຫຼາຍ terminals, ປຸ່ມ meta ຖືກນໍາໃຊ້ເພື່ອ
ສົ່ງຕົວອັກສອນແປດບິດ.
ຂະຫຍາຍ-tilde (ປິດ)
ຖ້າຕັ້ງ On, ການຂະຫຍາຍ tilde ແມ່ນປະຕິບັດໃນເວລາທີ່ readline ພະຍາຍາມສໍາເລັດຄໍາ.
ຈຸດປະຫວັດສາດປົກປັກຮັກສາ (ປິດ)
ຖ້າຕັ້ງ On, ລະຫັດປະຫວັດສາດພະຍາຍາມວາງຈຸດຢູ່ໃນສະຖານທີ່ດຽວກັນໃນແຕ່ລະ
ເສັ້ນປະຫວັດສາດດຶງກັບ ປະຫວັດສາດທີ່ຜ່ານມາ or ປະຫວັດສາດຕໍ່ໄປ.
ຂະຫນາດປະຫວັດສາດ (0)
ກໍານົດຈໍານວນສູງສຸດຂອງລາຍການປະຫວັດສາດທີ່ບັນທຶກໄວ້ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ຖ້າຕັ້ງເປັນ
ສູນ, ລາຍການປະຫວັດສາດທີ່ມີຢູ່ກ່ອນແລ້ວຈະຖືກລຶບ ແລະບໍ່ມີລາຍການໃໝ່ຖືກບັນທຶກໄວ້. ຖ້າ
ຕັ້ງຄ່າເປັນຄ່າໜ້ອຍກວ່າສູນ, ຈໍານວນລາຍການປະຫວັດສາດບໍ່ຈໍາກັດ. ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ຈໍານວນລາຍການປະຫວັດສາດແມ່ນບໍ່ຈໍາກັດ.
ໂໝດລວງນອນ-ເລື່ອນ-ໂໝດ (ປິດ)
ເມື່ອຕັ້ງຄ່າ On, ເຮັດໃຫ້ readline ໃຊ້ເສັ້ນດຽວສໍາລັບການສະແດງ, ເລື່ອນການປ້ອນຂໍ້ມູນ
ຢຽດຕາມແນວນອນໃນແຖວໜ້າຈໍດຽວເມື່ອມັນຍາວກວ່າຄວາມກວ້າງຂອງໜ້າຈໍ
ແທນທີ່ຈະຫໍ່ໃສ່ເສັ້ນໃຫມ່.
input-meta (ປິດ)
ຖ້າຕັ້ງ On, readline ຈະເຮັດໃຫ້ການປ້ອນຂໍ້ມູນແປດບິດ (ນັ້ນແມ່ນ, ມັນຈະບໍ່ລອກເອົາ
high bit ຈາກຕົວອັກສອນທີ່ມັນອ່ານ), ໂດຍບໍ່ຄໍານຶງເຖິງສິ່ງທີ່ terminal ອ້າງວ່າມັນ
ສາມາດສະຫນັບສະຫນູນ. ຊື່ ທຸງເມຕາ ແມ່ນຄໍາສັບຄ້າຍຄືສໍາລັບຕົວແປນີ້.
ຄົ້ນຫາ - terminators (``C-[C-J'')
ສະຕຣິງຂອງຕົວອັກສອນທີ່ຄວນຢຸດການຄົ້ນຫາແບບເພີ່ມຂຶ້ນໂດຍບໍ່ມີການ
ຕໍ່ມາປະຕິບັດລັກສະນະເປັນຄໍາສັ່ງ. ຖ້າຕົວແປນີ້ຍັງບໍ່ທັນໄດ້
ໃຫ້ຄຸນຄ່າ, ລັກສະນະ ESC ແລະ CJ ຈະຢຸດການຄົ້ນຫາທີ່ເພີ່ມຂຶ້ນ.
ແຜນທີ່ຫຼັກ (emacs)
ກໍານົດແຜນຜັງເສັ້ນການອ່ານປະຈຸບັນ. ຊຸດຂອງ keymap ຊື່ທີ່ຖືກຕ້ອງແມ່ນ emacs,
emacs-ມາດຕະຖານ, emacs-meta, emacs-ctlx, vi, vi-ຄໍາສັ່ງ, ແລະ vi-ແຊກ. vi is
ທຽບເທົ່າກັບ vi-ຄໍາສັ່ງ; emacs ເທົ່າກັບ emacs-ມາດຕະຖານ. ຄ່າເລີ່ມຕົ້ນ
is emacs; ມູນຄ່າຂອງ ຮູບແບບການແກ້ໄຂ ຍັງມີຜົນກະທົບກັບແຜນທີ່ຫຼັກເລີ່ມຕົ້ນ.
keyseq-ໝົດເວລາ (500)
ລະບຸໄລຍະເວລາ ເສັ້ນອ່ານ ຈະລໍຖ້າຕົວລະຄອນໃດໜຶ່ງໃນເວລາອ່ານເລື່ອງທີ່ບໍ່ຊັດເຈນ
ລໍາດັບທີ່ສໍາຄັນ (ຫນຶ່ງທີ່ສາມາດປະກອບເປັນລໍາດັບທີ່ສໍາຄັນທີ່ສົມບູນໂດຍໃຊ້ການປ້ອນຂໍ້ມູນອ່ານດັ່ງນັ້ນ
ໄກ, ຫຼືສາມາດເອົາການປ້ອນຂໍ້ມູນເພີ່ມເຕີມເພື່ອເຮັດລໍາດັບຄີທີ່ຍາວກວ່າ). ຖ້າບໍ່ມີການປ້ອນຂໍ້ມູນ
ໄດ້ຮັບພາຍໃນກໍານົດເວລາ, ເສັ້ນອ່ານ ຈະໃຊ້ກະແຈສັ້ນກວ່າແຕ່ສົມບູນ
ລຳດັບ. ຄ່າແມ່ນລະບຸເປັນ milliseconds, ດັ່ງນັ້ນຄ່າຂອງ 1000 ຫມາຍຄວາມວ່າ
ເສັ້ນອ່ານ ຈະລໍຖ້າຫນຶ່ງວິນາທີສໍາລັບການປ້ອນຂໍ້ມູນເພີ່ມເຕີມ. ຖ້າຕົວແປນີ້ຖືກຕັ້ງເປັນ a
ຄ່າໜ້ອຍກວ່າ ຫຼືເທົ່າກັບສູນ, ຫຼືຄ່າທີ່ບໍ່ແມ່ນຕົວເລກ, ເສັ້ນອ່ານ ຈະລໍຖ້າ
ຈົນກ່ວາປຸ່ມອື່ນຖືກກົດດັນເພື່ອຕັດສິນໃຈລໍາດັບທີ່ສໍາຄັນທີ່ຈະສໍາເລັດ.
mark-directory (ເທິງ)
ຖ້າຕັ້ງ On, ຊື່ໄດເລກະທໍລີທີ່ສໍາເລັດມີເຄື່ອງໝາຍຫຍໍ້ໜ້າໃສ່.
mark-modified-lines (ປິດ)
ຖ້າຕັ້ງ On, ເສັ້ນປະຫວັດສາດທີ່ໄດ້ຖືກດັດແກ້ແມ່ນສະແດງດ້ວຍຕົວກ່ອນຫນ້າ
ດາວ (*).
mark-symlinked-directories (ປິດ)
ຖ້າຕັ້ງ On, ຊື່ທີ່ເຮັດແລ້ວທີ່ເປັນສັນຍາລັກເຊື່ອມຕໍ່ໄປຫາໄດເລກະທໍລີມີ slash
ເພີ່ມເຕີມ (ຂຶ້ນກັບມູນຄ່າຂອງ mark-directory).
match-hidden-files (ເທິງ)
ຕົວແປນີ້, ເມື່ອຕັ້ງເປັນ On, ເຮັດໃຫ້ readline ກົງກັບໄຟລ໌ທີ່ຊື່ເລີ່ມຕົ້ນ
ດ້ວຍ `.' (ໄຟລ໌ທີ່ເຊື່ອງໄວ້) ໃນເວລາທີ່ປະຕິບັດການສໍາເລັດຊື່ໄຟລ໌. ຖ້າຕັ້ງເປັນ off, ການ
ນໍາ.' ຕ້ອງໄດ້ຮັບການສະຫນອງໂດຍຜູ້ໃຊ້ໃນຊື່ໄຟລ໌ເພື່ອໃຫ້ສໍາເລັດ.
menu-complete-display-prefix (ປິດ)
ຖ້າຕັ້ງ On, ການສໍາເລັດເມນູສະແດງຄໍານໍາຫນ້າທົ່ວໄປຂອງບັນຊີລາຍຊື່ທີ່ເປັນໄປໄດ້
ສໍາເລັດ (ເຊິ່ງອາດຈະຫວ່າງເປົ່າ) ກ່ອນທີ່ຈະຖີບຜ່ານບັນຊີລາຍຊື່.
output-meta (ປິດ)
ຖ້າຕັ້ງ On, readline ຈະສະແດງຕົວອັກສອນທີ່ມີຊຸດແປດບິດໂດຍກົງ
ແທນທີ່ຈະເປັນລໍາດັບ escape meta-prefixed.
ການສໍາເລັດຫນ້າ (ເທິງ)
ຖ້າຕັ້ງ On, readline ໃຊ້ພາຍໃນ ເພີ່ມເຕີມ-like pager ເພື່ອສະແດງຫນ້າຈໍຂອງ
ການສໍາເລັດທີ່ເປັນໄປໄດ້ໃນເວລາ.
print-completions-ຢຽດຕາມທາງຂວາງ (ປິດ)
ຖ້າຕັ້ງ On, readline ຈະສະແດງການສໍາເລັດດ້ວຍຄໍາວ່າຈັດຮຽງຕາມແນວນອນ
ລໍາດັບຕົວອັກສອນ, ແທນທີ່ຈະລົງຫນ້າຈໍ.
revert-all-at-newline (ປິດ)
ຖ້າຕັ້ງ On, readline ຈະຍົກເລີກການປ່ຽນແປງທັງໝົດຕໍ່ກັບເສັ້ນປະຫວັດສາດກ່ອນທີ່ຈະກັບຄືນມາເມື່ອໃດ
ຍອມຮັບສາຍ ຖືກປະຕິບັດ. ຕາມຄ່າເລີ່ມຕົ້ນ, ເສັ້ນປະຫວັດສາດອາດຈະຖືກແກ້ໄຂ ແລະຮັກສາໄວ້
ບຸກຄົນຍົກເລີກລາຍຊື່ໃນທົ່ວການໂທໄປຫາ ເສັ້ນອ່ານ.
show-all-if-ambiguous (ປິດ)
ອັນນີ້ປ່ຽນແປງພຶດຕິກຳເລີ່ມຕົ້ນຂອງໜ້າທີ່ການສຳເລັດ. ຖ້າຕັ້ງເປັນ On, ຄໍາ
ທີ່ມີຫຼາຍກວ່າຫນຶ່ງສໍາເລັດທີ່ເປັນໄປໄດ້ເຮັດໃຫ້ກົງກັນໃນລາຍຊື່
ທັນທີແທນທີ່ຈະສຽງລະຄັງ.
show-all-if-unmodified (ປິດ)
ນີ້ປ່ຽນແປງພຶດຕິກໍາເລີ່ມຕົ້ນຂອງຫນ້າທີ່ສໍາເລັດໃນຮູບແບບທີ່ຄ້າຍຄືກັນ
to show-all-if-ambiguous. ຖ້າຕັ້ງເປັນ On, ຄໍາທີ່ມີຫຼາຍກ່ວາຫນຶ່ງທີ່ເປັນໄປໄດ້
ການສໍາເລັດໂດຍບໍ່ມີການສໍາເລັດບາງສ່ວນທີ່ເປັນໄປໄດ້ (ການສໍາເລັດທີ່ເປັນໄປໄດ້ບໍ່ໄດ້ເຮັດ
ແບ່ງປັນຄໍານໍາຫນ້າທົ່ວໄປ) ເຮັດໃຫ້ການຈັບຄູ່ຖືກຈັດໃສ່ໃນທັນທີແທນທີ່ຈະເປັນ
ສຽງລະຄັງ.
show-mode-in-prompt (ປິດ)
ຖ້າຕັ້ງ On, ເພີ່ມຕົວອັກສອນໃສ່ຈຸດເລີ່ມຕົ້ນຂອງການເຕືອນທີ່ຊີ້ບອກການແກ້ໄຂ
ໂໝດ: emacs (@), vi command (:) ຫຼື vi insertion (+).
skip-completed-text (ປິດ)
ຖ້າຕັ້ງ On, ນີ້ປ່ຽນແປງພຶດຕິກໍາການສໍາເລັດໃນຕອນຕົ້ນເມື່ອໃສ່ອັນດຽວ
ຈັບຄູ່ເຂົ້າໄປໃນເສັ້ນ. ມັນເປັນການເຄື່ອນໄຫວພຽງແຕ່ໃນເວລາທີ່ປະຕິບັດສໍາເລັດໃນພາກກາງຂອງ
ຄໍາສັບໃດຫນຶ່ງ. ຖ້າເປີດໃຊ້, ເສັ້ນອ່ານບໍ່ໃສ່ຕົວອັກສອນຈາກການສໍາເລັດນັ້ນ
ຈັບຄູ່ຕົວອັກສອນຫຼັງຈາກຈຸດໃນຄໍາທີ່ສໍາເລັດ, ດັ່ງນັ້ນບາງສ່ວນຂອງຄໍາ
ການປະຕິບັດຕາມຕົວກະພິບແມ່ນບໍ່ຊ້ໍາກັນ.
ສັງເກດສະຖິຕິ (ປິດ)
ຖ້າຕັ້ງ On, ຕົວອັກສອນທີ່ສະແດງເຖິງປະເພດຂອງໄຟລ໌ທີ່ລາຍງານໂດຍ ລັດ(2) ຖືກຕໍ່ທ້າຍ
ໃສ່ຊື່ໄຟລ໌ເມື່ອລາຍຊື່ການສໍາເລັດທີ່ເປັນໄປໄດ້.
ເສັ້ນອ່ານ ເງື່ອນໄຂ ການກໍ່ສ້າງ
Readline ປະຕິບັດສິ່ງອໍານວຍຄວາມສະດວກທີ່ຄ້າຍຄືກັນກັບລັກສະນະການລວບລວມເງື່ອນໄຂ
ຂອງ C preprocessor ທີ່ອະນຸຍາດໃຫ້ການຜູກມັດທີ່ສໍາຄັນແລະການຕັ້ງຄ່າຕົວແປທີ່ຈະປະຕິບັດເປັນ
ຜົນຂອງການທົດສອບ. ມີສີ່ທິດທາງ parser ທີ່ໃຊ້.
$ຖ້າ ໄດ້ $ຖ້າ ການກໍ່ສ້າງອະນຸຍາດໃຫ້ການຜູກມັດທີ່ຈະເຮັດໄດ້ໂດຍອີງໃສ່ຮູບແບບການແກ້ໄຂ, ໄດ້
terminal ຖືກນໍາໃຊ້, ຫຼືຄໍາຮ້ອງສະຫມັກການນໍາໃຊ້ readline. ຂໍ້ຄວາມຂອງການທົດສອບ
ຂະຫຍາຍອອກໄປໃນຕອນທ້າຍຂອງເສັ້ນ; ບໍ່ຈໍາເປັນຕ້ອງມີຕົວອັກສອນເພື່ອແຍກມັນ.
ຮູບແບບການ ໄດ້ ໂໝດ= ຮູບແບບຂອງ $ຖ້າ ຄໍາສັ່ງຖືກນໍາໃຊ້ເພື່ອທົດສອບວ່າ readline ຢູ່ໃນ
ໂໝດ emacs ຫຼື vi. ອັນນີ້ອາດຈະຖືກໃຊ້ຮ່ວມກັບ ທີ່ກໍານົດໄວ້ ແຜນທີ່ຫຼັກ
ຄໍາສັ່ງ, ສໍາລັບການຍົກຕົວຢ່າງ, ກໍານົດການຜູກມັດໃນ emacs-ມາດຕະຖານ ແລະ emacs-ctlx
ແຜນທີ່ຫຼັກພຽງແຕ່ຖ້າ readline ເລີ່ມຢູ່ໃນໂໝດ emacs.
ໄລຍະ ໄດ້ ໄລຍະ= ແບບຟອມອາດຈະຖືກໃຊ້ເພື່ອລວມເອົາການຜູກມັດກະແຈສະເພາະຈຸດ,
ບາງທີອາດຈະຜູກມັດຜົນອອກຕາມລຳດັບຫຼັກໂດຍປຸ່ມຟັງຊັນຂອງ terminal.
ຄໍາຢູ່ເບື້ອງຂວາຂອງ = ຖືກທົດສອບຕໍ່ກັບທັງສອງຊື່ເຕັມຂອງ
terminal ແລະສ່ວນຂອງຊື່ terminal ກ່ອນທໍາອິດ -. ນີ້
ອະນຸຍາດໃຫ້ ແສງຕາເວັນ ກົງກັບທັງສອງ ແສງຕາເວັນ ແລະ sun-cmdຍົກຕົວຢ່າງ.
ຄໍາຮ້ອງສະຫມັກ
ໄດ້ ຄໍາຮ້ອງສະຫມັກ ການກໍ່ສ້າງແມ່ນໃຊ້ເພື່ອລວມເອົາການຕັ້ງຄ່າສະເພາະຂອງແອັບພລິເຄຊັນ.
ແຕ່ລະໂຄງການທີ່ໃຊ້ຫ້ອງສະຫມຸດ readline ກໍານົດ ຄໍາຮ້ອງສະຫມັກ ຊື່, ແລະເປັນ
ໄຟລ໌ເບື້ອງຕົ້ນສາມາດທົດສອບມູນຄ່າສະເພາະ. ນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອ
ຜູກມັດລໍາດັບທີ່ສໍາຄັນກັບຫນ້າທີ່ທີ່ເປັນປະໂຫຍດສໍາລັບໂຄງການສະເພາະ. ສໍາລັບ
ຕົວຢ່າງ, ຄໍາສັ່ງຕໍ່ໄປນີ້ເພີ່ມລໍາດັບທີ່ສໍາຄັນທີ່ອ້າງເຖິງປະຈຸບັນ
ຫຼືຄໍາທີ່ຜ່ານມາໃນ bash:
$ຖ້າ Bash
# ອ້າງເຖິງຄໍາປະຈຸບັນຫຼືກ່ອນຫນ້າ
"\C-xq": "\eb\"\ef\""
$endif
$endif ຄໍາສັ່ງນີ້, ດັ່ງທີ່ເຫັນໃນຕົວຢ່າງທີ່ຜ່ານມາ, ຢຸດເຊົາການ $ຖ້າ ຄໍາສັ່ງ.
$else ຄໍາສັ່ງໃນສາຂານີ້ $ຖ້າ ຄໍາສັ່ງຈະຖືກປະຕິບັດຖ້າການທົດສອບລົ້ມເຫລວ.
$include
ຄໍາສັ່ງນີ້ໃຊ້ເວລາຊື່ໄຟລ໌ດຽວເປັນການໂຕ້ຖຽງແລະອ່ານຄໍາສັ່ງແລະ
ຜູກມັດຈາກໄຟລ໌ນັ້ນ. ຕົວຢ່າງ, ຄໍາສັ່ງຕໍ່ໄປນີ້ຈະອ່ານ
/etc/inputrc:
$include /etc/inputrc
ຊອກຫາ
Readline ສະຫນອງຄໍາສັ່ງສໍາລັບການຊອກຫາໂດຍຜ່ານປະຫວັດສາດຄໍາສັ່ງ (ເບິ່ງ ປະຫວັດຄວາມເປັນ ຂ້າງລຸ່ມນີ້)
ສໍາລັບສາຍທີ່ມີສະຕຣິງທີ່ລະບຸໄວ້. ມີສອງຮູບແບບການຊອກຫາ: incremental ແລະ ບໍ່
incremental.
ການຄົ້ນຫາທີ່ເພີ່ມຂຶ້ນເລີ່ມຕົ້ນກ່ອນທີ່ຜູ້ໃຊ້ຈະພິມຂໍ້ຄວາມຄົ້ນຫາສໍາເລັດ. ເປັນແຕ່ລະຄົນ
ລັກສະນະຂອງສະຕຣິງການຊອກຫາແມ່ນພິມ, readline ສະແດງໃຫ້ເຫັນການເຂົ້າຕໍ່ໄປຈາກປະຫວັດສາດ
ກົງກັບສະຕຣິງທີ່ພິມມາເຖິງຕອນນັ້ນ. ການຄົ້ນຫາທີ່ເພີ່ມຂຶ້ນຕ້ອງການພຽງແຕ່ຫຼາຍຕົວອັກສອນ
ຕາມຄວາມຈໍາເປັນເພື່ອຊອກຫາການເຂົ້າປະຫວັດສາດທີ່ຕ້ອງການ. ລັກສະນະທີ່ມີຢູ່ໃນມູນຄ່າຂອງ
ຄົ້ນຫາ - terminators ຕົວແປແມ່ນໃຊ້ເພື່ອຢຸດການຄົ້ນຫາທີ່ເພີ່ມຂຶ້ນ. ຖ້ານັ້ນ
ຕົວແປບໍ່ໄດ້ຖືກກຳນົດຄ່າທີ່ຕົວລະຄອນ Escape ແລະ Control-J ຈະຢຸດຕິ
ການຊອກຫາທີ່ເພີ່ມຂຶ້ນ. Control-G ຈະຍົກເລີກການຄົ້ນຫາທີ່ເພີ່ມຂຶ້ນ ແລະຟື້ນຟູ
ສາຍຕົ້ນສະບັບ. ເມື່ອການຄົ້ນຫາຖືກຢຸດ, ປະຫວັດການປ້ອນຂໍ້ມູນທີ່ມີການຄົ້ນຫາ
string ກາຍເປັນເສັ້ນປະຈຸບັນ.
ເພື່ອຊອກຫາລາຍການທີ່ກົງກັນອື່ນໆໃນບັນຊີລາຍຊື່ປະຫວັດສາດ, ພິມ Control-S ຫຼື Control-R as
ເຫມາະສົມ. ນີ້ຈະຄົ້ນຫາຍ້ອນຫຼັງຫຼືສົ່ງຕໍ່ໃນປະຫວັດສາດສໍາລັບການເຂົ້າຕໍ່ໄປ
ກົງກັບສະຕຣິງຄົ້ນຫາທີ່ພິມມາເຖິງຕອນນັ້ນ. ລຳດັບຫຼັກອື່ນໆທີ່ຜູກມັດກັບເສັ້ນອ່ານ
ຄໍາສັ່ງຈະຢຸດການຄົ້ນຫາແລະປະຕິບັດຄໍາສັ່ງນັ້ນ. ຕົວຢ່າງ, ກ ແຖວໃໝ່ ຈະ
ຢຸດການຄົ້ນຫາແລະຍອມຮັບສາຍ, ດັ່ງນັ້ນການປະຕິບັດຄໍາສັ່ງຈາກປະຫວັດສາດ
ລາຍຊື່
Readline ຈື່ສະຕຣິງການຊອກຫາທີ່ເພີ່ມຂຶ້ນສຸດທ້າຍ. ຖ້າສອງ Control-Rs ຖືກພິມ
ໂດຍບໍ່ມີການແຊກແຊງຕົວອັກສອນທີ່ກໍານົດສະຕຣິງການຊອກຫາໃຫມ່, ການຄົ້ນຫາທີ່ຈື່ຈໍາໃດໆ
string ຖືກນໍາໃຊ້.
ການຄົ້ນຫາແບບບໍ່ເພີ່ມຈະອ່ານສະຕຣິງຄົ້ນຫາທັງໝົດກ່ອນທີ່ຈະເລີ່ມຄົ້ນຫາ
ເສັ້ນປະຫວັດສາດທີ່ກົງກັນ. ສະຕຣິງຄົ້ນຫາອາດຈະຖືກພິມໂດຍຜູ້ໃຊ້ຫຼືເປັນສ່ວນຫນຶ່ງຂອງ
ເນື້ອໃນຂອງແຖວປະຈຸບັນ.
ເສັ້ນອ່ານ ຄໍາສັ່ງ ຊື່
ຕໍ່ໄປນີ້ແມ່ນບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງແລະລໍາດັບທີ່ສໍາຄັນໃນຕອນຕົ້ນທີ່ຈະ
ທີ່ເຂົາເຈົ້າໄດ້ຖືກຜູກມັດ. ຊື່ຄໍາສັ່ງທີ່ບໍ່ມີລໍາດັບສໍາຄັນມາພ້ອມກັບແມ່ນ unbound ໂດຍ
ຄ່າເລີ່ມຕົ້ນ. ໃນຄໍາອະທິບາຍຕໍ່ໄປນີ້, ຈຸດ ຫມາຍເຖິງຕໍາແຫນ່ງຕົວກະພິບໃນປະຈຸບັນ, ແລະ
ເຄື່ອງຫມາຍ ໝາຍເຖິງຕຳແໜ່ງຕົວກະພິບທີ່ບັນທຶກໄວ້ໂດຍ ເຄື່ອງໝາຍກຳນົດ ຄໍາສັ່ງ. ຂໍ້ຄວາມລະຫວ່າງ
ຈຸດແລະເຄື່ອງຫມາຍແມ່ນຫມາຍເຖິງ ພູມິພາກ.
ຄໍາສັ່ງ ສໍາລັບການ ການເຄື່ອນຍ້າຍ
ຈຸດເລີ່ມຕົ້ນ (ຄາ)
ຍ້າຍໄປຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນປະຈຸບັນ.
ປາຍສາຍ (Ce)
ຍ້າຍໄປທ້າຍແຖວ.
forward-char (Cf)
ກ້າວໄປຂ້າງໜ້າຕົວລະຄອນ.
backward-char (Cb)
ຍ້າຍກັບຄືນໄປບ່ອນຕົວອັກສອນ.
ຄໍາຕໍ່ໄປ (Mf)
ກ້າວໄປຂ້າງຫນ້າໄປຫາທ້າຍຂອງຄໍາຕໍ່ໄປ. ຄໍາສັບຕ່າງໆແມ່ນປະກອບດ້ວຍຕົວເລກແລະຕົວເລກ
ຕົວອັກສອນ (ຕົວອັກສອນແລະຕົວເລກ).
ຄໍາກັບຄືນໄປບ່ອນ (Mb)
ຍ້າຍກັບຄືນໄປບ່ອນຈຸດເລີ່ມຕົ້ນຂອງຄໍາປະຈຸບັນຫຼືກ່ອນຫນ້າ. ຄໍາສັບຕ່າງໆແມ່ນປະກອບດ້ວຍ
ຕົວອັກສອນແລະຕົວເລກ (ຕົວອັກສອນແລະຕົວເລກ).
shell-forward-word
ກ້າວໄປຂ້າງຫນ້າໄປຫາທ້າຍຂອງຄໍາຕໍ່ໄປ. ຄໍາສັບຕ່າງໆແມ່ນ delimited ໂດຍ shell ທີ່ບໍ່ແມ່ນວົງຢືມ
metacharacters.
shell-backward-word
ຍ້າຍກັບຄືນໄປບ່ອນຈຸດເລີ່ມຕົ້ນຂອງຄໍາປະຈຸບັນຫຼືກ່ອນຫນ້າ. ຄໍາສັບຕ່າງໆແມ່ນ delimited ໂດຍ
metacharacters shell ທີ່ບໍ່ໄດ້ອ້າງອີງ.
ຈໍຈະແຈ້ງ (ຄ)
ລ້າງໜ້າຈໍອອກຈາກເສັ້ນປະຈຸບັນຢູ່ເທິງສຸດຂອງໜ້າຈໍ. ມີ
argument, ໂຫຼດຫນ້າຈໍຄືນເສັ້ນປະຈຸບັນໂດຍບໍ່ມີການ clearing ຫນ້າຈໍ.
redraw-current-line
ໂຫຼດເສັ້ນປັດຈຸບັນຄືນໃໝ່.
ຄໍາສັ່ງ ສໍາລັບການ ການຫມູນໃຊ້ ໄດ້ ປະຫວັດສາດ
ຍອມຮັບສາຍ (ສາຍໃໝ່, ກັບຄືນ)
ຍອມຮັບເສັ້ນບໍ່ວ່າຕົວກະພິບຢູ່ໃສ. ຖ້າເສັ້ນນີ້ແມ່ນບໍ່ຫວ່າງ, ເພີ່ມ
ມັນເຂົ້າໄປໃນບັນຊີລາຍຊື່ປະຫວັດສາດອີງຕາມລັດຂອງ HISTCONTROL ຕົວແປ. ຖ້າ
ເສັ້ນແມ່ນເສັ້ນປະຫວັດສາດການດັດແກ້, ຫຼັງຈາກນັ້ນຟື້ນຟູເສັ້ນປະຫວັດສາດກັບຕົ້ນສະບັບຂອງຕົນ
ລັດ.
ປະຫວັດສາດທີ່ຜ່ານມາ (Cp)
ເອົາຄໍາສັ່ງທີ່ຜ່ານມາຈາກບັນຊີລາຍຊື່ປະຫວັດສາດ, ຍ້າຍກັບຄືນໄປບ່ອນຢູ່ໃນບັນຊີລາຍຊື່.
ປະຫວັດສາດຕໍ່ໄປ (Cn)
ເອົາຄໍາສັ່ງຕໍ່ໄປຈາກບັນຊີລາຍຊື່ປະຫວັດສາດ, ກ້າວໄປຂ້າງຫນ້າໃນບັນຊີລາຍຊື່.
ການເລີ່ມຕົ້ນຂອງປະຫວັດສາດ (M-<)
ຍ້າຍໄປແຖວທຳອິດໃນປະຫວັດສາດ.
ທ້າຍຂອງປະຫວັດສາດ (M->)
ຍ້າຍໄປບ່ອນສຸດທ້າຍຂອງປະຫວັດການປ້ອນຂໍ້ມູນ, ie, ເສັ້ນທີ່ກໍາລັງເຂົ້າມາ.
reverse-search-ປະຫວັດສາດ (Cr)
ຄົ້ນຫາກັບຄືນໄປບ່ອນເລີ່ມຕົ້ນທີ່ເສັ້ນປະຈຸບັນແລະການເຄື່ອນຍ້າຍ 'ຂຶ້ນ' ຜ່ານປະຫວັດສາດເປັນ
ຈໍາເປັນ. ນີ້ແມ່ນການຊອກຫາທີ່ເພີ່ມຂຶ້ນ.
forward-search-ປະຫວັດສາດ (Cs)
ຄົ້ນຫາໄປຂ້າງຫນ້າໂດຍເລີ່ມຕົ້ນທີ່ເສັ້ນປະຈຸບັນແລະເລື່ອນ 'ລົງ' ຜ່ານປະຫວັດສາດ
ຕາມຄວາມຈໍາເປັນ. ນີ້ແມ່ນການຊອກຫາທີ່ເພີ່ມຂຶ້ນ.
ບໍ່ແມ່ນ incremental-reverse-search-history (Mp)
ຄົ້ນຫາກັບຄືນໄປບ່ອນໂດຍຜ່ານປະຫວັດສາດເລີ່ມຕົ້ນຈາກເສັ້ນປະຈຸບັນໂດຍການນໍາໃຊ້ທີ່ບໍ່ແມ່ນ.
ການຊອກຫາເພີ່ມເຕີມສໍາລັບການສະຕຣິງທີ່ສະຫນອງໃຫ້ໂດຍຜູ້ໃຊ້.
ປະຫວັດການຄົ້ນຫາທີ່ບໍ່ແມ່ນການເພີ່ມຂຶ້ນຕໍ່ຫນ້າ (ນາທີ)
ຄົ້ນຫາໄປຂ້າງຫນ້າຜ່ານປະຫວັດສາດໂດຍໃຊ້ການຄົ້ນຫາທີ່ບໍ່ແມ່ນການເພີ່ມສໍາລັບສະຕຣິງ
ສະໜອງໃຫ້ໂດຍຜູ້ໃຊ້.
ປະຫວັດການຄົ້ນຫາ
ຄົ້ນຫາຕໍ່ໄປໂດຍຜ່ານປະຫວັດສາດສໍາລັບສາຍຂອງຕົວອັກສອນລະຫວ່າງການເລີ່ມຕົ້ນ
ຂອງເສັ້ນປະຈຸບັນແລະຈຸດ. ນີ້ແມ່ນການຊອກຫາທີ່ບໍ່ເພີ່ມຂຶ້ນ.
ປະຫວັດການຄົ້ນຫາ-ຖອຍຫຼັງ
ຄົ້ນຫາກັບຄືນໄປບ່ອນໂດຍຜ່ານປະຫວັດສາດສໍາລັບສາຍຂອງຕົວອັກສອນລະຫວ່າງການເລີ່ມຕົ້ນ
ຂອງເສັ້ນປະຈຸບັນແລະຈຸດ. ນີ້ແມ່ນການຊອກຫາທີ່ບໍ່ເພີ່ມຂຶ້ນ.
yank-nth-arg (MCy)
ແຊກການໂຕ້ຖຽງທໍາອິດໃສ່ຄໍາສັ່ງກ່ອນຫນ້າ (ປົກກະຕິແລ້ວຄໍາທີສອງຢູ່ໃນ
ແຖວກ່ອນໜ້າ) ຢູ່ຈຸດ. ດ້ວຍການໂຕ້ຖຽງ n, ໃສ່ nth ຄໍາຈາກທີ່ຜ່ານມາ
ຄໍາສັ່ງ (ຄໍາທີ່ຢູ່ໃນຄໍາສັ່ງທີ່ຜ່ານມາເລີ່ມຕົ້ນດ້ວຍຄໍາ 0). ການໂຕ້ຖຽງທາງລົບ
ໃສ່ nth ຄໍາຈາກໃນຕອນທ້າຍຂອງຄໍາສັ່ງທີ່ຜ່ານມາ. ເມື່ອການໂຕ້ຖຽງ n is
computed, ການໂຕ້ຖຽງໄດ້ຖືກສະກັດອອກເປັນຖ້າຫາກວ່າ "!n"ການຂະຫຍາຍປະຫວັດສາດແມ່ນໄດ້
ລະບຸ.
yank-last-arg (ມ-., M-_)
ແຊກການໂຕ້ຖຽງສຸດທ້າຍໃສ່ຄໍາສັ່ງທີ່ຜ່ານມາ (ຄໍາສຸດທ້າຍຂອງກ່ອນຫນ້າ
ປະຫວັດການເຂົ້າ). ດ້ວຍການໂຕ້ແຍ້ງຕົວເລກ, ປະພຶດຕົວຄືກັບ yank-nth-arg.
ສືບຕໍ່ໂທຫາ yank-last-arg ຍ້າຍກັບຄືນໄປບ່ອນໂດຍຜ່ານບັນຊີລາຍຊື່ປະຫວັດສາດ, ໃສ່
ຄໍາສຸດທ້າຍ (ຫຼືຄໍາທີ່ລະບຸໄວ້ໂດຍການໂຕ້ຖຽງກັບການໂທທໍາອິດ) ຂອງແຕ່ລະແຖວໃນ
ຫັນ. ການໂຕ້ຖຽງຕົວເລກໃດໆທີ່ສະຫນອງໃຫ້ແກ່ການໂທຢ່າງຕໍ່ເນື່ອງເຫຼົ່ານີ້ກໍານົດ
ທິດທາງທີ່ຈະກ້າວໄປສູ່ປະຫວັດສາດ. ການໂຕ້ຖຽງທາງລົບປ່ຽນທິດທາງ
ຜ່ານປະຫວັດສາດ (ກັບຄືນຫຼືໄປຂ້າງຫນ້າ). ສະຖານທີ່ຂະຫຍາຍປະຫວັດສາດຖືກນໍາໃຊ້
ເພື່ອສະກັດຄໍາສຸດທ້າຍ, ຄືກັບວ່າ "!$" ຂະຫຍາຍປະຫວັດສາດໄດ້ຖືກກໍານົດ.
shell-expand-line (MCe)
ຂະຫຍາຍເສັ້ນດັ່ງທີ່ແກະເຮັດ. ນີ້ປະຕິບັດນາມແຝງແລະການຂະຫຍາຍປະຫວັດສາດເປັນ
ເຊັ່ນດຽວກັນກັບການຂະຫຍາຍຄໍາສັບ shell ທັງຫມົດ. ເບິ່ງ ປະຫວັດຄວາມເປັນ EXPANSION ຂ້າງລຸ່ມນີ້ສໍາລັບ a
ລາຍລະອຽດຂອງການຂະຫຍາຍປະຫວັດສາດ.
ເສັ້ນປະຫວັດສາດ - ຂະຫຍາຍ (M-^)
ດໍາເນີນການຂະຫຍາຍປະຫວັດສາດຢູ່ໃນເສັ້ນປະຈຸບັນ. ເບິ່ງ ປະຫວັດຄວາມເປັນ EXPANSION ຂ້າງລຸ່ມນີ້ສໍາລັບ a
ລາຍລະອຽດຂອງການຂະຫຍາຍປະຫວັດສາດ.
magic-space
ດໍາເນີນການຂະຫຍາຍປະຫວັດສາດຢູ່ໃນເສັ້ນປະຈຸບັນແລະໃສ່ຊ່ອງຫວ່າງ. ເບິ່ງ ປະຫວັດຄວາມເປັນ
EXPANSION ຂ້າງລຸ່ມນີ້ສໍາລັບລາຍລະອຽດຂອງການຂະຫຍາຍປະຫວັດສາດ.
alias-expand-line
ດໍາເນີນການຂະຫຍາຍນາມແຝງຢູ່ໃນເສັ້ນປະຈຸບັນ. ເບິ່ງ ນາມແຝງ ຂ້າງເທິງສໍາລັບຄໍາອະທິບາຍ
ຂອງການຂະຫຍາຍນາມແຝງ.
history-and-alias-expand-line
ປະຕິບັດການຂະຫຍາຍປະຫວັດສາດແລະນາມແຝງຢູ່ໃນເສັ້ນປະຈຸບັນ.
insert-last-argument (ມ-., M-_)
ຄຳສັບຄ້າຍຄືກັນສຳລັບ yank-last-arg.
ດໍາເນີນການ-and-get-ຕໍ່ໄປ (ຮ່ວມ)
ຍອມຮັບເສັ້ນປະຈຸບັນສໍາລັບການປະຕິບັດແລະດຶງເອົາເສັ້ນຕໍ່ໄປທີ່ກ່ຽວຂ້ອງກັບ
ເສັ້ນປະຈຸບັນຈາກປະຫວັດສາດສໍາລັບການດັດແກ້. ການໂຕ້ຖຽງໃດໆແມ່ນຖືກລະເລີຍ.
edit-and-execute-command (C-xC-e)
ຮຽກຮ້ອງໃຫ້ບັນນາທິການຢູ່ໃນເສັ້ນຄໍາສັ່ງປະຈຸບັນ, ແລະປະຕິບັດຜົນໄດ້ຮັບເປັນ shell
ຄຳ ສັ່ງ. Bash ຄວາມພະຍາຍາມທີ່ຈະຮຽກຮ້ອງ $VISUAL, $ EDITOR, ແລະ emacs ເປັນບັນນາທິການ, ໃນ
ຄໍາສັ່ງນັ້ນ.
ຄໍາສັ່ງ ສໍາລັບການ ການປ່ຽນແປງ ຂໍ້ຄວາມ
ທ້າຍຂອງໄຟລ໌ (ປົກກະຕິແລ້ວ CD)
ຕົວອັກສອນຊີ້ບອກເຖິງການສິ້ນສຸດຂອງໄຟລ໌ທີ່ກໍານົດໄວ້, ສໍາລັບການຍົກຕົວຢ່າງ, ໂດຍ ``stty´. ຖ້ານີ້
ຕົວອັກສອນຖືກອ່ານເມື່ອບໍ່ມີຕົວອັກສອນຢູ່ໃນເສັ້ນ, ແລະຈຸດແມ່ນຢູ່ທີ່ຈຸດ
ການເລີ່ມຕົ້ນຂອງເສັ້ນ, Readline ແປວ່າມັນເປັນຈຸດສິ້ນສຸດຂອງການປ້ອນຂໍ້ມູນແລະຜົນຕອບແທນ EOF.
ລຶບ-char (ຊີດີ)
ລຶບຕົວອັກສອນໃນຈຸດ. ຖ້າຟັງຊັນນີ້ຖືກຜູກມັດກັບລັກສະນະດຽວກັນກັບ
tty ໄດ້ EOF ລັກສະນະ, ເປັນ Cd ໂດຍທົ່ວໄປແລ້ວແມ່ນ, ເບິ່ງຂ້າງເທິງສໍາລັບຜົນກະທົບ.
backward-delete-char (Rubout)
ລຶບຕົວອັກສອນທີ່ຢູ່ເບື້ອງຫຼັງຕົວກະພິບ. ເມື່ອມີການໂຕ້ຖຽງຕົວເລກ, ໃຫ້ບັນທຶກ
ລຶບຂໍ້ຄວາມຢູ່ໃນວົງການຂ້າ.
forward-backward-delete-char
ລຶບຕົວອັກສອນພາຍໃຕ້ຕົວກະພິບ, ເວັ້ນເສຍແຕ່ວ່າຕົວກະພິບຢູ່ທ້າຍແຖວ,
ໃນກໍລະນີດັ່ງກ່າວນີ້, ລັກສະນະທາງຫລັງຂອງຕົວກະພິບໄດ້ຖືກລຶບ.
quoted-insert (Cq, ຊິວະປະຫວັດ)
ຕື່ມຕົວອັກສອນຕໍ່ໄປທີ່ພິມໃສ່ໃນແຖວ verbatim. ນີ້ແມ່ນວິທີການໃສ່
ລັກສະນະເຊັ່ນ Cq, ຍົກຕົວຢ່າງ.
ແຖບແຊກ (ຊິວະປະຫວັດ ແຖບ)
ໃສ່ຕົວອັກສອນແຖບ.
ໃສ່ຕົນເອງ (ກ, b, A, 1, !, ... )
ໃສ່ຕົວອັກສອນທີ່ພິມ.
transpose-chars (Ct)
ລາກຕົວລະຄອນກ່ອນຊີ້ໄປໜ້າເທິງຕົວລະຄອນຢູ່ຈຸດ, ຍ້າຍຈຸດ
ໄປຂ້າງຫນ້າເຊັ່ນດຽວກັນ. ຖ້າຈຸດແມ່ນຢູ່ໃນຕອນທ້າຍຂອງເສັ້ນ, ຫຼັງຈາກນັ້ນນີ້ transposes ສອງ
ຕົວອັກສອນກ່ອນຈຸດ. ການໂຕ້ຖຽງທາງລົບບໍ່ມີຜົນກະທົບ.
transpose - ຄໍາ (ແມັດ)
ລາກຄຳກ່ອນຊີ້ຜ່ານຄຳຫຼັງຈາກຈຸດ, ຍ້າຍຈຸດໄປໃສ່ຄຳນັ້ນ
ຄືກັນ. ຖ້າຈຸດແມ່ນຢູ່ໃນຕອນທ້າຍຂອງເສັ້ນ, ນີ້ແປສອງຄໍາສຸດທ້າຍ
ເສັ້ນ.
ໂຕພິມໃຫຍ່ (ມ)
ຕົວພິມໃຫຍ່ຂອງຄໍາປະຈຸບັນ (ຫຼືຕໍ່ໄປນີ້). ດ້ວຍການໂຕ້ຖຽງທາງລົບ, ພິມຕົວພິມໃຫຍ່
ຄໍາທີ່ຜ່ານມາ, ແຕ່ບໍ່ຍ້າຍຈຸດ.
ຄໍາຫຍໍ້ (ມລ)
ຕົວພິມນ້ອຍຂອງຄໍາປະຈຸບັນ (ຫຼືຕໍ່ໄປນີ້). ດ້ວຍການໂຕ້ຖຽງທາງລົບ, ໃຫ້ພິມຕົວນ້ອຍລົງ
ຄໍາທີ່ຜ່ານມາ, ແຕ່ບໍ່ຍ້າຍຈຸດ.
ພິມຕົວພິມໃຫຍ່ (Mc)
ໃຊ້ຕົວພິມໃຫຍ່ຂອງຄໍາປະຈຸບັນ (ຫຼືຕໍ່ໄປນີ້). ດ້ວຍການໂຕ້ຖຽງທາງລົບ, ພິມຕົວພິມໃຫຍ່
ຄໍາທີ່ຜ່ານມາ, ແຕ່ບໍ່ຍ້າຍຈຸດ.
ໂໝດຂຽນທັບ
ສະຫຼັບໂໝດຂຽນທັບ. ດ້ວຍການໂຕ້ແຍ້ງຕົວເລກໃນທາງບວກທີ່ຊັດເຈນ, ປ່ຽນເປັນ
ໂໝດຂຽນທັບ. ດ້ວຍອາກິວເມັນຕົວເລກທີ່ບໍ່ເປັນບວກຢ່າງຈະແຈ້ງ, ສະຫຼັບໄປໃສ່
ໂໝດ. ຄໍາສັ່ງນີ້ມີຜົນກະທົບພຽງແຕ່ emacs ຮູບແບບ; vi ໂໝດຂຽນທັບແຕກຕ່າງກັນ.
ແຕ່ລະໂທຫາ ແຖວອ່ານ() ເລີ່ມຢູ່ໃນໂໝດແຊກ. ໃນໂໝດຂຽນທັບ, ຕົວອັກສອນຖືກຜູກມັດ
to ໃສ່ຕົນເອງ ແທນທີ່ຂໍ້ຄວາມຢູ່ຈຸດແທນທີ່ຈະຍູ້ຂໍ້ຄວາມໄປທາງຂວາ.
ລັກສະນະຜູກພັນກັບ backward-delete-char ແທນທີ່ຕົວອັກສອນກ່ອນຈຸດດ້ວຍ a
ຊ່ອງ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຄໍາສັ່ງນີ້ບໍ່ໄດ້ຖືກຜູກມັດ.
ຂ້າຕາຍ ແລະ ຍາງ
ເສັ້ນຂ້າ (ຄກ)
ຂ້າຂໍ້ຄວາມຈາກຈຸດໄປຫາທ້າຍແຖວ.
backward-kill-line (ຄx Rubout)
ຂ້າກັບຄືນໄປຫາຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນ.
unix-line-discard (ກູ)
ຂ້າກັບຄືນຈາກຈຸດໄປຫາຈຸດເລີ່ມຕົ້ນຂອງເສັ້ນ. ຂໍ້ຄວາມທີ່ຖືກຂ້າຖືກບັນທຶກໄວ້
ວົງການຂ້າ.
ຂ້າທັງຫມົດເສັ້ນ
ຂ້າຕົວລະຄອນທັງໝົດໃນແຖວປັດຈຸບັນ, ບໍ່ວ່າຈຸດນັ້ນຢູ່ໃສ.
ຂ້າຄໍາ (Md)
ຂ້າຈາກຈຸດທີ່ຈະສິ້ນສຸດຂອງຄໍາສັບຕ່າງໆໃນປະຈຸບັນ, ຫຼືຖ້າຫາກວ່າລະຫວ່າງຄໍາສັບຕ່າງໆ, ໄປທີ່ສຸດຂອງ
ຄໍາຕໍ່ໄປ. ຂອບເຂດຂອງຄໍາສັບແມ່ນຄືກັນກັບທີ່ຖືກນໍາໃຊ້ໂດຍ ຄໍາຕໍ່ໄປ.
backward-kill-word (M-Rubout)
ຂ້າຄໍາທີ່ຢູ່ເບື້ອງຫຼັງຈຸດ. ຂອບເຂດຂອງຄໍາສັບແມ່ນຄືກັນກັບທີ່ຖືກນໍາໃຊ້ໂດຍ
ຄໍາກັບຄືນໄປບ່ອນ.
shell-kill-word (Md)
ຂ້າຈາກຈຸດທີ່ຈະສິ້ນສຸດຂອງຄໍາສັບຕ່າງໆໃນປະຈຸບັນ, ຫຼືຖ້າຫາກວ່າລະຫວ່າງຄໍາສັບຕ່າງໆ, ໄປທີ່ສຸດຂອງ
ຄໍາຕໍ່ໄປ. ຂອບເຂດຂອງຄໍາສັບແມ່ນຄືກັນກັບທີ່ຖືກນໍາໃຊ້ໂດຍ shell-forward-word.
shell-backward-kill-word (M-Rubout)
ຂ້າຄໍາທີ່ຢູ່ເບື້ອງຫຼັງຈຸດ. ຂອບເຂດຂອງຄໍາສັບແມ່ນຄືກັນກັບທີ່ຖືກນໍາໃຊ້ໂດຍ
shell-backward-word.
unix-word-rubout (Cw)
ຂ້າຄໍາທີ່ຢູ່ເບື້ອງຫລັງຈຸດ, ການນໍາໃຊ້ຊ່ອງຫວ່າງສີຂາວເປັນເຂດແດນຄໍາ. ຂໍ້ຄວາມທີ່ຖືກຂ້າຕາຍ
ຖືກບັນທຶກໄວ້ໃນວົງການຂ້າ.
unix-filename-rubout
ຂ້າຄໍາທີ່ຢູ່ເບື້ອງຫຼັງຈຸດ, ການນໍາໃຊ້ຊ່ອງຫວ່າງສີຂາວແລະລັກສະນະ slash ເປັນຄໍາສັບຕ່າງໆ
ເຂດແດນ. ຂໍ້ຄວາມທີ່ຖືກຂ້າຖືກບັນທຶກໄວ້ໃນວົງການຂ້າ.
delete-horizontal-space (M-\)
ລຶບຊ່ອງຫວ່າງທັງໝົດ ແລະແຖບທີ່ຢູ່ອ້ອມຮອບຈຸດ.
ພາກພື້ນຂ້າ
ຂ້າຂໍ້ຄວາມໃນພາກພື້ນປະຈຸບັນ.
copy-region-as-kill
ສຳເນົາຂໍ້ຄວາມໃນພາກພື້ນໃສ່ kill buffer.
copy-backward-word
ສຳເນົາຄຳສັບກ່ອນຊີ້ໄປທີ່ kill buffer. ຂອບເຂດຂອງຄໍາສັບແມ່ນຄືກັນກັບ
ຄໍາກັບຄືນໄປບ່ອນ.
copy-forward-word
ຄັດລອກຄໍາຕໍ່ໄປນີ້ຊີ້ໄປຫາ kill buffer. ຄຳວ່າ ຂອບເຂດແມ່ນຄືກັນ
as ຄໍາຕໍ່ໄປ.
yank (ຊີ)
Yank ເທິງຂອງວົງ kill ເຂົ້າໄປໃນ buffer ຢູ່ຈຸດ.
yank-pop (ຂອງຂ້ອຍ)
ໝຸນວົງແຫວນຂ້າ, ແລະຢຽດເທິງໃໝ່. ພຽງແຕ່ເຮັດວຽກດັ່ງຕໍ່ໄປນີ້ yank or yank-pop.
Numeric Arguments
digit-argument (M-0, M-1, ..., M--)
ເພີ່ມຕົວເລກນີ້ໃສ່ອາກິວເມັນທີ່ສະສົມແລ້ວ, ຫຼືເລີ່ມການໂຕ້ຖຽງໃໝ່. M--
ເລີ່ມການໂຕ້ຖຽງທາງລົບ.
universal-argument
ນີ້ແມ່ນວິທີອື່ນເພື່ອລະບຸການໂຕ້ຖຽງ. ຖ້າຄໍາສັ່ງນີ້ແມ່ນປະຕິບັດຕາມຫນຶ່ງຫຼື
ຕົວເລກເພີ່ມເຕີມ, ທາງເລືອກທີ່ມີເຄື່ອງຫມາຍລົບຊັ້ນນໍາ, ຕົວເລກເຫຼົ່ານັ້ນກໍານົດຕົວເລກ
ການໂຕ້ຖຽງ. ຖ້າຄໍາສັ່ງຖືກປະຕິບັດຕາມຕົວເລກ, ດໍາເນີນການ universal-argument ອີກເທື່ອຫນຶ່ງ
ສິ້ນສຸດການໂຕ້ຖຽງຕົວເລກ, ແຕ່ຖືກລະເລີຍ. ເປັນກໍລະນີພິເສດ, ຖ້າຫາກວ່ານີ້
ຄໍາສັ່ງແມ່ນປະຕິບັດຕາມທັນທີໂດຍຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກຫຼືລົບ
sign, argument count ສໍາລັບຄໍາສັ່ງຕໍ່ໄປແມ່ນຄູນດ້ວຍສີ່. ການໂຕ້ຖຽງ
count ໃນເບື້ອງຕົ້ນແມ່ນຫນຶ່ງ, ສະນັ້ນການປະຕິບັດຫນ້າທີ່ນີ້ຄັ້ງທໍາອິດເຮັດໃຫ້ການ
ການໂຕ້ຖຽງນັບສີ່, ຄັ້ງທີສອງເຮັດໃຫ້ການໂຕ້ຖຽງນັບສິບຫົກ, ແລະອື່ນໆ.
ສຳ ເລັດ
ສົມບູນ (TAB)
ພະຍາຍາມເຮັດສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ. Bash ຄວາມພະຍາຍາມສໍາເລັດ
ການປິ່ນປົວຂໍ້ຄວາມເປັນຕົວແປ (ຖ້າຂໍ້ຄວາມເລີ່ມຕົ້ນດ້ວຍ $), ຊື່ຜູ້ໃຊ້ (ຖ້າຂໍ້ຄວາມ
ເລີ່ມຕົ້ນດ້ວຍ ~), hostname (ຖ້າຂໍ້ຄວາມເລີ່ມຕົ້ນດ້ວຍ @), ຫຼືຄໍາສັ່ງ (ລວມທັງນາມແຝງ
ແລະຫນ້າທີ່) ໃນທາງກັບກັນ. ຖ້າບໍ່ມີອັນໃດອັນໃດອັນໃດອັນໃດອັນໜຶ່ງທີ່ກົງກັນ, ການສຳເລັດຊື່ໄຟລ໌ແມ່ນ
ພະຍາຍາມ.
ການສໍາເລັດທີ່ເປັນໄປໄດ້ (ມ-?)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ.
insert-completions (M-*)
ໃສ່ຄວາມສຳເລັດທັງໝົດຂອງຂໍ້ຄວາມກ່ອນຈຸດທີ່ຈະຖືກສ້າງຂຶ້ນໂດຍ
ການສໍາເລັດທີ່ເປັນໄປໄດ້.
ເມນູສໍາເລັດ
ຄ້າຍຄືກັບ ສົມບູນ, ແຕ່ແທນທີ່ຄໍາທີ່ຈະສໍາເລັດດ້ວຍການຈັບຄູ່ດຽວຈາກ
ບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້. ການປະຕິບັດຊ້ໍາຂອງ ເມນູສໍາເລັດ ຂັ້ນຕອນ
ໂດຍຜ່ານບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້, ໃສ່ແຕ່ລະກົງກັນ. ໃນຕອນທ້າຍ
ຂອງບັນຊີລາຍການຂອງການສໍາເລັດ, ລະຄັງແມ່ນ rung (ຂຶ້ນກັບການຕັ້ງຄ່າຂອງ ແບບລະຄັງ)
ແລະຂໍ້ຄວາມຕົ້ນສະບັບຖືກຟື້ນຟູຄືນມາ. ການໂຕ້ຖຽງຂອງ n ຍ້າຍ n ຕໍາແຫນ່ງຂ້າງຫນ້າໃນ
ບັນຊີລາຍຊື່ຂອງການແຂ່ງຂັນ; ການໂຕ້ຖຽງທາງລົບອາດຈະຖືກໃຊ້ເພື່ອເລື່ອນກັບຫຼັງຜ່ານ
ບັນຊີລາຍຊື່. ຄໍາສັ່ງນີ້ແມ່ນມີຈຸດປະສົງທີ່ຈະຜູກມັດ TAB, ແຕ່ບໍ່ຖືກຜູກມັດໂດຍຄ່າເລີ່ມຕົ້ນ.
menu-complete-backward
ຕົວຕົນຕໍ່ ເມນູສໍາເລັດ, ແຕ່ຍ້າຍກັບຄືນໄປບ່ອນໂດຍຜ່ານບັນຊີລາຍຊື່ທີ່ເປັນໄປໄດ້
ສໍາເລັດ, ເປັນຖ້າຫາກວ່າ ເມນູສໍາເລັດ ໄດ້ຮັບການໂຕ້ຖຽງທາງລົບ. ຄໍາສັ່ງນີ້
ບໍ່ໄດ້ຖືກຜູກມັດໂດຍຄ່າເລີ່ມຕົ້ນ.
ລຶບ char-or-list
ລຶບຕົວອັກສອນພາຍໃຕ້ຕົວກະພິບ ຖ້າບໍ່ແມ່ນຢູ່ຕົ້ນ ຫຼື ທ້າຍແຖວ
(ຄື ລຶບ-char). ຖ້າຢູ່ໃນຕອນທ້າຍຂອງເສັ້ນ, ປະຕິບັດຕົວດຽວກັນກັບ
ການສໍາເລັດທີ່ເປັນໄປໄດ້. ຄໍາສັ່ງນີ້ບໍ່ໄດ້ຖືກຜູກມັດໂດຍຄ່າເລີ່ມຕົ້ນ.
ຊື່ໄຟລ໌ທີ່ສົມບູນ (M-/)
ພະຍາຍາມເຮັດສໍາເລັດຊື່ໄຟລ໌ໃນຂໍ້ຄວາມກ່ອນຈຸດ.
possible-filename-completions (ຄx /)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນຊື່ໄຟລ໌.
ຊື່ຜູ້ໃຊ້ທີ່ສົມບູນ (M-~)
ພະຍາຍາມສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນຊື່ຜູ້ໃຊ້.
possible-username-completions (ຄx ~)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນຊື່ຜູ້ໃຊ້.
ຕົວແປທີ່ສົມບູນ (M-$)
ພະຍາຍາມສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ, ຖືວ່າມັນເປັນຕົວແປຂອງແກະ.
possible-variable-completions (ຄx $)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນແກະ
ຕົວແປ.
ຊື່ເຈົ້າພາບທີ່ສົມບູນ (M-@)
ພະຍາຍາມສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນ hostname.
possible-hostname-completions (ຄx @)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນ hostname.
ຄໍາສັ່ງສໍາເລັດ (ມ-!)
ພະຍາຍາມສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນຊື່ຄໍາສັ່ງ.
ການສໍາເລັດຄໍາສັ່ງພະຍາຍາມຈັບຄູ່ຂໍ້ຄວາມຕໍ່ກັບນາມແຝງ, ຄໍາທີ່ສະຫງວນໄວ້,
ຟັງຊັນ shell, shell buildins, ແລະສຸດທ້າຍສາມາດປະຕິບັດຊື່ໄຟລ໌, ໃນຄໍາສັ່ງນັ້ນ.
ເປັນໄປໄດ້-command-completions (ຄx !)
ບອກການສໍາເລັດທີ່ເປັນໄປໄດ້ຂອງຂໍ້ຄວາມກ່ອນຈຸດ, ປະຕິບັດມັນເປັນຄໍາສັ່ງ
ຊື່
dynamic-complete-history (M-TAB)
ພະຍາຍາມສໍາເລັດໃນຂໍ້ຄວາມກ່ອນຈຸດ, ປຽບທຽບຂໍ້ຄວາມຕໍ່ກັບເສັ້ນຈາກ
ບັນຊີລາຍຊື່ປະຫວັດສາດສໍາລັບການແຂ່ງຂັນສໍາເລັດທີ່ເປັນໄປໄດ້.
dabbrev-ຂະຫຍາຍ
ພະຍາຍາມເຮັດສໍາເລັດເມນູໃນຂໍ້ຄວາມກ່ອນຈຸດ, ປຽບທຽບຂໍ້ຄວາມກັບແຖວ
ຈາກບັນຊີລາຍຊື່ປະຫວັດສາດສໍາລັບການແຂ່ງຂັນສໍາເລັດທີ່ເປັນໄປໄດ້.
ຄົບຊຸດ (M-{)
ປະຕິບັດການສໍາເລັດຊື່ໄຟລ໌ແລະໃສ່ບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້ປິດ
ພາຍໃນວົງເລັບດັ່ງນັ້ນບັນຊີລາຍຊື່ແມ່ນມີຢູ່ໃນແກະ (ເບິ່ງ Brace ການຂະຫຍາຍຕົວ ຂ້າງເທິງ).
keyboard ມາໂຄຣ
start-kbd-macro (ຄx ()
ເລີ່ມຕົ້ນບັນທຶກຕົວອັກສອນທີ່ພິມເຂົ້າໃນມະຫາພາກແປ້ນພິມປະຈຸບັນ.
end-kbd-macro (ຄx ))
ຢຸດການບັນທຶກຕົວອັກສອນທີ່ພິມເຂົ້າໃນມະຫາພາກແປ້ນພິມປະຈຸບັນ ແລະເກັບຮັກສາ
ຄໍານິຍາມ.
call-last-kbd-macro (ຄx e)
Re-execute the last keyboard macro ກໍານົດ, ໂດຍການເຮັດໃຫ້ຕົວອັກສອນໃນ macro ໄດ້
ປະກົດວ່າພິມຢູ່ແປ້ນພິມ.
print-last-kbd-macro ()
ພິມມະຫາພາກແປ້ນພິມທີ່ກຳນົດໄວ້ໃນຮູບແບບທີ່ເໝາະສົມກັບ inputrc ຍື່ນ.
Miscellaneous
re-read-init-file (ຄx Cr)
ອ່ານໃນເນື້ອໃນຂອງ inputrc ໄຟລ໌, ແລະລວມເອົາການຜູກມັດຫຼືຕົວແປໃດໆ
ວຽກທີ່ພົບເຫັນຢູ່ທີ່ນັ້ນ.
ເອົາລູກອອກ (Cg)
ຍົກເລີກຄໍາສັ່ງການແກ້ໄຂໃນປະຈຸບັນແລະກະດິ່ງລະຄັງຂອງສະຖານທີ່ (ຂຶ້ນກັບ
ການຕັ້ງຄ່າຂອງ ແບບລະຄັງ).
ສະບັບພິມໃຫຍ່ (ມາ, Mb, M-x, ... )
ຖ້າລັກສະນະ metafied x ເປັນຕົວພິມນ້ອຍ, ດໍາເນີນການຄໍາສັ່ງທີ່ຜູກມັດກັບ
ຕົວພິມໃຫຍ່ທີ່ສອດຄ້ອງກັນ.
prefix-meta (ESC)
Metafy ຕົວອັກສອນຕໍ່ໄປທີ່ພິມ. ESC f ເທົ່າກັບ Meta-f.
ຍົກເລີກ (ຄ-_, Cx Cu)
ການຍົກເລີກທີ່ເພີ່ມຂຶ້ນ, ຈື່ໄວ້ແຍກຕ່າງຫາກສໍາລັບແຕ່ລະແຖວ.
revert-line (ທ້າວ)
ຍົກເລີກການປ່ຽນແປງທັງໝົດໃນແຖວນີ້. ນີ້ແມ່ນຄ້າຍຄືການປະຕິບັດ ຍົກເລີກ ຄໍາສັ່ງພຽງພໍ
ເວລາທີ່ຈະກັບຄືນເສັ້ນໄປສູ່ສະຖານະເບື້ອງຕົ້ນຂອງມັນ.
tilde-ຂະຫຍາຍ (M-&)
ດໍາເນີນການຂະຫຍາຍ tilde ໃນຄໍາປະຈຸບັນ.
ເຄື່ອງໝາຍກຳນົດ (C-@, ມ- )
ກໍານົດເຄື່ອງຫມາຍໃສ່ຈຸດ. ຖ້າມີການສະຫນອງການໂຕ້ຖຽງຕົວເລກ, ເຄື່ອງໝາຍຖືກຕັ້ງເປັນ
ຕໍາແຫນ່ງນັ້ນ.
ຈຸດແລກປ່ຽນ ແລະເຄື່ອງໝາຍ (ຄx Cx)
ແລກປ່ຽນຈຸດທີ່ມີເຄື່ອງຫມາຍ. ຕຳແໜ່ງຕົວກະພິບປັດຈຸບັນຖືກຕັ້ງເປັນທີ່ບັນທຶກໄວ້
ຕໍາແຫນ່ງ, ແລະຕໍາແຫນ່ງຕົວກະພິບເກົ່າຖືກບັນທຶກເປັນເຄື່ອງຫມາຍ.
ຄົ້ນຫາລັກສະນະ (C-])
ຕົວອັກສອນຖືກອ່ານ ແລະຈຸດຖືກຍ້າຍໄປທີ່ປະກົດຕົວຕໍ່ໄປຂອງຕົວອັກສອນນັ້ນ. ກ
ການຊອກຫາການນັບລົບສໍາລັບການປະກົດຕົວທີ່ຜ່ານມາ.
ລັກສະນະຄົ້ນຫາກັບຄືນໄປບ່ອນ (MC-])
ຕົວອັກສອນຖືກອ່ານ ແລະຈຸດຖືກຍ້າຍໄປທີ່ເຫດການກ່ອນໜ້າຂອງສິ່ງນັ້ນ
ລັກສະນະ. ການນັບທາງລົບຊອກຫາການປະກົດຕົວຕໍ່ໄປ.
ຂ້າມ-csi-ລໍາດັບ
ອ່ານຕົວອັກສອນທີ່ພຽງພໍເພື່ອບໍລິໂພກລໍາດັບຫຼາຍປຸ່ມເຊັ່ນ: ທີ່ກໍານົດໄວ້ສໍາລັບ
ກະແຈເຊັ່ນ: ຫນ້າທໍາອິດແລະສິ້ນສຸດ. ລໍາດັບດັ່ງກ່າວເລີ່ມຕົ້ນດ້ວຍຕົວຊີ້ວັດລໍາດັບການຄວບຄຸມ
(CSI), ປົກກະຕິແລ້ວ ESC-[. ຖ້າລໍາດັບນີ້ຖືກຜູກມັດກັບ "\[", ປຸ່ມທີ່ຜະລິດແບບນັ້ນ
ລໍາດັບຈະບໍ່ມີຜົນກະທົບເວັ້ນເສຍແຕ່ຈະຜູກມັດຢ່າງຊັດເຈນກັບຄໍາສັ່ງ readline,
ແທນທີ່ຈະໃສ່ຕົວອັກສອນ stray ເຂົ້າໄປໃນ buffer ການແກ້ໄຂ. ນີ້ແມ່ນ unbound ໂດຍ
ຄ່າເລີ່ມຕົ້ນ, ແຕ່ປົກກະຕິແລ້ວຖືກຜູກມັດກັບ ESC-[.
insert-comment (M-#)
ໂດຍບໍ່ມີການໂຕ້ຖຽງຕົວເລກ, ມູນຄ່າຂອງເສັ້ນອ່ານ ຄໍາຄິດເຫັນ - ເລີ່ມຕົ້ນ ຕົວແປແມ່ນ
ໃສ່ໃນຕອນຕົ້ນຂອງເສັ້ນປະຈຸບັນ. ຖ້າມີການສະຫນອງການໂຕ້ຖຽງຕົວເລກ,
ຄໍາສັ່ງນີ້ເຮັດຫນ້າທີ່ເປັນການສະຫຼັບ: ຖ້າຫາກວ່າຕົວອັກສອນໃນຕອນຕົ້ນຂອງເສັ້ນເຮັດ
ບໍ່ກົງກັບມູນຄ່າຂອງ ຄໍາຄິດເຫັນ - ເລີ່ມຕົ້ນ, ມູນຄ່າຖືກໃສ່, ຖ້າບໍ່ດັ່ງນັ້ນ
ຕົວອັກສອນໃນ ຄໍາຄິດເຫັນ - ເລີ່ມຕົ້ນ ຖືກລົບອອກຈາກຈຸດເລີ່ມຕົ້ນຂອງແຖວ. ໃນບໍ່ວ່າຈະ
ກໍລະນີ, ສາຍແມ່ນໄດ້ຮັບການຍອມຮັບເປັນຖ້າຫາກວ່າເສັ້ນໃຫມ່ໄດ້ຮັບການພິມ. ຄ່າເລີ່ມຕົ້ນຂອງ
ຄໍາຄິດເຫັນ - ເລີ່ມຕົ້ນ ເຮັດໃຫ້ຄໍາສັ່ງນີ້ເຮັດໃຫ້ເສັ້ນປະຈຸບັນເປັນຄໍາຄິດຄໍາເຫັນ shell. ຖ້າ ກ
argument ຕົວເລກເຮັດໃຫ້ຕົວອັກສອນຄໍາເຫັນຖືກໂຍກຍ້າຍ, ເສັ້ນຈະເປັນ
ປະຕິບັດໂດຍ shell ໄດ້.
glob-complete-word (ມລກ)
ຄໍາກ່ອນຈຸດຖືກປະຕິບັດເປັນຮູບແບບສໍາລັບການຂະຫຍາຍຊື່ເສັ້ນທາງ, ມີ
ເຄື່ອງໝາຍດາວຖືກຕໍ່ທ້າຍໂດຍຫຍໍ້. ຮູບແບບນີ້ຖືກໃຊ້ເພື່ອສ້າງລາຍການທີ່ກົງກັນ
ຊື່ໄຟລ໌ສໍາລັບການສໍາເລັດທີ່ເປັນໄປໄດ້.
glob-expand-word (ຄx *)
ຄໍາກ່ອນຈຸດຖືກປະຕິບັດເປັນຮູບແບບສໍາລັບການຂະຫຍາຍຊື່ເສັ້ນທາງ, ແລະບັນຊີລາຍຊື່
ຊື່ໄຟລ໌ທີ່ກົງກັນຖືກໃສ່, ແທນທີ່ຄໍາ. ຖ້າການໂຕ້ຖຽງຕົວເລກແມ່ນ
ສະໜອງໃຫ້, ມີເຄື່ອງໝາຍດາວຖືກຕໍ່ທ້າຍກ່ອນທີ່ຈະຂະຫຍາຍຊື່ເສັ້ນທາງ.
glob-list-ຂະຫຍາຍ (ຄx g)
ບັນຊີລາຍຊື່ຂອງການຂະຫຍາຍຕົວທີ່ຈະໄດ້ຮັບການສ້າງຂຶ້ນໂດຍ glob-expand-word is
ຖືກສະແດງ, ແລະເສັ້ນຖືກແຕ້ມຄືນ. ຖ້າອາກິວເມັນຕົວເລກຖືກສະໜອງໃຫ້, ເປັນເຄື່ອງໝາຍດາວ
ຖືກຕໍ່ທ້າຍກ່ອນທີ່ຈະຂະຫຍາຍຊື່ເສັ້ນທາງ.
dump functions
ພິມທຸກຟັງຊັນແລະການຜູກມັດຫຼັກຂອງພວກມັນໃສ່ສາຍສົ່ງຜົນອອກຂອງເສັ້ນອ່ານ.
ຖ້າມີການສະຫນອງການໂຕ້ຖຽງຕົວເລກ, ຜົນຜະລິດຈະຖືກຈັດຮູບແບບໃນລັກສະນະທີ່ມັນ
ສາມາດເຮັດໄດ້ສ່ວນຫນຶ່ງຂອງ inputrc ຍື່ນ.
dump-ຕົວແປ
ພິມຕົວແປການອ່ານແຖວທີ່ສາມາດຕັ້ງໄດ້ທັງໝົດ ແລະຄ່າຂອງພວກມັນໃສ່ແຖວອ່ານ
ກະແສຜົນຜະລິດ. ຖ້າມີການສະຫນອງການໂຕ້ຖຽງຕົວເລກ, ຜົນຜະລິດຈະຖືກຈັດຮູບແບບໃນແບບນັ້ນ
ວິທີການທີ່ມັນສາມາດເປັນສ່ວນຫນຶ່ງຂອງ inputrc ຍື່ນ.
dump-macro
ພິມທຸກລຳດັບຫຼັກ readline ທີ່ຜູກມັດກັບ macro ແລະ strings
ຜົນຜະລິດ. ຖ້າມີການສະຫນອງການໂຕ້ຖຽງຕົວເລກ, ຜົນຜະລິດຈະຖືກຈັດຮູບແບບໃນລັກສະນະດັ່ງກ່າວ
ວ່າມັນສາມາດເປັນສ່ວນຫນຶ່ງຂອງ inputrc ຍື່ນ.
ສະບັບສະແດງ-shell (ຄx ຊິວະປະຫວັດ)
ສະແດງຂໍ້ມູນສະບັບກ່ຽວກັບຕົວຢ່າງປັດຈຸບັນຂອງ bash.
Programmable ສໍາເລັດ
ໃນເວລາທີ່ການສໍາເລັດຄໍາສັບແມ່ນພະຍາຍາມສໍາລັບການໂຕ້ຖຽງກັບຄໍາສັ່ງສໍາລັບການສໍາເລັດ
ສະເພາະ (ກ compspec) ໄດ້ຖືກກໍານົດໂດຍການນໍາໃຊ້ ສົມບູນ builtin (ເບິ່ງ SHELL ອາຄານ
ສາມາດ ຂ້າງລຸ່ມນີ້), ສິ່ງອໍານວຍຄວາມສະດວກສໍາລັບການສໍາເລັດໂຄງການໄດ້ຖືກຮຽກຮ້ອງ.
ທໍາອິດ, ຊື່ຄໍາສັ່ງແມ່ນຖືກກໍານົດ. ຖ້າ ຄຳ ສັ່ງແມ່ນສະຕຣິງຫວ່າງເປົ່າ
(ຄວາມພະຍາຍາມສໍາເລັດໃນຕອນຕົ້ນຂອງເສັ້ນຫວ່າງເປົ່າ), compspec ໃດກໍານົດກັບ -E
ທາງເລືອກທີ່ຈະ ສົມບູນ ຖືກນໍາໃຊ້. ຖ້າ compspec ໄດ້ຖືກກໍານົດສໍາລັບຄໍາສັ່ງນັ້ນ, compspec
ຖືກນໍາໃຊ້ເພື່ອສ້າງບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້ສໍາລັບຄໍາ. ຖ້າ ຄຳ ສັ່ງແມ່ນ
ຊື່ເສັ້ນທາງເຕັມ, compspec ສໍາລັບຊື່ເສັ້ນທາງເຕັມແມ່ນຊອກຫາທໍາອິດ. ຖ້າບໍ່ມີ compspec
ຖືກພົບເຫັນສໍາລັບຊື່ເສັ້ນທາງເຕັມ, ຄວາມພະຍາຍາມແມ່ນເຮັດເພື່ອຊອກຫາ compspec ສໍາລັບສ່ວນ
ຫຼັງຈາກການຕັດສຸດທ້າຍ. ຖ້າການຄົ້ນຫາເຫຼົ່ານັ້ນບໍ່ໄດ້ຜົນໃນ compspec, compspec ໃດ
ກໍານົດດ້ວຍ -D ທາງເລືອກທີ່ຈະ ສົມບູນ ຖືກໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນ.
ເມື່ອ compspec ໄດ້ຖືກພົບເຫັນ, ມັນຖືກນໍາໃຊ້ເພື່ອສ້າງບັນຊີລາຍຊື່ຂອງຄໍາທີ່ກົງກັນ. ຖ້າ ກ
ບໍ່ພົບ compspec, ຄ່າເລີ່ມຕົ້ນ bash ການສໍາເລັດຕາມທີ່ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ການ ສຳ ເລັດ is
ປະຕິບັດ.
ຫນ້າທໍາອິດ, ການປະຕິບັດທີ່ລະບຸໄວ້ໂດຍ compspec ແມ່ນຖືກນໍາໃຊ້. ສະເພາະການຈັບຄູ່ທີ່ນຳໜ້າໂດຍ
ຄໍາທີ່ສໍາເລັດແມ່ນກັບຄືນມາ. ໃນເວລາທີ່ -f or -d ທາງເລືອກແມ່ນໃຊ້ສໍາລັບຊື່ໄຟລ໌ຫຼື
ການສໍາເລັດຊື່ໄດເລກະທໍລີ, ຕົວແປຂອງແກະ ບໍ່ເຫັນ ຖືກນໍາໃຊ້ເພື່ອການກັ່ນຕອງການຈັບຄູ່.
ການສໍາເລັດໃດໆທີ່ລະບຸໂດຍຮູບແບບການຂະຫຍາຍຊື່ເສັ້ນທາງໄປຫາ -G ທາງເລືອກແມ່ນຖືກສ້າງຂຶ້ນ
ຕໍ່ໄປ. ຄໍາສັບທີ່ສ້າງຂຶ້ນໂດຍຮູບແບບບໍ່ຈໍາເປັນຕ້ອງກົງກັບຄໍາທີ່ສໍາເລັດ. ໄດ້
GLOBIGNORE Shell variable ບໍ່ໄດ້ໃຊ້ເພື່ອກັ່ນຕອງການຈັບຄູ່, ແຕ່ວ່າ ບໍ່ເຫັນ ຕົວແປແມ່ນ
ໃຊ້ແລ້ວ.
ຕໍ່ໄປ, ສະຕຣິງທີ່ລະບຸເປັນ argument ກັບ the -W ທາງເລືອກແມ່ນພິຈາລະນາ. ສະຕິງແມ່ນ
ທໍາອິດແບ່ງອອກໂດຍໃຊ້ຕົວອັກສອນໃນ IFS ຕົວແປພິເສດເປັນຕົວຂັ້ນ. Shell quoting
ເປັນກຽດ. ແຕ່ລະຄໍາຖືກຂະຫຍາຍໂດຍໃຊ້ brace expansion, tilde expansion, parameter
ແລະການຂະຫຍາຍຕົວແປ, ການທົດແທນຄໍາສັ່ງ, ແລະການຂະຫຍາຍຕົວເລກເລກ, ດັ່ງທີ່ໄດ້ອະທິບາຍຂ້າງເທິງ
ພາຍໃຕ້ການ EXPANSION. ຜົນໄດ້ຮັບຖືກແບ່ງອອກໂດຍໃຊ້ກົດລະບຽບທີ່ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ Word
ການແບ່ງປັນ. ຜົນໄດ້ຮັບຂອງການຂະຫຍາຍຕົວແມ່ນຄໍານໍາຫນ້າ - ກົງກັບຄໍາວ່າເປັນ
ສໍາເລັດ, ແລະຄໍາທີ່ກົງກັນກາຍເປັນສໍາເລັດທີ່ເປັນໄປໄດ້.
ຫຼັງຈາກການແຂ່ງຂັນເຫຼົ່ານີ້ໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນ, ການທໍາງານຂອງ shell ໃດຫຼືຄໍາສັ່ງທີ່ລະບຸໄວ້ກັບ
-F ແລະ -C ທາງເລືອກແມ່ນຮຽກຮ້ອງໃຫ້ມີ. ເມື່ອຄໍາສັ່ງຫຼືຫນ້າທີ່ຖືກເອີ້ນ, the COMP_LINE,
COMP_POINT, COMP_KEY, ແລະ COMP_TYPE ຕົວແປແມ່ນໄດ້ມອບໝາຍຄ່າຕາມທີ່ໄດ້ອະທິບາຍໄວ້ຂ້າງເທິງພາຍໃຕ້
Shell Variables. ຖ້າຫາກວ່າການທໍາງານຂອງ shell ຖືກຮຽກຮ້ອງໃຫ້, ໄດ້ COMP_WORDS ແລະ COMP_CWORD
ຕົວແປຍັງຖືກກໍານົດ. ເມື່ອຟັງຊັນຫຼືຄໍາສັ່ງຖືກເອີ້ນ, ການໂຕ້ຖຽງທໍາອິດ ($1)
ແມ່ນຊື່ຂອງຄໍາສັ່ງທີ່ມີການໂຕ້ຖຽງແມ່ນສໍາເລັດ, ການໂຕ້ຖຽງທີສອງ ($2)
ແມ່ນຄໍາສັບທີ່ໄດ້ຮັບການສໍາເລັດ, ແລະການໂຕ້ຖຽງທີສາມ ($3) ແມ່ນຄໍາທີ່ໃຊ້ກ່ອນຄໍາ
ກໍາລັງສໍາເລັດຢູ່ໃນເສັ້ນຄໍາສັ່ງໃນປະຈຸບັນ. ບໍ່ມີການກັ່ນຕອງຂອງສໍາເລັດທີ່ສ້າງຂຶ້ນ
ຕໍ່ກັບຄໍາທີ່ສໍາເລັດແມ່ນປະຕິບັດ; ຟັງຊັນຫຼືຄໍາສັ່ງສໍາເລັດ
ສິດເສລີພາບໃນການຜະລິດການແຂ່ງຂັນ.
ຟັງຊັນໃດນຶ່ງທີ່ລະບຸດ້ວຍ -F ຖືກເອີ້ນກ່ອນ. ຟັງຊັນອາດຈະໃຊ້ແກະໃດໆ
ສິ່ງອໍານວຍຄວາມສະດວກ, ລວມທັງ ປະສົມ builtin ອະທິບາຍຂ້າງລຸ່ມນີ້, ເພື່ອສ້າງການຈັບຄູ່. ມັນ
ຕ້ອງເອົາການສໍາເລັດທີ່ເປັນໄປໄດ້ໃນ ຕື່ມຂໍ້ມູນໃສ່ array variable, ຫນຶ່ງຕໍ່ອົງປະກອບ array.
ຕໍ່ໄປ, ຄໍາສັ່ງໃດໆທີ່ລະບຸໄວ້ກັບ -C ທາງເລືອກແມ່ນຮຽກຮ້ອງໃນສະພາບແວດລ້ອມທີ່ທຽບເທົ່າກັບ
ການທົດແທນຄໍາສັ່ງ. ມັນຄວນຈະພິມບັນຊີລາຍຊື່ຂອງການສໍາເລັດ, ຫນຶ່ງຕໍ່ແຖວ, ໄປຫາ
ຜົນຜະລິດມາດຕະຖານ. Backslash ອາດຈະຖືກໃຊ້ເພື່ອໜີອອກຈາກແຖວໃໝ່, ຖ້າຈໍາເປັນ.
ຫຼັງຈາກທັງຫມົດຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້ແມ່ນໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນ, ການກັ່ນຕອງໃດລະບຸໄວ້ກັບ -X
ທາງເລືອກແມ່ນຖືກນໍາໃຊ້ກັບບັນຊີລາຍຊື່. ການກັ່ນຕອງແມ່ນຮູບແບບທີ່ໃຊ້ສໍາລັບການຂະຫຍາຍຊື່ເສັ້ນທາງ; ກ
& ໃນຮູບແບບໄດ້ຖືກແທນທີ່ດ້ວຍຂໍ້ຄວາມຂອງຄໍາທີ່ສໍາເລັດ. ເປັນຕົວຫນັງສື & ອາດຈະ
ຖືກຫລົບຫນີດ້ວຍ backslash; backslash ຖືກລຶບອອກກ່ອນທີ່ຈະພະຍາຍາມແຂ່ງຂັນ. ໃດ
ການສໍາເລັດທີ່ກົງກັບຮູບແບບຈະຖືກລຶບອອກຈາກບັນຊີລາຍຊື່. ນໍາພາ ! ປະຕິເສດ
ຮູບແບບ; ໃນກໍລະນີນີ້ການສໍາເລັດໃດໆທີ່ບໍ່ກົງກັນກັບຮູບແບບຈະຖືກລົບອອກ.
ສຸດທ້າຍ, ຄໍານໍາຫນ້າແລະຄໍາຕໍ່ທ້າຍທີ່ລະບຸໄວ້ກັບ -P ແລະ -S ທາງເລືອກແມ່ນເພີ່ມໃສ່ແຕ່ລະຄົນ
ສະມາຊິກຂອງບັນຊີລາຍຊື່ສໍາເລັດ, ແລະຜົນໄດ້ຮັບແມ່ນກັບຄືນໄປຫາລະຫັດການສໍາເລັດການອ່ານ
ເປັນບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້.
ຖ້າການກະທຳທີ່ນຳໃຊ້ຜ່ານມາບໍ່ໄດ້ສ້າງກົງກັນໃດໆ, ແລະ -o ນາມສະກຸນ ທາງເລືອກ
ໄດ້ສະຫນອງໃຫ້ ສົມບູນ ເມື່ອ compspec ໄດ້ຖືກກໍານົດ, ການສໍາເລັດຊື່ໄດເລກະທໍລີແມ່ນ
ພະຍາຍາມ.
ຖ້າ -o plusdirs ທາງເລືອກໄດ້ສະຫນອງໃຫ້ ສົມບູນ ເມື່ອ compspec ໄດ້ຖືກກໍານົດ,
ການສໍາເລັດຊື່ໄດເລກະທໍລີແມ່ນພະຍາຍາມແລະຄໍາທີ່ກົງກັນໃດໆຖືກເພີ່ມເຂົ້າໃນຜົນໄດ້ຮັບຂອງ
ການປະຕິບັດອື່ນໆ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຖ້າ compspec ຖືກພົບເຫັນ, ສິ່ງໃດກໍ່ຕາມທີ່ມັນສ້າງຈະຖືກສົ່ງຄືນໃຫ້ສໍາເລັດ
ລະຫັດເປັນຊຸດອັນເຕັມທີ່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້. ຄ່າເລີ່ມຕົ້ນ bash ສໍາເລັດບໍ່ແມ່ນ
ພະຍາຍາມ, ແລະຄ່າເລີ່ມຕົ້ນ readline ຂອງການສໍາເລັດຊື່ໄຟລ໌ຖືກປິດໃຊ້ງານ. ຖ້າ -o
bashdefault ທາງເລືອກໄດ້ສະຫນອງໃຫ້ ສົມບູນ ເມື່ອ compspec ໄດ້ຖືກກໍານົດ, ໄດ້ bash
ການສໍາເລັດໃນຕອນຕົ້ນແມ່ນພະຍາຍາມຖ້າ compspec ສ້າງບໍ່ກົງກັນ. ຖ້າ -o Default
ທາງເລືອກໄດ້ສະຫນອງໃຫ້ ສົມບູນ ເມື່ອ compspec ໄດ້ຖືກກໍານົດ, readline ແມ່ນຄ່າເລີ່ມຕົ້ນ
ການສໍາເລັດຈະຖືກປະຕິບັດຖ້າ compspec (ແລະ, ຖ້າພະຍາຍາມ, ເປັນຄ່າເລີ່ມຕົ້ນ bash
ການສໍາເລັດ) ບໍ່ມີການແຂ່ງຂັນ.
ເມື່ອ compspec ຊີ້ບອກວ່າການສໍາເລັດຊື່ຂອງໄດເລກະທໍລີແມ່ນຕ້ອງການ, ສາມາດຕັ້ງໂຄງການໄດ້
ຟັງຊັນການສໍາເລັດບັງຄັບໃຫ້ readline ຕື່ມການທັບຊ້ອນໄປຫາຊື່ທີ່ສໍາເລັດ
ການເຊື່ອມຕໍ່ສັນຍາລັກກັບລາຍການ, ຂຶ້ນກັບມູນຄ່າຂອງ mark-directory ເສັ້ນອ່ານ
ປ່ຽນແປງໄດ້, ໂດຍບໍ່ສົນເລື່ອງຂອງການຕັ້ງຄ່າ mark-symlinked-directories ຕົວແປ readline.
ມີການສະຫນັບສະຫນູນບາງຢ່າງສໍາລັບການສໍາເລັດການແກ້ໄຂແບບເຄື່ອນໄຫວ. ນີ້ແມ່ນເປັນປະໂຫຍດທີ່ສຸດໃນເວລາທີ່
ໃຊ້ປະສົມປະສານກັບການສໍາເລັດໃນຕອນຕົ້ນທີ່ລະບຸໄວ້ກັບ ສົມບູນ -D. ມັນເປັນໄປໄດ້
ສໍາລັບການທໍາງານຂອງແກະປະຕິບັດເປັນຕົວຈັດການສໍາເລັດຮູບເພື່ອຊີ້ບອກວ່າການສໍາເລັດຄວນຈະເປັນ
ພະຍາຍາມອີກຄັ້ງໂດຍການສົ່ງຄືນສະຖານະທາງອອກຂອງ 124. ຖ້າຟັງຊັນ shell ກັບຄືນມາ 124, ແລະປ່ຽນແປງ.
compspec ທີ່ກ່ຽວຂ້ອງກັບຄໍາສັ່ງທີ່ກໍາລັງພະຍາຍາມສໍາເລັດ (ສະຫນອງ
ເປັນການໂຕ້ຖຽງທໍາອິດເມື່ອຟັງຊັນຖືກປະຕິບັດ), ການສໍາເລັດໂຄງການເລີ່ມຕົ້ນໃຫມ່
ໃນຕອນເລີ່ມຕົ້ນ, ດ້ວຍຄວາມພະຍາຍາມທີ່ຈະຊອກຫາ compspec ໃຫມ່ສໍາລັບຄໍາສັ່ງນັ້ນ. ນີ້ອະນຸຍາດໃຫ້
ຊຸດຂອງການສໍາເລັດທີ່ຈະສ້າງແບບເຄື່ອນໄຫວຍ້ອນວ່າການສໍາເລັດແມ່ນຄວາມພະຍາຍາມ, ແທນທີ່ຈະເປັນ
loaded ທັງຫມົດໃນເວລາດຽວກັນ.
ຕົວຢ່າງ, ສົມມຸດວ່າມີຫ້ອງສະຫມຸດຂອງ compspec, ແຕ່ລະຄົນເກັບໄວ້ໃນໄຟລ໌
ທີ່ສອດຄ້ອງກັນກັບຊື່ຂອງຄໍາສັ່ງ, ຟັງຊັນການສໍາເລັດໃນຕອນຕົ້ນຕໍ່ໄປນີ້ຈະ
ໂຫຼດສໍາເລັດແບບໄດນາມິກ:
_completion_loader()
{
. ""/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && ກັບຄືນ 124
}
ສໍາເລັດ -D -F _completion_loader -o bashdefault -o ເລີ່ມຕົ້ນ
ປະຫວັດຄວາມເປັນ
ໃນເວລາທີ່ -o ປະຫວັດສາດ ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ buildin ຖືກເປີດໃຊ້, shell ສະຫນອງການເຂົ້າເຖິງ
ຄໍາສັ່ງ ປະຫວັດສາດ, ບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງທີ່ພິມໃນເມື່ອກ່ອນ. ມູນຄ່າຂອງ ປະຫວັດສາດ
ຕົວແປແມ່ນໃຊ້ເປັນຈໍານວນຄໍາສັ່ງທີ່ຈະບັນທຶກໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ຂໍ້ຄວາມຂອງ
ສຸດທ້າຍ ປະຫວັດສາດ ຄໍາສັ່ງ (ຄ່າເລີ່ມຕົ້ນ 500) ຖືກບັນທຶກໄວ້. Shell ເກັບແຕ່ລະຄໍາສັ່ງຢູ່ໃນ
ບັນຊີລາຍຊື່ປະຫວັດສາດກ່ອນພາລາມິເຕີແລະການຂະຫຍາຍຕົວແປ (ເບິ່ງ EXPANSION ຂ້າງເທິງ) ແຕ່ຫຼັງຈາກ
ການຂະຫຍາຍປະຫວັດສາດແມ່ນປະຕິບັດ, ຂຶ້ນກັບຄຸນຄ່າຂອງຕົວແປຂອງແກະ ປະຫວັດສາດ
ແລະ HISTCONTROL.
ໃນການເລີ່ມຕົ້ນ, ປະຫວັດການເລີ່ມຕົ້ນແມ່ນມາຈາກໄຟລ໌ທີ່ມີຊື່ໂດຍຕົວແປ ປະຫວັດຫຍໍ້
(ຄ່າເລີ່ມຕົ້ນ ~ / .bash_history). ໄຟລ໌ທີ່ມີຊື່ໂດຍມູນຄ່າຂອງ ປະຫວັດຫຍໍ້ ຖືກຕັດ, ຖ້າ
ມີຄວາມຈໍາເປັນ, ເພື່ອບັນຈຸບໍ່ມີຫຼາຍກ່ວາຈໍານວນຂອງເສັ້ນທີ່ລະບຸໄວ້ໂດຍມູນຄ່າຂອງ
ຂະໜາດປະຫວັດທີ່ຢູ່ ຖ້າຫາກວ່າ ຂະໜາດປະຫວັດ ບໍ່ໄດ້ຕັ້ງ, ຫຼືຕັ້ງເປັນ null, ຄ່າທີ່ບໍ່ແມ່ນຕົວເລກ, ຫຼືຕົວເລກ
ຄ່າໜ້ອຍກວ່າສູນ, ໄຟລ໌ປະຫວັດບໍ່ໄດ້ຖືກຕັດອອກ. ເມື່ອເອກະສານປະຫວັດສາດຖືກອ່ານ,
ເສັ້ນທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນຄໍາຄິດເຫັນປະຫວັດສາດປະຕິບັດຕາມທັນທີໂດຍຕົວເລກແມ່ນ
ຖືກຕີຄວາມໝາຍວ່າເປັນການສະແຕມເວລາສຳລັບແຖວປະຫວັດສາດກ່ອນໜ້າ. ເວລາເຫຼົ່ານີ້ເປັນທາງເລືອກ
ສະແດງໂດຍອີງຕາມມູນຄ່າຂອງ ເວລາປະຫວັດສາດ ຕົວແປ. ໃນເວລາທີ່ຫອຍກັບ
ປະຫວັດການເປີດການອອກ, ສຸດທ້າຍ $HISTSIZE ສາຍຖືກຄັດລອກຈາກບັນຊີລາຍຊື່ປະຫວັດສາດໄປຫາ
$HISTFILEທີ່ຢູ່ ຖ້າຫາກວ່າ ປະຫວັດສາດ ຕົວເລືອກ shell ຖືກເປີດໃຊ້ (ເບິ່ງລາຍລະອຽດຂອງ ຮ້ານຄ້າ ພາຍໃຕ້ການ
SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້), ເສັ້ນຖືກຕໍ່ທ້າຍກັບໄຟລ໌ປະຫວັດສາດ, ຖ້າບໍ່ດັ່ງນັ້ນ
ໄຟລ໌ປະຫວັດສາດຖືກຂຽນທັບ. ຖ້າ ປະຫວັດຫຍໍ້ ບໍ່ໄດ້ຕັ້ງ, ຫຼືຖ້າໄຟລ໌ປະຫວັດສາດບໍ່ສາມາດຂຽນໄດ້,
ປະຫວັດສາດບໍ່ໄດ້ຖືກບັນທຶກໄວ້. ຖ້າ ເວລາປະຫວັດສາດ ຕົວປ່ຽນແປງແມ່ນຖືກກໍານົດ, ບັດເວລາຖືກຂຽນ
ກັບໄຟລ໌ປະຫວັດສາດ, ຫມາຍດ້ວຍຕົວອັກສອນຄໍາຄິດເຫັນປະຫວັດສາດ, ດັ່ງນັ້ນເຂົາເຈົ້າອາດຈະຖືກຮັກສາໄວ້
ໃນທົ່ວກອງປະຊຸມ shell. ນີ້ໃຊ້ລັກສະນະຄໍາຄິດຄໍາເຫັນປະຫວັດສາດເພື່ອຈໍາແນກເວລາ
ຈາກສາຍປະຫວັດສາດອື່ນໆ. ຫຼັງຈາກການບັນທຶກປະຫວັດສາດ, ໄຟລ໌ປະຫວັດສາດໄດ້ຖືກຕັດເປັນ
ບັນຈຸບໍ່ມີຫຼາຍກ່ວາ ຂະໜາດປະຫວັດ ສາຍ. ຖ້າ ຂະໜາດປະຫວັດ ບໍ່ໄດ້ຕັ້ງ, ຫຼືຕັ້ງເປັນ null, ທີ່ບໍ່ແມ່ນ
ຄ່າຕົວເລກ, ຫຼືຄ່າຕົວເລກໜ້ອຍກວ່າສູນ, ໄຟລ໌ປະຫວັດຈະບໍ່ຖືກຕັດອອກ.
ຄໍາສັ່ງ builtin fc (ເບິ່ງ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້) ອາດຈະຖືກນໍາໃຊ້ເພື່ອລາຍຊື່ຫຼືດັດແກ້ແລະ
ປະຕິບັດສ່ວນຫນຶ່ງຂອງບັນຊີລາຍຊື່ປະຫວັດສາດ. ໄດ້ ປະຫວັດສາດ buildin ອາດຈະຖືກນໍາໃຊ້ເພື່ອສະແດງຫຼື
ປັບປຸງແກ້ໄຂລາຍການປະຫວັດສາດ ແລະຈັດການໄຟລ໌ປະຫວັດສາດ. ເມື່ອໃຊ້ການແກ້ໄຂບັນທັດຄໍາສັ່ງ,
ຄໍາສັ່ງຄົ້ນຫາແມ່ນມີຢູ່ໃນແຕ່ລະຮູບແບບການແກ້ໄຂທີ່ສະຫນອງການເຂົ້າເຖິງປະຫວັດສາດ
ລາຍຊື່
Shell ອະນຸຍາດໃຫ້ຄວບຄຸມວ່າຄໍາສັ່ງໃດຖືກບັນທຶກໄວ້ໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ໄດ້
HISTCONTROL ແລະ ປະຫວັດສາດ ຕົວແປອາດຈະຖືກຕັ້ງເພື່ອເຮັດໃຫ້ shell ປະຫຍັດພຽງແຕ່ຊຸດຍ່ອຍ
ຂອງຄໍາສັ່ງທີ່ເຂົ້າມາ. ໄດ້ cmdhist ຕົວເລືອກ shell, ຖ້າເປີດໃຊ້, ເຮັດໃຫ້ shell ກັບ
ພະຍາຍາມບັນທຶກແຕ່ລະແຖວຂອງຄໍາສັ່ງຫຼາຍແຖວໃນການເຂົ້າປະຫວັດສາດດຽວກັນ, ເພີ່ມ
semicolons ບ່ອນທີ່ມີຄວາມຈໍາເປັນເພື່ອຮັກສາຄວາມຖືກຕ້ອງຂອງ syntactic. ໄດ້ ລາຍຊື່ນັກຂຽນ ຕົວເລືອກແກະ
ເຮັດໃຫ້ shell ບັນທຶກຄຳສັ່ງດ້ວຍແຖວໃໝ່ທີ່ຝັງໄວ້ແທນ semicolons. ເບິ່ງ
ລາຍລະອຽດຂອງ ຮ້ານຄ້າ buildin ຂ້າງລຸ່ມນີ້ພາຍໃຕ້ SHELL ອາຄານ ສາມາດ ສຳ ລັບຂໍ້ມູນກ່ຽວກັບ
ການຕັ້ງຄ່າແລະການບໍ່ຕັ້ງຄ່າທາງເລືອກຂອງແກະ.
ປະຫວັດຄວາມເປັນ EXPANSION
Shell ສະຫນັບສະຫນູນຄຸນນະສົມບັດການຂະຫຍາຍປະຫວັດສາດທີ່ຄ້າຍຄືກັບການຂະຫຍາຍຕົວປະຫວັດສາດໃນ
csh. ພາກສ່ວນນີ້ອະທິບາຍລັກສະນະ syntax ທີ່ມີຢູ່. ຄຸນສົມບັດນີ້ຖືກເປີດໃຊ້
ໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບ shells ແບບໂຕ້ຕອບ, ແລະສາມາດຖືກປິດການໃຊ້ງານໂດຍໃຊ້ +H ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້
ຄໍາສັ່ງ builtin (ເບິ່ງ SHELL ອາຄານ ສາມາດ ຂ້າງລຸ່ມນີ້). ຫອຍທີ່ບໍ່ມີການໂຕ້ຕອບບໍ່ໄດ້ປະຕິບັດ
ການຂະຫຍາຍປະຫວັດສາດໂດຍຄ່າເລີ່ມຕົ້ນ.
ການຂະຫຍາຍປະຫວັດສາດແນະນໍາຄໍາສັບຕ່າງໆຈາກບັນຊີລາຍຊື່ປະຫວັດສາດເຂົ້າໄປໃນກະແສການປ້ອນຂໍ້ມູນ, ເຮັດໃຫ້ມັນ
ງ່າຍທີ່ຈະເຮັດຊ້ໍາຄໍາສັ່ງ, ໃສ່ arguments ກັບຄໍາສັ່ງທີ່ຜ່ານມາເຂົ້າໄປໃນ input ໃນປັດຈຸບັນ
ເສັ້ນ, ຫຼືແກ້ໄຂຂໍ້ຜິດພາດໃນຄໍາສັ່ງທີ່ຜ່ານມາຢ່າງໄວວາ.
ການຂະຫຍາຍປະຫວັດສາດແມ່ນປະຕິບັດທັນທີຫຼັງຈາກເສັ້ນສໍາເລັດຮູບຖືກອ່ານ, ກ່ອນທີ່ຈະແກະ
ແບ່ງອອກເປັນຄໍາສັບຕ່າງໆ. ມັນໃຊ້ເວລາສະຖານທີ່ໃນສອງພາກສ່ວນ. ທໍາອິດແມ່ນການກໍານົດວ່າເສັ້ນໃດ
ຈາກບັນຊີລາຍຊື່ປະຫວັດສາດທີ່ຈະນໍາໃຊ້ໃນລະຫວ່າງການທົດແທນ. ອັນທີສອງແມ່ນການເລືອກສ່ວນຂອງ
ເສັ້ນນັ້ນສໍາລັບການລວມເຂົ້າໄປໃນປະຈຸບັນ. ເສັ້ນທີ່ເລືອກຈາກປະຫວັດສາດແມ່ນ
ກໍລະນີ, ແລະບາງສ່ວນຂອງເສັ້ນທີ່ປະຕິບັດແມ່ນ ຄໍາເວົ້າ. ຫລາກຫລາຍ ຕົວປ່ຽນແປງ ມີ
ມີໃຫ້ເພື່ອຈັດການຄໍາທີ່ເລືອກ. ເສັ້ນຖືກແຍກອອກເປັນຄໍາສັບໃນດຽວກັນ
ຄົນອັບເດດ: ໃນເວລາອ່ານ input, ດັ່ງນັ້ນຫຼາຍ metacharacter- ຄໍາທີ່ແຍກອອກອ້ອມຂ້າງ
quotes ແມ່ນພິຈາລະນາຫນຶ່ງຄໍາ. ການຂະຫຍາຍປະຫວັດສາດແມ່ນໄດ້ນໍາສະເຫນີໂດຍຮູບລັກສະນະຂອງ
ລັກສະນະການຂະຫຍາຍຕົວປະຫວັດສາດ, ເຊິ່ງແມ່ນ ! ໂດຍຄ່າເລີ່ມຕົ້ນ. ພຽງແຕ່ backslash (\) ແລະໂສດ
quotes ສາມາດອ້າງເຖິງລັກສະນະການຂະຫຍາຍປະຫວັດສາດ.
ຕົວອັກສອນຫຼາຍຕົວຍັບຍັ້ງການຂະຫຍາຍປະຫວັດສາດ ຖ້າພົບເຫັນທັນທີປະຕິບັດຕາມປະຫວັດສາດ
ລັກສະນະການຂະຫຍາຍຕົວ, ເຖິງແມ່ນວ່າມັນບໍ່ໄດ້ຖືກອ້າງອີງ: ຊ່ອງ, ແຖບ, ແຖວໃຫມ່, ການກັບຄືນ carriage, ແລະ =.
ຖ້າ extglob ຕົວເລືອກ shell ຖືກເປີດໃຊ້, ( ຍັງຈະຂັດຂວາງການຂະຫຍາຍ.
ທາງເລືອກຂອງຫອຍຈໍານວນຫນຶ່ງ settable ກັບ ຮ້ານຄ້າ buildin ອາດຈະຖືກນໍາໃຊ້ເພື່ອປັບແຕ່ງພຶດຕິກໍາ
ການຂະຫຍາຍຕົວປະຫວັດສາດ. ຖ້າ ກວດພິສູດ ຕົວເລືອກ shell ຖືກເປີດໃຊ້ (ເບິ່ງລາຍລະອຽດຂອງ
ໄດ້ ຮ້ານຄ້າ builtin ຂ້າງລຸ່ມນີ້), ແລະ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, ການທົດແທນປະຫວັດສາດແມ່ນບໍ່
ທັນທີທັນໃດຜ່ານການແຍກສະແກະ. ແທນທີ່ຈະ, ເສັ້ນທີ່ຂະຫຍາຍໄດ້ຖືກໂຫລດໃຫມ່ເຂົ້າໄປໃນ
ເສັ້ນອ່ານ ການແກ້ໄຂ buffer ສໍາລັບການດັດແກ້ຕໍ່ໄປ. ຖ້າ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, ແລະ
ປະຫວັດສາດ ຕົວເລືອກ shell ຖືກເປີດໃຊ້, ການທົດແທນປະຫວັດສາດທີ່ລົ້ມເຫລວຈະຖືກໂຫລດໃຫມ່
ໄດ້ ເສັ້ນອ່ານ ການແກ້ໄຂ buffer ສໍາລັບການແກ້ໄຂ. ໄດ້ -p ທາງເລືອກໃນການ ປະຫວັດສາດ ຄໍາສັ່ງ builtin
ອາດຈະຖືກນໍາໃຊ້ເພື່ອເບິ່ງວ່າການຂະຫຍາຍປະຫວັດສາດຈະເຮັດແນວໃດກ່ອນທີ່ຈະນໍາໃຊ້ມັນ. ໄດ້ -s ທາງເລືອກໃນການ
ປະຫວັດສາດ buildin ອາດຈະຖືກນໍາໃຊ້ເພື່ອເພີ່ມຄໍາສັ່ງທີ່ຈະສິ້ນສຸດຂອງບັນຊີລາຍຊື່ປະຫວັດສາດໂດຍບໍ່ມີການ
ຕົວຈິງແລ້ວການປະຕິບັດໃຫ້ເຂົາເຈົ້າ, ດັ່ງນັ້ນເຂົາເຈົ້າມີສໍາລັບການ recall ຕໍ່ມາ.
ແກະອະນຸຍາດໃຫ້ຄວບຄຸມລັກສະນະຕ່າງໆທີ່ໃຊ້ໂດຍກົນໄກການຂະຫຍາຍປະຫວັດສາດ
(ເບິ່ງລາຍລະອຽດຂອງ histchars ຂ້າງເທິງພາຍໃຕ້ Shell Variables). ແກະໃຊ້
ລັກສະນະຄໍາຄິດເຫັນປະຫວັດສາດເພື່ອຫມາຍປະຫວັດສາດເວລາທີ່ຂຽນໄຟລ໌ປະຫວັດສາດ.
ກໍລະນີ ຜູ້ອອກແບບ
ຕົວກໍານົດເຫດການແມ່ນການອ້າງອີງໃສ່ເສັ້ນຄໍາສັ່ງໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ເວັ້ນເສຍແຕ່
ການອ້າງອິງແມ່ນຢ່າງແທ້ຈິງ, ເຫດການແມ່ນກ່ຽວຂ້ອງກັບຕໍາແຫນ່ງປະຈຸບັນໃນປະຫວັດສາດ
ລາຍຊື່
! ເລີ່ມການປ່ຽນປະຫວັດສາດ, ຍົກເວັ້ນເມື່ອຕິດຕາມດ້ວຍ a ເປົ່າ, newline , carriage
ກັບຄືນ, = ຫຼື ( (ເມື່ອ extglob ຕົວເລືອກ shell ຖືກເປີດໃຊ້ໂດຍໃຊ້ ຮ້ານຄ້າ ກໍ່ສ້າງ).
!n ອ້າງເຖິງບັນທັດຄໍາສັ່ງ n.
!-n ອ້າງອີງເຖິງຄໍາສັ່ງລົບໃນປະຈຸບັນ n.
!! ອ້າງເຖິງຄໍາສັ່ງທີ່ຜ່ານມາ. ນີ້ແມ່ນຄໍາສັບຄ້າຍຄືກັນກັບ `!-1'.
!string
ອ້າງອີງເຖິງຄໍາສັ່ງຫຼ້າສຸດກ່ອນຕໍາແຫນ່ງປະຈຸບັນໃນບັນຊີລາຍຊື່ປະຫວັດສາດ
ເລີ່ມຕົ້ນດ້ວຍ string.
!?string[?]
ອ້າງອີງເຖິງຄໍາສັ່ງຫຼ້າສຸດກ່ອນຕໍາແຫນ່ງປະຈຸບັນໃນບັນຊີລາຍຊື່ປະຫວັດສາດ
ບັນຈຸມີ string. ການຕິດຕາມ ? ອາດຈະຖືກລະເວັ້ນຖ້າ string ແມ່ນປະຕິບັດຕາມທັນທີ
ໂດຍສາຍໃໝ່.
^string1^string2^
ການທົດແທນທີ່ໄວ. ເຮັດຊ້ໍາຄໍາສັ່ງທີ່ຜ່ານມາ, ແທນທີ່ string1 ກັບ string2.
ເທົ່າກັບ ``!!:s/string1/string2/'' (ເບິ່ງ ຕົວປ່ຽນແປງ ດ້ານລຸ່ມ).
!# ເສັ້ນຄໍາສັ່ງທັງຫມົດພິມມາເຖິງຕອນນັ້ນ.
Word ຜູ້ອອກແບບ
ຕົວກໍານົດຄໍາສັບຖືກນໍາໃຊ້ເພື່ອເລືອກຄໍາທີ່ຕ້ອງການຈາກເຫດການ. ກ : ແຍກເຫດການ
ສະເພາະຈາກຜູ້ອອກແບບຄຳສັບ. ມັນອາດຈະຖືກຍົກເວັ້ນຖ້າຕົວກໍານົດຄໍາເລີ່ມຕົ້ນ
ມີ ^, $, *, -, ຫຼື %. ຄໍາສັບຕ່າງໆແມ່ນນັບຕັ້ງແຕ່ຕົ້ນຂອງເສັ້ນ, ມີ
ຄໍາທໍາອິດຖືກສະແດງໂດຍ 0 (ສູນ). ຄໍາສັບຕ່າງໆແມ່ນແຊກເຂົ້າໄປໃນເສັ້ນປະຈຸບັນແຍກອອກ
ໂດຍຊ່ອງດຽວ.
0 (ສູນ)
ຄຳສູນ. ສໍາລັບແກະ, ນີ້ແມ່ນ ຄຳ ສັ່ງ.
n ໄດ້ nth ຄໍາ.
^ ການໂຕ້ຖຽງທໍາອິດ. ນັ້ນແມ່ນ, ຄຳ 1.
$ ຄໍາສຸດທ້າຍ. ປົກກະຕິແລ້ວນີ້ແມ່ນການໂຕ້ຖຽງສຸດທ້າຍ, ແຕ່ຈະຂະຫຍາຍໄປສູ່ສູນ
word ຖ້າມີພຽງຄຳດຽວໃນແຖວ.
% ຄໍາທີ່ຈັບຄູ່ໂດຍຫຼ້າສຸດ `?string?' ຄົ້ນຫາ.
x-y ລະດັບຂອງຄໍາສັບຕ່າງໆ; `-y' ຫຍໍ້ `0-y'.
* ຄໍາສັບຕ່າງໆທັງຫມົດແຕ່ zeroth. ນີ້ແມ່ນຄໍາສັບຄ້າຍຄືສໍາລັບ `1-$'. ມັນບໍ່ແມ່ນຄວາມຜິດພາດ
ການນໍາໃຊ້ * ຖ້າມີພຽງຄໍາດຽວຢູ່ໃນເຫດການ; ສະຕຣິງຫວ່າງເປົ່າຖືກສົ່ງຄືນໃນ
ກໍລະນີນັ້ນ.
x* ຕົວຫຍໍ້ x-$.
x- ຕົວຫຍໍ້ x-$ ຄື x*, ແຕ່ omits ຄໍາສຸດທ້າຍ.
ຖ້າຕົວກໍານົດຄໍາຖືກສະຫນອງໂດຍບໍ່ມີການກໍານົດເຫດການ, ຄໍາສັ່ງທີ່ຜ່ານມາແມ່ນ
ໃຊ້ເປັນເຫດການ.
ຕົວປ່ຽນແປງ
ຫຼັງຈາກຕົວກໍານົດຄໍາທີ່ເປັນທາງເລືອກ, ອາດຈະປາກົດເປັນລໍາດັບຂອງຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
ຕໍ່ໄປນີ້ການດັດແກ້, ແຕ່ລະອັນນໍາຫນ້າໂດຍ `: '.
h ເອົາອົງປະກອບຊື່ໄຟລ໌ຕໍ່ທ້າຍ, ປ່ອຍໃຫ້ພຽງແຕ່ຫົວ.
t ເອົາອົງປະກອບຊື່ໄຟລ໌ຊັ້ນນໍາທັງຫມົດ, ອອກຈາກຫາງ.
r ເອົາຄຳຕໍ່ທ້າຍຂອງແບບຟອມອອກ xxx, ອອກຈາກຊື່ພື້ນຖານ.
e ເອົາອອກທັງໝົດ ຍົກເວັ້ນຄຳຕໍ່ທ້າຍ.
p ພິມຄໍາສັ່ງໃຫມ່ແຕ່ບໍ່ປະຕິບັດມັນ.
q ອ້າງເຖິງຄໍາທີ່ປ່ຽນແທນ, ຫນີການທົດແທນຕື່ມອີກ.
x ອ້າງອີງຄຳສັບທີ່ປ່ຽນແທນໄດ້ຄືກັບ q, ແຕ່ທໍາລາຍເຂົ້າໄປໃນຄໍາສັບຕ່າງໆຢູ່ ເປົ່າຫວ່າງ ແລະສາຍໃໝ່.
s/ອາຍຸ/ໃຫມ່/
ທົດແທນ ໃຫມ່ ສໍາລັບການປະກົດຕົວຄັ້ງທໍາອິດຂອງ ອາຍຸ ໃນສາຍເຫດການ. ຕົວຂັ້ນໃດໆ
ສາມາດຖືກນໍາໃຊ້ແທນ /. ຕົວຂັ້ນສຸດທ້າຍແມ່ນທາງເລືອກຖ້າມັນເປັນອັນສຸດທ້າຍ
ລັກສະນະຂອງເສັ້ນເຫດການ. ຕົວຂັ້ນອາດຈະຖືກອ້າງອີງໃນ ອາຍຸ ແລະ ໃຫມ່ ມີ
backslash ດຽວ. ຖ້າ & ປາກົດຢູ່ໃນ ໃຫມ່, ມັນໄດ້ຖືກທົດແທນໂດຍ ອາຍຸ. A backslash ດຽວ
ຈະອ້າງເຖິງ &. ຖ້າ ອາຍຸ ແມ່ນ null, ມັນຖືກກໍານົດເປັນອັນສຸດທ້າຍ ອາຍຸ ທົດແທນ, ຫຼື, ຖ້າບໍ່ມີ
ການທົດແທນປະຫວັດສາດທີ່ຜ່ານມາໄດ້ເກີດຂຶ້ນ, ສຸດທ້າຍ string ຢູ່ໃນ !?string[?]
ຄົ້ນຫາ
& ເຮັດຊ້ໍາການທົດແທນທີ່ຜ່ານມາ.
g ເຮັດໃຫ້ການປ່ຽນແປງທີ່ຈະຖືກນໍາໃຊ້ໃນທົ່ວສາຍເຫດການທັງຫມົດ. ນີ້ແມ່ນໃຊ້ໃນ
ສົມທົບກັບ `:s' (ເຊັ່ນ: `:gs/ອາຍຸ/ໃຫມ່/') ຫຼື `:&'. ຖ້າໃຊ້ກັບ `:s', ໃດ
delimiter ສາມາດຖືກນໍາໃຊ້ແທນ /, ແລະຕົວກໍານົດຂັ້ນສຸດທ້າຍແມ່ນທາງເລືອກຖ້າມັນເປັນ
ລັກສະນະສຸດທ້າຍຂອງສາຍເຫດການ. ອັນ a ອາດຈະຖືກນໍາໃຊ້ເປັນຄໍາສັບຄ້າຍຄື g.
G ນຳໃຊ້ຕໍ່ໄປນີ້ `s' ຕົວແກ້ໄຂຄັ້ງດຽວກັບແຕ່ລະຄໍາໃນເສັ້ນເຫດການ.
SHELL ອາຄານ ສາມາດ
ເວັ້ນເສຍແຕ່ໄດ້ບັນທຶກໄວ້ເປັນຢ່າງອື່ນ, ແຕ່ລະຄໍາສັ່ງ buildin ເອກະສານໃນພາກນີ້ເປັນການຍອມຮັບ
ທາງເລືອກທີ່ນໍາຫນ້າໂດຍ - ຍອມຮັບ -- ຫມາຍເຖິງການສິ້ນສຸດຂອງທາງເລືອກ. ໄດ້ :, ທີ່ແທ້ຈິງ, ທີ່ບໍ່ຖືກຕ້ອງ,
ແລະ ການທົດສອບ buildins ບໍ່ຍອມຮັບທາງເລືອກແລະບໍ່ປິ່ນປົວ -- ພິເສດ. ໄດ້ ການທ່ອງທ່ຽວ, ອອກຈາກລະບົບ,
ພັກຜ່ອນ, ດໍາເນີນການຕໍ່, ໃຫ້, ແລະ ປ່ຽນແປງ buildins ຍອມຮັບແລະດໍາເນີນການໂຕ້ຖຽງເລີ່ມຕົ້ນດ້ວຍ -
ໂດຍບໍ່ຕ້ອງການ --. buildins ອື່ນໆທີ່ຍອມຮັບການໂຕ້ຖຽງແຕ່ບໍ່ໄດ້ລະບຸໄວ້ເປັນ
ການຍອມຮັບທາງເລືອກໃນການຕີຄວາມຂັດແຍ້ງທີ່ເລີ່ມຕົ້ນດ້ວຍ - ເປັນທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແລະຕ້ອງການ --
ເພື່ອປ້ອງກັນການຕີຄວາມຫມາຍນີ້.
: [ກະທູ້ທີ່]
ບໍ່ມີຜົນກະທົບ; ຄໍາສັ່ງບໍ່ມີຫຍັງນອກເຫນືອຈາກການຂະຫຍາຍ ກະທູ້ທີ່ ແລະການປະຕິບັດໃດໆ
ການປ່ຽນເສັ້ນທາງທີ່ລະບຸ. ລະຫັດອອກສູນຖືກສົ່ງຄືນ.
. ຊື່ເອກະສານ [ກະທູ້ທີ່]
ແຫຼ່ງ ຊື່ເອກະສານ [ກະທູ້ທີ່]
ອ່ານແລະປະຕິບັດຄໍາສັ່ງຈາກ ຊື່ເອກະສານ ໃນສະພາບແວດລ້ອມ shell ໃນປັດຈຸບັນແລະກັບຄືນ
ສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ປະຕິບັດຈາກ ຊື່ເອກະສານທີ່ຢູ່ ຖ້າຫາກວ່າ ຊື່ເອກະສານ ບໍ່
ມີ slash, ຊື່ໄຟລ໌ໃນ PATH ຖືກນໍາໃຊ້ເພື່ອຊອກຫາໄດເລກະທໍລີທີ່ມີ
ຊື່ເອກະສານ. ໄຟລ໌ທີ່ຊອກຫາຢູ່ໃນ PATH ບໍ່ຈໍາເປັນຕ້ອງປະຕິບັດໄດ້. ເມື່ອໃດ bash ບໍ່ແມ່ນ
in ບວກ ຮູບແບບການ, ໄດເລກະທໍລີປະຈຸບັນຖືກຄົ້ນຫາຖ້າບໍ່ມີໄຟລ໌ໃດຖືກພົບເຫັນຢູ່ໃນ PATHທີ່ຢູ່ ຖ້າຫາກວ່າ
ໄດ້ ແຫຼ່ງທີ່ມາ ທາງເລືອກໃນການ ຮ້ານຄ້າ ຄໍາສັ່ງ builtin ປິດ, ໄດ້ PATH ບໍ່ແມ່ນ
ຄົ້ນຫາ. ຖ້າມີ ກະທູ້ທີ່ ໄດ້ຖືກສະຫນອງ, ພວກມັນກາຍເປັນຕົວກໍານົດການຕໍາແຫນ່ງ
ໃນເວລາທີ່ ຊື່ເອກະສານ ຖືກປະຕິບັດ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນບໍ່ປ່ຽນແປງ. ໄດ້
ສະຖານະກັບຄືນແມ່ນສະຖານະຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ອອກຈາກ script (0 ຖ້າບໍ່ມີ
ຄໍາສັ່ງຖືກປະຕິບັດ), ແລະບໍ່ຖືກຕ້ອງຖ້າ ຊື່ເອກະສານ ບໍ່ພົບ ຫຼືບໍ່ສາມາດອ່ານໄດ້.
alias [-p] [ຊື່[=ມູນຄ່າ] ...]
Alias ໂດຍບໍ່ມີການໂຕ້ຖຽງຫຼືກັບ -p ທາງເລືອກພິມບັນຊີລາຍຊື່ຂອງນາມແຝງຢູ່ໃນ
ຮູບແບບ alias ຊື່=ມູນຄ່າ ກ່ຽວກັບຜົນຜະລິດມາດຕະຖານ. ເມື່ອການໂຕ້ຖຽງຖືກສະຫນອງ, ນາມແຝງແມ່ນ
ກໍານົດສໍາລັບແຕ່ລະຄົນ ຊື່ ທີ່ ມູນຄ່າ ແມ່ນໃຫ້. ຊ່ອງທີ່ຕິດຢູ່ໃນ ມູນຄ່າ ສາເຫດ
ຄໍາຕໍ່ໄປທີ່ຈະກວດສອບການທົດແທນ alias ເມື່ອ alias ຖືກຂະຫຍາຍ. ສໍາລັບ
ແຕ່ລະຄົນ ຊື່ ຢູ່ໃນບັນຊີລາຍຊື່ການໂຕ້ຖຽງສໍາລັບການທີ່ບໍ່ມີ ມູນຄ່າ ແມ່ນສະຫນອງໃຫ້, ຊື່ແລະມູນຄ່າ
ຂອງນາມແຝງຖືກພິມອອກ. Alias ກັບຄືນຄວາມຈິງເວັ້ນເສຍແຕ່ a ຊື່ ແມ່ນໃຫ້ສໍາລັບການທີ່ບໍ່ມີ
alias ໄດ້ຖືກກໍານົດ.
bg [ວຽກ ... ]
ສືບຕໍ່ແຕ່ລະວຽກທີ່ຖືກໂຈະ ວຽກ ໃນພື້ນຫລັງ, ຄືກັບວ່າມັນໄດ້ຖືກເລີ່ມຕົ້ນດ້ວຍ
&ທີ່ຢູ່ ຖ້າຫາກວ່າ ວຽກ ບໍ່ແມ່ນປະຈຸບັນ, ແນວຄິດຂອງຫອຍຂອງ ໃນປະຈຸບັນ ວຽກເຮັດງານທໍາ ຖືກນໍາໃຊ້. bg
ວຽກ ກັບຄືນ 0 ເວັ້ນເສຍແຕ່ວ່າແລ່ນເມື່ອການຄວບຄຸມວຽກຖືກປິດໃຊ້ງານຫຼື, ເມື່ອດໍາເນີນການກັບວຽກ
ການຄວບຄຸມເປີດໃຊ້ງານ, ໃດທີ່ລະບຸໄວ້ ວຽກ ບໍ່ພົບ ຫຼືເລີ່ມບໍ່ມີວຽກເຮັດ
ຄວບຄຸມ.
ຜູກ [-m ແຜນທີ່ຫຼັກ] [-lpsvPSVX]
ຜູກ [-m ແຜນທີ່ຫຼັກ] [-q ຫນ້າທີ່] [-u ຫນ້າທີ່] [-r keyseq]
ຜູກ [-m ແຜນທີ່ຫຼັກ] -f ຊື່ເອກະສານ
ຜູກ [-m ແຜນທີ່ຫຼັກ] -x keyseq:shell-ຄໍາສັ່ງ
ຜູກ [-m ແຜນທີ່ຫຼັກ] keyseq:function-name
ຜູກ readline-ຄໍາສັ່ງ
ສະແດງປັດຈຸບັນ ເສັ້ນອ່ານ key and function bindings, binding a key sequence to a
ເສັ້ນອ່ານ function ຫຼື macro, ຫຼືກໍານົດ a ເສັ້ນອ່ານ ຕົວແປ. ແຕ່ລະການໂຕ້ຖຽງທີ່ບໍ່ແມ່ນທາງເລືອກ
ເປັນຄໍາສັ່ງທີ່ມັນຈະປາກົດຢູ່ໃນ .inputrc, ແຕ່ວ່າແຕ່ລະການຜູກມັດຫຼືຄໍາສັ່ງຈະຕ້ອງເປັນ
ຜ່ານເປັນການໂຕ້ຖຽງແຍກຕ່າງຫາກ; ຕົວຢ່າງ: '\Cx\Cr": re-read-init-file'. ທາງເລືອກ, ຖ້າ
ສະຫນອງໃຫ້, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-m ແຜນທີ່ຫຼັກ
ການນໍາໃຊ້ ແຜນທີ່ຫຼັກ ເປັນແຜນທີ່ຫຼັກທີ່ຈະໄດ້ຮັບຜົນກະທົບຈາກການຜູກມັດຕໍ່ໄປ.
ຍອມຮັບ ແຜນທີ່ຫຼັກ ຊື່ແມ່ນ emacs, emacs-ມາດຕະຖານ, emacs-meta, emacs-ctlx,
vi, vi-ຍ້າຍ, vi-ຄໍາສັ່ງ, ແລະ vi-ແຊກ. vi ເທົ່າກັບ vi-ຄໍາສັ່ງ;
emacs ເທົ່າກັບ emacs-ມາດຕະຖານ.
-l ບອກຊື່ຂອງທັງຫມົດ ເສັ້ນອ່ານ ປະຕິບັດຫນ້າ.
-p ການສະແດງ ເສັ້ນອ່ານ ຊື່ຫນ້າທີ່ແລະການຜູກມັດໃນແບບທີ່ພວກເຂົາສາມາດເປັນ
ອ່ານໃໝ່.
-P ລາຍຊື່ປັດຈຸບັນ ເສັ້ນອ່ານ ຊື່ຫນ້າທີ່ແລະການຜູກມັດ.
-s ການສະແດງ ເສັ້ນອ່ານ ລຳດັບຫຼັກທີ່ຜູກມັດກັບມະຫາພາກ ແລະສະຕຣິງທີ່ພວກມັນອອກ
ໃນລັກສະນະທີ່ພວກເຂົາສາມາດອ່ານຄືນໄດ້.
-S ການສະແດງ ເສັ້ນອ່ານ ລຳດັບຫຼັກທີ່ຜູກມັດກັບມະຫາພາກ ແລະສະຕຣິງທີ່ພວກມັນອອກ.
-v ການສະແດງ ເສັ້ນອ່ານ ຊື່ຕົວແປ ແລະຄ່າໃນແບບທີ່ເຂົາເຈົ້າສາມາດເປັນໄດ້
ອ່ານໃໝ່.
-V ລາຍຊື່ປັດຈຸບັນ ເສັ້ນອ່ານ ຊື່ຕົວແປ ແລະຄ່າ.
-f ຊື່ເອກະສານ
ອ່ານການຜູກມັດຫຼັກຈາກ ຊື່ເອກະສານ.
-q ຫນ້າທີ່
ສອບຖາມວ່າກະແຈໃດເອີ້ນຊື່ ຫນ້າທີ່.
-u ຫນ້າທີ່
ຖອດລະຫັດທັງໝົດທີ່ຜູກມັດກັບຊື່ ຫນ້າທີ່.
-r keyseq
ເອົາການຜູກມັດໃນປະຈຸບັນໃດໆສໍາລັບ keyseq.
-x keyseq:shell-ຄໍາສັ່ງ
ເຫດຜົນ shell-ຄໍາສັ່ງ ຈະຖືກປະຫານທຸກຄັ້ງ keyseq ເຂົ້າໄປ. ເມື່ອໃດ
shell-ຄໍາສັ່ງ ຖືກປະຕິບັດ, ແກະກໍານົດໄດ້ READLINE_LINE ປ່ຽນແປງໄດ້
ເນື້ອໃນຂອງ ເສັ້ນອ່ານ line buffer ແລະ READLINE_POINT ປ່ຽນແປງໄດ້
ສະຖານທີ່ປະຈຸບັນຂອງຈຸດແຊກ. ຖ້າຄໍາສັ່ງປະຕິບັດການປ່ຽນແປງ
ມູນຄ່າຂອງ READLINE_LINE or READLINE_POINT, ຄຸນຄ່າໃຫມ່ເຫຼົ່ານັ້ນຈະເປັນ
ສະທ້ອນໃຫ້ເຫັນຢູ່ໃນສະຖານະການແກ້ໄຂ.
-X ບອກລໍາດັບທີ່ສໍາຄັນທັງຫມົດທີ່ຜູກມັດກັບຄໍາສັ່ງ shell ແລະຄໍາສັ່ງທີ່ກ່ຽວຂ້ອງ
ໃນຮູບແບບທີ່ສາມາດນໍາໃຊ້ຄືນໃຫມ່ເປັນການປ້ອນຂໍ້ມູນ.
ມູນຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຮູ້ຈັກຈະຖືກມອບໃຫ້ ຫຼືມີຂໍ້ຜິດພາດເກີດຂຶ້ນ.
ພັກຜ່ອນ [n]
ອອກຈາກພາຍໃນ a ສໍາລັບການ, ໃນຂະນະທີ່, ຈົນກ່ວາ, ຫຼື ເລືອກ ວົງ. ຖ້າ n ຖືກກໍານົດ, ພັກຜ່ອນ n
ລະດັບ. n ຕ້ອງເປັນ ≥ 1. ຖ້າ n ແມ່ນຫຼາຍກ່ວາຈໍານວນຂອງ loops ຫຸ້ມ, ທັງຫມົດ
ວົງແຫວນປິດລ້ອມອອກ. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ n ແມ່ນບໍ່ໃຫຍ່ກວ່າຫຼື
ເທົ່າກັບ 1.
ປຸກສ້າງ shell-builtin [ກະທູ້ທີ່]
ປະຕິບັດການ buildin shell ທີ່ກໍານົດໄວ້, ຜ່ານມັນ ກະທູ້ທີ່, ແລະກັບຄືນທາງອອກຂອງມັນ
ສະຖານະ. ນີ້ເປັນປະໂຫຍດໃນເວລາທີ່ກໍານົດຟັງຊັນທີ່ມີຊື່ດຽວກັນກັບແກະ
buildin, ຮັກສາການເຮັດວຽກຂອງ buildin ພາຍໃນຫນ້າທີ່. ໄດ້ cd
ໂດຍທົ່ວໄປແລ້ວ buildin ແມ່ນຖືກກຳນົດໃໝ່ດ້ວຍວິທີນີ້. ສະຖານະການກັບຄືນແມ່ນບໍ່ຖືກຕ້ອງຖ້າ
shell-builtin ບໍ່ແມ່ນຄຳສັ່ງຂອງ shell buildin.
ຜູ້ໂທ [ຕົວຢ່າງ]
ສົ່ງຄືນບໍລິບົດຂອງການໂທທີ່ເຮັດປະຈຳຍ່ອຍທີ່ເຮັດວຽກຢູ່ (ຟັງຊັນ shell ຫຼື script
ປະຕິບັດດ້ວຍ . or ແຫຼ່ງ buildins). ໂດຍບໍ່ມີການ ຕົວຢ່າງ, ຜູ້ໂທ ສະແດງເສັ້ນ
ໝາຍເລກ ແລະຊື່ໄຟລ໌ແຫຼ່ງຂອງການໂທລາຍຍ່ອຍປັດຈຸບັນ. ຖ້າບໍ່ແມ່ນທາງລົບ
ຈຳນວນເຕັມແມ່ນສະໜອງໃຫ້ ຕົວຢ່າງ, ຜູ້ໂທ ສະແດງເລກແຖວ, ຊື່ລາຍການຍ່ອຍ ແລະ
ແຫຼ່ງໄຟລ໌ທີ່ສອດຄ້ອງກັນກັບຕໍາແຫນ່ງນັ້ນໃນ stack call ການປະຕິບັດປະຈຸບັນ.
ຂໍ້ມູນເພີ່ມເຕີມນີ້ອາດຈະຖືກນໍາໃຊ້, ຕົວຢ່າງ, ເພື່ອພິມຕິດຕາມ stack. ໄດ້
ເຟຣມປັດຈຸບັນແມ່ນເຟຣມ 0. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າ shell ບໍ່ໄດ້ດຳເນີນການ
subroutine ໂທ ຫຼື ຕົວຢ່າງ ບໍ່ກົງກັບຕໍາແຫນ່ງທີ່ຖືກຕ້ອງໃນການໂທ
ກອງ.
cd [-L|[-P [-e]] [-@]] [dir]
ປ່ຽນໄດເລກະທໍລີປັດຈຸບັນເປັນ dir. ຖ້າ dir ບໍ່ໄດ້ສະຫນອງ, ມູນຄ່າຂອງ ຫນ້າທໍາອິດ
shell variable ເປັນຄ່າເລີ່ມຕົ້ນ. ມີການໂຕ້ຖຽງເພີ່ມເຕີມຕໍ່ໄປນີ້ dir ຖືກລະເລີຍ.
ຕົວແປ CDPATH ກໍານົດເສັ້ນທາງຄົ້ນຫາສໍາລັບໄດເລກະທໍລີທີ່ມີ dir: ແຕ່ລະ
ຊື່ໄດເລກະທໍລີໃນ CDPATH ຖືກຄົ້ນຫາ dir. ຊື່ໄດເລກະທໍລີທາງເລືອກໃນ
CDPATH ຖືກແຍກອອກດ້ວຍຈໍ້າສອງເມັດ (:). ຊື່ໄດເຣັກທໍຣີ null ໃນ CDPATH ແມ່ນຄືກັນ
ເປັນໄດເລກະທໍລີປະຈຸບັນ, ie, ``.''. ຖ້າ dir ເລີ່ມຕົ້ນດ້ວຍ slash (/), ຫຼັງຈາກນັ້ນ CDPATH
ບໍ່ໄດ້ໃຊ້. ໄດ້ -P ສາເຫດທາງເລືອກ cd ການນໍາໃຊ້ໂຄງສ້າງໄດເລກະທໍລີທາງດ້ານຮ່າງກາຍໂດຍ
ການແກ້ໄຂການເຊື່ອມຕໍ່ສັນຍາລັກໃນຂະນະທີ່ traversing dir ແລະກ່ອນການປະມວນຜົນຂອງ ..
in dir (ເບິ່ງຍັງ -P ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin); ໄດ້ -L ກໍາລັງທາງເລືອກ
ການເຊື່ອມຕໍ່ສັນຍາລັກທີ່ຈະປະຕິບັດຕາມໂດຍການແກ້ໄຂການເຊື່ອມຕໍ່ຫຼັງຈາກການປຸງແຕ່ງຕົວຢ່າງຂອງ
.. in dirທີ່ຢູ່ ຖ້າຫາກວ່າ .. ປາກົດຢູ່ໃນ dir, ມັນໄດ້ຖືກປຸງແຕ່ງໂດຍການຖອນທັນທີ
ອົງປະກອບຊື່ເສັ້ນທາງທີ່ຜ່ານມາຈາກ dir, ກັບໄປຫາ slash ຫຼືຈຸດເລີ່ມຕົ້ນຂອງ dirທີ່ຢູ່ ຖ້າຫາກວ່າ
ໄດ້ -e ທາງເລືອກແມ່ນສະຫນອງໃຫ້ກັບ -P, ແລະໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນບໍ່ສາມາດເປັນ
ກໍານົດຢ່າງສໍາເລັດຜົນຫຼັງຈາກການປ່ຽນແປງໄດເລກະທໍລີສົບຜົນສໍາເລັດ, cd ຈະກັບຄືນມາ
ສະຖານະບໍ່ສຳເລັດ. ກ່ຽວກັບລະບົບທີ່ສະຫນັບສະຫນູນມັນ, ໄດ້ -@ ທາງເລືອກນໍາສະເຫນີ
ຄຸນລັກສະນະຂະຫຍາຍທີ່ກ່ຽວຂ້ອງກັບໄຟລ໌ເປັນໄດເລກະທໍລີ. ການໂຕ້ຖຽງຂອງ - is
ປ່ຽນເປັນ $OLDPWD ກ່ອນທີ່ຈະພະຍາຍາມປ່ຽນໄດເລກະທໍລີ. ຖ້າບໍ່ຫວ່າງ
ຊື່ໄດເລກະທໍລີຈາກ CDPATH ຖືກນໍາໃຊ້, ຫຼືຖ້າຫາກວ່າ - ແມ່ນການໂຕ້ຖຽງທໍາອິດ, ແລະ
ການປ່ຽນແປງໄດເລກະທໍລີແມ່ນປະສົບຜົນສໍາເລັດ, ຊື່ເສັ້ນທາງຢ່າງແທ້ຈິງຂອງໄດເລກະທໍລີທີ່ເຮັດວຽກໃຫມ່
ຖືກຂຽນໃສ່ຜົນຜະລິດມາດຕະຖານ. ມູນຄ່າກັບຄືນແມ່ນຖືກຕ້ອງຖ້າໄດເລກະທໍລີແມ່ນ
ການປ່ຽນແປງສົບຜົນສໍາເລັດ; ບໍ່ຖືກຕ້ອງຖ້າບໍ່ດັ່ງນັ້ນ.
ຄໍາສັ່ງ [-pVv] ຄໍາສັ່ງ [arg ... ]
ການດໍາເນີນງານ ຄໍາສັ່ງ ກັບ ໂຕ້ຖຽງ ສະກັດກັ້ນການຊອກຫາການເຮັດວຽກຂອງແກະປົກກະຕິ. builtin ເທົ່ານັ້ນ
ຄໍາສັ່ງຫຼືຄໍາສັ່ງທີ່ພົບເຫັນຢູ່ໃນ PATH ຖືກປະຕິບັດ. ຖ້າ -p ທາງເລືອກແມ່ນໄດ້ຮັບ,
ການຄົ້ນຫາສໍາລັບການ ຄໍາສັ່ງ ຖືກປະຕິບັດໂດຍໃຊ້ຄ່າເລີ່ມຕົ້ນສໍາລັບ PATH ນັ້ນແມ່ນ
ຮັບປະກັນການຊອກຫາທັງຫມົດຂອງອຸປະກອນມາດຕະຖານ. ຖ້າຫາກວ່າ -V or -v ທາງເລືອກແມ່ນ
ສະຫນອງໃຫ້, ລາຍລະອຽດຂອງ ຄໍາສັ່ງ ຖືກພິມອອກ. ໄດ້ -v ທາງເລືອກເຮັດໃຫ້ເກີດຄໍາດຽວ
ຊີ້ບອກຄໍາສັ່ງ ຫຼືຊື່ໄຟລ໌ທີ່ໃຊ້ເພື່ອເອີ້ນ ຄໍາສັ່ງ ທີ່ຈະສະແດງ; ໄດ້ -V
ທາງເລືອກຜະລິດຄໍາອະທິບາຍ verbose ຫຼາຍ. ຖ້າ -V or -v ທາງເລືອກແມ່ນສະຫນອງໃຫ້,
ສະຖານະການອອກແມ່ນ 0 ຖ້າ ຄໍາສັ່ງ ໄດ້ຖືກພົບເຫັນ, ແລະ 1 ຖ້າບໍ່ແມ່ນ. ຖ້າບໍ່ມີທາງເລືອກ
ສະຫນອງແລະຄວາມຜິດພາດທີ່ເກີດຂຶ້ນຫຼື ຄໍາສັ່ງ ບໍ່ສາມາດຊອກຫາໄດ້, ສະຖານະທາງອອກແມ່ນ 127.
ຖ້າບໍ່ດັ່ງນັ້ນ, ສະຖານະການອອກຂອງ ຄໍາສັ່ງ buildin ແມ່ນສະຖານະພາບທາງອອກຂອງ ຄໍາສັ່ງ.
ປະສົມ [ທາງເລືອກ] [ຄໍາ]
ສ້າງການແຂ່ງຂັນສໍາເລັດທີ່ເປັນໄປໄດ້ສໍາລັບ ຄໍາ ອີງຕາມການ ທາງເລືອກs, ເຊິ່ງອາດຈະ
ເປັນທາງເລືອກໃດນຶ່ງທີ່ຍອມຮັບໂດຍ ສົມບູນ buildin ມີຂໍ້ຍົກເວັ້ນຂອງ -p ແລະ -r, ແລະ
ຂຽນທີ່ກົງກັນກັບຜົນໄດ້ຮັບມາດຕະຖານ. ໃນເວລາທີ່ການນໍາໃຊ້ -F or -C ທາງເລືອກ, ໄດ້
ຕົວແປ shell ຕ່າງໆທີ່ກໍານົດໄວ້ໂດຍສະຖານທີ່ສໍາເລັດໂຄງການ, ໃນຂະນະທີ່
ສາມາດໃຊ້ໄດ້, ຈະບໍ່ມີມູນຄ່າທີ່ເປັນປະໂຫຍດ.
ການຈັບຄູ່ຈະຖືກສ້າງຂື້ນໃນແບບດຽວກັນກັບການເຮັດສຳເລັດໂຄງການ
ລະຫັດໄດ້ສ້າງໃຫ້ເຂົາເຈົ້າໂດຍກົງຈາກສະເພາະສໍາເລັດຮູບທີ່ມີດຽວກັນ
ທຸງ. ຖ້າ ຄໍາ ແມ່ນລະບຸໄວ້, ພຽງແຕ່ການສໍາເລັດທີ່ກົງກັນ ຄໍາ ຈະເປັນ
ສະແດງ.
ມູນຄ່າກັບຄືນແມ່ນຖືກຕ້ອງເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຈະຖືກສະຫນອງ, ຫຼືບໍ່ມີຂໍ້ມູນທີ່ກົງກັນ
ສ້າງຂຶ້ນ.
ສົມບູນ [-abcdefgjksuv] [-o ທາງເລືອກຄູ່] [-DE] [-A ການປະຕິບັດ] [-G globpat] [-W ລາຍການຄຳສັບ] [-F
ຫນ້າທີ່] [-C ຄໍາສັ່ງ]
[-X filterpat] [-P ຄຳ ນຳ ໜ້າ] [-S បច្ច័យ] ຊື່ [ຊື່ ...]
ສົມບູນ - ປ [-DE] [ຊື່ ... ]
ລະບຸວິທີການໂຕ້ຖຽງກັບແຕ່ລະຄົນ ຊື່ ຄວນຈະສໍາເລັດ. ຖ້າ -p ທາງເລືອກແມ່ນ
ສະຫນອງໃຫ້, ຫຼືຖ້າຫາກວ່າບໍ່ມີທາງເລືອກແມ່ນສະຫນອງໃຫ້, ຂໍ້ມູນຈໍາເພາະສໍາເລັດທີ່ມີຢູ່ແລ້ວ
ພິມອອກໃນແບບທີ່ອະນຸຍາດໃຫ້ພວກເຂົາເອົາມາໃຊ້ຄືນເປັນວັດສະດຸປ້ອນ. ໄດ້ -r ທາງເລືອກເອົາ a
ຂໍ້ກໍາຫນົດການສໍາເລັດສໍາລັບແຕ່ລະຄົນ ຊື່, ຫຼື, ຖ້າບໍ່ມີ ຊື່s ແມ່ນສະຫນອງໃຫ້, ທັງຫມົດ
ຂໍ້ມູນຈໍາເພາະສໍາເລັດ. ໄດ້ -D ທາງເລືອກຊີ້ໃຫ້ເຫັນວ່າທາງເລືອກທີ່ຍັງເຫຼືອແລະ
ການປະຕິບັດຄວນໃຊ້ກັບການສໍາເລັດຄໍາສັ່ງ ``ເລີ່ມຕົ້ນ''; ນັ້ນແມ່ນ, ສໍາເລັດ
ພະຍາຍາມໃຊ້ຄໍາສັ່ງທີ່ບໍ່ໄດ້ກໍານົດໄວ້ກ່ອນຫນ້ານີ້. ໄດ້ -E
ທາງເລືອກຊີ້ບອກວ່າທາງເລືອກທີ່ຍັງເຫຼືອແລະການປະຕິບັດຄວນຈະນໍາໃຊ້ກັບ ``ຫວ່າງເປົ່າ'
ຄໍາສັ່ງສໍາເລັດ; ນັ້ນແມ່ນ, ຄວາມພະຍາຍາມສໍາເລັດໃນເສັ້ນເປົ່າ.
ຂະບວນການຂອງການນໍາໃຊ້ຂໍ້ກໍານົດການສໍາເລັດເຫຼົ່ານີ້ໃນເວລາທີ່ການສໍາເລັດຄໍາສັບແມ່ນ
ພະຍາຍາມແມ່ນໄດ້ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ Programmable ສໍາເລັດ.
ທາງເລືອກອື່ນ, ຖ້າລະບຸ, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້. ການໂຕ້ຖຽງກັບ -G,
-W, ແລະ -X ທາງເລືອກ (ແລະ, ຖ້າຈໍາເປັນ, the -P ແລະ -S ທາງເລືອກ) ຄວນຖືກອ້າງອີງໃສ່
ປົກປ້ອງພວກເຂົາຈາກການຂະຫຍາຍກ່ອນ ສົມບູນ buildin ແມ່ນ invoked.
-o ທາງເລືອກຄູ່
ໄດ້ ທາງເລືອກຄູ່ ຄວບຄຸມຫຼາຍໆດ້ານຂອງພຶດຕິກໍາຂອງ compspec ນອກເຫນືອຈາກ
ການຜະລິດທີ່ງ່າຍດາຍຂອງການສໍາເລັດ. ທາງເລືອກຄູ່ ອາດຈະເປັນຫນຶ່ງໃນ:
bashdefault
ປະຕິບັດສ່ວນທີ່ເຫຼືອຂອງຄ່າເລີ່ມຕົ້ນ bash ສໍາເລັດຖ້າຫາກວ່າ compspec
ສ້າງບໍ່ກົງກັນ.
Default ໃຊ້ຊື່ໄຟລ໌ເລີ່ມຕົ້ນຂອງ readline ຖ້າ compspec
ສ້າງບໍ່ກົງກັນ.
ນາມສະກຸນ
ປະຕິບັດການສໍາເລັດຊື່ໄດເລກະທໍລີຖ້າ compspec ສ້າງ no
ກົງກັນ.
ຊື່ໄຟລ໌
ບອກ readline ວ່າ compspec ສ້າງຊື່ໄຟລ໌, ສະນັ້ນມັນສາມາດເຮັດໄດ້
ປະຕິບັດການປະມວນຜົນສະເພາະຊື່ໄຟລ໌ (ເຊັ່ນ: ການເພີ່ມ slash ໃສ່
ຊື່ໄດເລກະທໍລີ, ອ້າງອີງລັກສະນະພິເສດ, ຫຼືສະກັດກັ້ນ
ຊ່ອງທາງຫຼັງ). ມີຈຸດປະສົງເພື່ອນໍາໃຊ້ກັບຫນ້າທີ່ແກະ.
noquote ບອກ readline ບໍ່ໃຫ້ອ້າງເຖິງຄໍາທີ່ສໍາເລັດຖ້າພວກເຂົາແມ່ນ
ຊື່ໄຟລ໌ (ຊື່ໄຟລ໌ອ້າງອີງແມ່ນຄ່າເລີ່ມຕົ້ນ).
nospace ບອກ readline ບໍ່ໃຫ້ຕື່ມຊ່ອງຫວ່າງ (ຄ່າເລີ່ມຕົ້ນ) ໃສ່ກັບຄໍາສັບຕ່າງໆ
ສໍາເລັດໃນຕອນທ້າຍຂອງເສັ້ນ.
plusdirs
ຫຼັງຈາກການແຂ່ງຂັນໃດໆທີ່ກໍານົດໂດຍ compspec ແມ່ນຖືກສ້າງຂຶ້ນ, ໄດເລກະທໍລີ
ການສໍາເລັດຊື່ແມ່ນພະຍາຍາມແລະຄໍາທີ່ກົງກັນໃດໆຖືກເພີ່ມໃສ່
ຜົນໄດ້ຮັບຂອງການປະຕິບັດອື່ນໆ.
-A ການປະຕິບັດ
ໄດ້ ການປະຕິບັດ ອາດຈະເປັນຫນຶ່ງໃນຕໍ່ໄປນີ້ເພື່ອສ້າງບັນຊີລາຍຊື່ທີ່ເປັນໄປໄດ້
ສໍາເລັດ:
alias ນາມສະກຸນ. ອາດຈະຖືກລະບຸວ່າເປັນ -a.
arrayvar
array ຊື່ຕົວແປ.
binding ເສັ້ນອ່ານ ຊື່ຜູກພັນທີ່ສໍາຄັນ.
ປຸກສ້າງ ຊື່ຂອງຄໍາສັ່ງສ້າງໃນ shell. ອາດຈະຖືກລະບຸວ່າເປັນ -b.
ຄໍາສັ່ງ ຊື່ຄໍາສັ່ງ. ອາດຈະຖືກລະບຸວ່າເປັນ -c.
ລະບົບ
ຊື່ Directory. ອາດຈະຖືກລະບຸວ່າເປັນ -d.
disabled
ຊື່ຂອງ buildins shell ທີ່ພິການ.
ເປີດໃຫ້ໃຊ້ງານ ຊື່ຂອງ shell buildins ທີ່ເປີດໃຊ້ງານ.
ການສົ່ງອອກ ຊື່ຂອງຕົວແປ shell ທີ່ສົ່ງອອກ. ອາດຈະຖືກລະບຸວ່າເປັນ -e.
ເອກະສານ ຊື່ໄຟລ໌. ອາດຈະຖືກລະບຸວ່າເປັນ -f.
ຫນ້າທີ່
ຊື່ຂອງຫນ້າທີ່ແກະ.
ກຸ່ມ ຊື່ກຸ່ມ. ອາດຈະຖືກລະບຸວ່າເປັນ -g.
ຫົວຂໍ້ຊ່ວຍເຫຼືອ
ຫົວຂໍ້ຊ່ວຍເຫຼືອຕາມທີ່ຍອມຮັບໂດຍ ຊ່ວຍເຫຼືອ ກໍ່ສ້າງ.
hostname
ຊື່ເຈົ້າພາບ, ດັ່ງທີ່ເອົາມາຈາກໄຟລ໌ທີ່ລະບຸໄວ້ໂດຍ ໄຟລ໌ເຈົ້າພາບ ຫອຍ
ຕົວແປ.
ວຽກເຮັດງານທໍາ ຊື່ວຽກ, ຖ້າຫາກວ່າການຄວບຄຸມການເຮັດວຽກແມ່ນການເຄື່ອນໄຫວ. ອາດຈະຖືກລະບຸວ່າເປັນ -j.
ຄໍາ Shell ສະຫງວນຄໍາ. ອາດຈະຖືກລະບຸວ່າເປັນ -k.
ການເຮັດວຽກ ຊື່ຂອງວຽກທີ່ເຮັດວຽກ, ຖ້າການຄວບຄຸມວຽກມີການເຄື່ອນໄຫວ.
ການບໍລິການ ຊື່ບໍລິການ. ອາດຈະຖືກລະບຸວ່າເປັນ -s.
ຕັ້ງ ການໂຕ້ຖຽງທີ່ຖືກຕ້ອງສໍາລັບການ -o ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ກໍ່ສ້າງ.
ຮ້ານຄ້າ ຊື່ຕົວເລືອກ Shell ຕາມທີ່ຍອມຮັບໂດຍ ຮ້ານຄ້າ ກໍ່ສ້າງ.
signal ຊື່ສັນຍານ.
ຢຸດເຊົາ ຊື່ຂອງວຽກທີ່ຢຸດເຊົາ, ຖ້າການຄວບຄຸມວຽກມີການເຄື່ອນໄຫວ.
ຜູ້ໃຊ້ ຊື່ຜູ້ໃຊ້. ອາດຈະຖືກລະບຸວ່າເປັນ -u.
ຕົວແປ
ຊື່ຂອງຕົວແປທັງໝົດຂອງ shell. ອາດຈະຖືກລະບຸວ່າເປັນ -v.
-C ຄໍາສັ່ງ
ຄໍາສັ່ງ ຖືກປະຕິບັດໃນສະພາບແວດລ້ອມ subshell, ແລະຜົນຜະລິດຂອງມັນຖືກນໍາໃຊ້ເປັນ
ສໍາເລັດທີ່ເປັນໄປໄດ້.
-F ຫນ້າທີ່
ການທໍາງານຂອງແກະ ຫນ້າທີ່ ຖືກປະຕິບັດໃນສະພາບແວດລ້ອມ shell ໃນປັດຈຸບັນ.
ເມື່ອຟັງຊັນຖືກປະຕິບັດ, ການໂຕ້ຖຽງທໍາອິດ ($1) ແມ່ນຊື່ຂອງ
ຄໍາສັ່ງທີ່ມີການໂຕ້ຖຽງແມ່ນສໍາເລັດ, ການໂຕ້ຖຽງທີສອງ ($2) ແມ່ນ
ຄໍາທີ່ສໍາເລັດ, ແລະການໂຕ້ຖຽງທີສາມ ($3) ແມ່ນຄໍາທີ່ນໍາຫນ້າ
ຄໍາທີ່ສໍາເລັດຢູ່ໃນເສັ້ນຄໍາສັ່ງໃນປະຈຸບັນ. ເມື່ອມັນສໍາເລັດ,
ການສໍາເລັດທີ່ເປັນໄປໄດ້ແມ່ນດຶງມາຈາກມູນຄ່າຂອງ ຕື່ມຂໍ້ມູນໃສ່
array ຕົວແປ.
-G globpat
ຮູບແບບການຂະຫຍາຍຊື່ເສັ້ນທາງ globpat ແມ່ນຂະຫຍາຍເພື່ອສ້າງຄວາມເປັນໄປໄດ້
ສໍາເລັດ.
-P ຄຳ ນຳ ໜ້າ
ຄຳ ນຳ ໜ້າ ແມ່ນເພີ່ມໃນຕອນເລີ່ມຕົ້ນຂອງແຕ່ລະສໍາເລັດທີ່ເປັນໄປໄດ້ຫຼັງຈາກທັງຫມົດ
ທາງເລືອກອື່ນໄດ້ຖືກນໍາໃຊ້.
-S បច្ច័យ
បច្ច័យ ຈະຖືກຕື່ມໃສ່ກັບແຕ່ລະຄວາມສຳເລັດທີ່ເປັນໄປໄດ້ ຫຼັງຈາກທາງເລືອກອື່ນທັງໝົດມີ
ໄດ້ຖືກນໍາໃຊ້.
-W ລາຍການຄຳສັບ
ໄດ້ ລາຍການຄຳສັບ ຖືກແບ່ງອອກໂດຍໃຊ້ຕົວອັກສອນໃນ IFS ຕົວແປພິເສດເປັນ
ຕົວຂັ້ນ, ແລະແຕ່ລະຄໍາຜົນໄດ້ຮັບແມ່ນຂະຫຍາຍອອກ. ການສໍາເລັດທີ່ເປັນໄປໄດ້
ແມ່ນສະມາຊິກຂອງບັນຊີລາຍຊື່ຜົນໄດ້ຮັບທີ່ກົງກັບຄໍາທີ່ສໍາເລັດ.
-X filterpat
filterpat ແມ່ນຮູບແບບທີ່ໃຊ້ສໍາລັບການຂະຫຍາຍຊື່ເສັ້ນທາງ. ມັນຖືກນໍາໃຊ້ກັບ
ບັນຊີລາຍຊື່ຂອງການສໍາເລັດທີ່ເປັນໄປໄດ້ທີ່ສ້າງຂຶ້ນໂດຍທາງເລືອກກ່ອນຫນ້າແລະ
arguments, ແລະແຕ່ລະສໍາເລັດການຈັບຄູ່ filterpat ຖືກໂຍກຍ້າຍອອກຈາກບັນຊີລາຍຊື່.
ເປັນຜູ້ ນຳ ! in filterpat negates ຮູບແບບ; ໃນກໍລະນີນີ້, ການສໍາເລັດໃດໆ
ບໍ່ກົງກັນ filterpat ຖືກຍ້າຍອອກ.
ມູນຄ່າກັບຄືນແມ່ນເປັນຄວາມຈິງເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຈະຖືກສະຫນອງ, ທາງເລືອກອື່ນທີ່ບໍ່ແມ່ນ
-p or -r ແມ່ນສະຫນອງໃຫ້ໂດຍບໍ່ມີການ ຊື່ ການໂຕ້ຖຽງ, ຄວາມພະຍາຍາມທີ່ຈະເອົາ a
ສະເພາະການສໍາເລັດສໍາລັບ a ຊື່ ທີ່ບໍ່ມີສະເພາະໃດຫນຶ່ງ, ຫຼືຄວາມຜິດພາດ
ເກີດຂຶ້ນເພີ່ມສະເພາະສໍາເລັດຮູບ.
ຝຸ່ນບົ່ມ [-o ທາງເລືອກ] [-DE] [+o ທາງເລືອກ] [ຊື່]
ແກ້ໄຂທາງເລືອກການສໍາເລັດສໍາລັບແຕ່ລະຄົນ ຊື່ ອີງຕາມການ ທາງເລືອກs, ຫຼືສໍາລັບ
ປະຈຸບັນກໍາລັງດໍາເນີນການສໍາເລັດຖ້າຫາກວ່າບໍ່ມີ ຊື່s ແມ່ນສະຫນອງໃຫ້. ຖ້າບໍ່ມີ ທາງເລືອກs ແມ່ນໄດ້ຮັບ,
ສະແດງຕົວເລືອກການສໍາເລັດສໍາລັບແຕ່ລະຄົນ ຊື່ ຫຼືການສໍາເລັດໃນປັດຈຸບັນ. ໄດ້
ຄຸນຄ່າທີ່ເປັນໄປໄດ້ຂອງ ທາງເລືອກ ເຫຼົ່ານີ້ແມ່ນຖືກຕ້ອງສໍາລັບ ສົມບູນ buildin ອະທິບາຍຂ້າງເທິງ.
ໄດ້ -D ທາງເລືອກຊີ້ໃຫ້ເຫັນວ່າທາງເລືອກທີ່ຍັງເຫຼືອຄວນຈະນໍາໃຊ້ກັບ ``ຄ່າເລີ່ມຕົ້ນ´
ຄໍາສັ່ງສໍາເລັດ; ນັ້ນແມ່ນ, ສໍາເລັດຄວາມພະຍາຍາມໃນຄໍາສັ່ງສໍາລັບການທີ່ບໍ່ມີ
ການສໍາເລັດໄດ້ຖືກກໍານົດໄວ້ກ່ອນຫນ້ານີ້. ໄດ້ -E ທາງເລືອກຊີ້ໃຫ້ເຫັນວ່າສ່ວນທີ່ເຫຼືອ
ທາງເລືອກຄວນໃຊ້ກັບການສໍາເລັດຄໍາສັ່ງ ``ຫວ່າງເປົ່າ''; ນັ້ນແມ່ນ, ຄວາມພະຍາຍາມສໍາເລັດ
ຢູ່ໃນເສັ້ນເປົ່າ.
ມູນຄ່າກັບຄືນແມ່ນເປັນຄວາມຈິງເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຈະຖືກສະຫນອງ, ຄວາມພະຍາຍາມແມ່ນເກີດຂຶ້ນ
ການແກ້ໄຂທາງເລືອກສໍາລັບການ a ຊື່ ສໍາລັບການທີ່ບໍ່ມີສະເພາະສໍາເລັດຮູບ, ຫຼື
ຄວາມຜິດພາດຜົນຜະລິດເກີດຂຶ້ນ.
ດໍາເນີນການຕໍ່ [n]
ສືບຕໍ່ການປິດທ້າຍຄັ້ງຕໍ່ໄປ ສໍາລັບການ, ໃນຂະນະທີ່, ຈົນກ່ວາ, ຫຼື ເລືອກ ວົງ. ຖ້າ n
ແມ່ນລະບຸໄວ້, ຊີວະປະຫວັດຫຍໍ້ຢູ່ທີ່ nth enclosing loop. n ຕ້ອງເປັນ ≥ 1. ຖ້າ n ແມ່ນຫຼາຍກວ່າເກົ່າ
ກ່ວາຈໍານວນຂອງ loops enclosing, loop enclosing ສຸດທ້າຍ (``ລະດັບສູງສຸດ'
loop) ແມ່ນສືບຕໍ່. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ n ບໍ່ໃຫຍ່ກວ່າ ຫຼືເທົ່າກັບ
1.
ປະກາດ [-aAfFgilnrtux] [-p] [ຊື່[=ມູນຄ່າ] ...]
ປະເພດ [-aAfFgilnrtux] [-p] [ຊື່[=ມູນຄ່າ] ...]
ປະກາດຕົວແປ ແລະ/ຫຼືໃຫ້ຄຸນລັກສະນະຕ່າງໆ. ຖ້າບໍ່ມີ ຊື່s ແມ່ນໃຫ້ຫຼັງຈາກນັ້ນສະແດງ
ຄ່າຂອງຕົວແປ. ໄດ້ -p ທາງເລືອກຈະສະແດງຄຸນລັກສະນະແລະຄຸນຄ່າຂອງ
ແຕ່ລະຄົນ ຊື່ທີ່ຢູ່ ເມື່ອໃດ -p ຖືກນໍາໃຊ້ກັບ ຊື່ ການໂຕ້ຖຽງ, ທາງເລືອກເພີ່ມເຕີມ, ນອກເຫນືອຈາກ -f
ແລະ -F, ຖືກລະເລີຍ. ເມື່ອໃດ -p ແມ່ນສະຫນອງໃຫ້ໂດຍບໍ່ມີການ ຊື່ ການໂຕ້ຖຽງ, ມັນຈະສະແດງ
ຄຸນລັກສະນະແລະຄຸນຄ່າຂອງຕົວແປທັງຫມົດທີ່ມີຄຸນລັກສະນະທີ່ລະບຸໄວ້ໂດຍ
ທາງເລືອກເພີ່ມເຕີມ. ຖ້າບໍ່ມີທາງເລືອກອື່ນແມ່ນສະຫນອງໃຫ້ -p, ປະກາດ ຈະສະແດງ
ຄຸນລັກສະນະ ແລະຄ່າຂອງຕົວແປທັງໝົດຂອງ shell. ໄດ້ -f ທາງເລືອກຈະຈໍາກັດການ
ສະແດງໃຫ້ເຫັນເຖິງຫນ້າທີ່ຂອງແກະ. ໄດ້ -F ທາງເລືອກ inhibits ການສະແດງຫນ້າທີ່
ຄໍານິຍາມ; ພຽງແຕ່ຊື່ຟັງຊັນແລະຄຸນລັກສະນະທີ່ຖືກພິມ. ຖ້າ extdebug
ຕົວເລືອກ shell ຖືກເປີດໃຊ້ໂດຍໃຊ້ ຮ້ານຄ້າ, ຊື່ໄຟລ໌ແຫຼ່ງແລະເລກແຖວບ່ອນທີ່
ຫນ້າທີ່ຖືກກໍານົດແມ່ນສະແດງເຊັ່ນດຽວກັນ. ໄດ້ -F ທາງເລືອກຫມາຍເຖິງ -f. ໄດ້ -g
ທາງເລືອກບັງຄັບໃຫ້ຕົວແປຖືກສ້າງຫຼືດັດແກ້ໃນຂອບເຂດທົ່ວໂລກ, ເຖິງແມ່ນວ່າເວລາໃດ
ປະກາດ ຖືກປະຕິບັດໃນຫນ້າທີ່ແກະ. ມັນຖືກລະເລີຍໃນທຸກກໍລະນີອື່ນໆ. ໄດ້
ຕົວເລືອກຕໍ່ໄປນີ້ສາມາດຖືກໃຊ້ເພື່ອຈໍາກັດຜົນຜະລິດໃຫ້ກັບຕົວແປທີ່ລະບຸໄວ້
attribute ຫຼືໃຫ້ຄຸນລັກສະນະຂອງຕົວແປ:
-a ແຕ່ລະຄົນ ຊື່ ແມ່ນຕົວແປ array ທີ່ຖືກດັດສະນີ (ເບິ່ງ ອາເລ ຂ້າງເທິງ).
-A ແຕ່ລະຄົນ ຊື່ ແມ່ນຕົວແປ array ທີ່ກ່ຽວຂ້ອງ (ເບິ່ງ ອາເລ ຂ້າງເທິງ).
-f ໃຊ້ຊື່ຟັງຊັນເທົ່ານັ້ນ.
-i ຕົວແປຖືກປະຕິບັດເປັນຈໍານວນເຕັມ; ການປະເມີນຜົນເລກຄະນິດສາດ (ເບິ່ງ AITHMETIC
ການວິເຄາະ ຂ້າງເທິງ) ຖືກປະຕິບັດເມື່ອຕົວແປຖືກມອບຫມາຍຄ່າ.
-l ເມື່ອຕົວແປຖືກກຳນົດຄ່າ, ຕົວອັກສອນຕົວພິມໃຫຍ່ທັງໝົດແມ່ນ
ປ່ຽນເປັນຕົວພິມນ້ອຍ. ຄຸນສົມບັດຕົວພິມໃຫຍ່ຖືກປິດໃຊ້ງານ.
-n ໃຫ້ແຕ່ລະຄົນ ຊື່ ໄດ້ ຊື່ref ຄຸນລັກສະນະ, ເຮັດໃຫ້ມັນເປັນການອ້າງອີງຊື່ກັບຄົນອື່ນ
ຕົວແປ. ຕົວແປອື່ນທີ່ຖືກກໍານົດໂດຍມູນຄ່າຂອງ ຊື່ທີ່ຢູ່ ທັງຫມົດ
ການອ້າງອິງແລະມອບຫມາຍໃຫ້ ຊື່, ຍົກເວັ້ນສໍາລັບການປ່ຽນແປງ -n ຄຸນລັກສະນະ
ຕົວຂອງມັນເອງ, ແມ່ນປະຕິບັດກ່ຽວກັບຕົວແປທີ່ອ້າງອີງໂດຍ ຊື່ມູນຄ່າຂອງ. ໄດ້ -n
ຄຸນສົມບັດບໍ່ສາມາດຖືກນຳໃຊ້ກັບຕົວແປອາເຣ.
-r ເຮັດໃຫ້ ຊື່s ອ່ານເທົ່ານັ້ນ. ຫຼັງຈາກນັ້ນ, ຊື່ເຫຼົ່ານີ້ບໍ່ສາມາດຖືກກໍາຫນົດຄ່າໂດຍ
ລາຍງານການມອບໝາຍຕໍ່ໄປ ຫຼືບໍ່ໄດ້ຕັ້ງ.
-t ໃຫ້ແຕ່ລະຄົນ ຊື່ ໄດ້ trace ຄຸນລັກສະນະ. ຟັງຊັນ traced ສືບທອດ ດີບັກ ແລະ
ກັບຄືນ ໃສ່ກັບດັກຈາກແກະການໂທ. ຄຸນສົມບັດການຕິດຕາມບໍ່ມີພິເສດ
ຄວາມຫມາຍສໍາລັບຕົວແປ.
-u ເມື່ອຕົວແປຖືກກຳນົດຄ່າ, ຕົວອັກສອນຕົວພິມນ້ອຍທັງໝົດແມ່ນ
ປ່ຽນເປັນຕົວພິມໃຫຍ່. ຄຸນສົມບັດຕົວພິມນ້ອຍຖືກປິດໃຊ້ງານ.
-x ເຄື່ອງຫມາຍ ຊື່s ສໍາລັບການສົ່ງອອກໄປຫາຄໍາສັ່ງຕໍ່ໄປໂດຍຜ່ານສະພາບແວດລ້ອມ.
ການໃຊ້ `+' ແທນ `-' ຈະປິດຄຸນສົມບັດແທນ, ໂດຍມີຂໍ້ຍົກເວັ້ນ
+a ອາດຈະບໍ່ຖືກນໍາໃຊ້ເພື່ອທໍາລາຍຕົວແປ array ແລະ +r ຈະບໍ່ເອົາການອ່ານເທົ່ານັ້ນ
ຄຸນລັກສະນະ. ເມື່ອໃຊ້ໃນຫນ້າທີ່, ປະກາດ ແລະ ປະເພດ ເຮັດໃຫ້ແຕ່ລະຄົນ ຊື່ ທ້ອງຖິ່ນ, ເປັນ
ກັບ ທ້ອງຖິ່ນ ຄໍາສັ່ງ, ເວັ້ນເສຍແຕ່ວ່າ -g ທາງເລືອກແມ່ນສະຫນອງໃຫ້. ຖ້າຊື່ຕົວແປແມ່ນ
ຕາມດ້ວຍ =ມູນຄ່າ, ຄ່າຂອງຕົວແປແມ່ນຕັ້ງເປັນ ມູນຄ່າ. ເມື່ອ ນຳ ໃຊ້ -a or -A
ແລະ syntax ການມອບຫມາຍປະສົມເພື່ອສ້າງຕົວແປ array, ຄຸນລັກສະນະເພີ່ມເຕີມ
ບໍ່ມີຜົນບັງຄັບໃຊ້ຈົນກ່ວາການມອບຫມາຍຕໍ່ໄປ. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າ an
ພົບທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງ, ມີຄວາມພະຍາຍາມທີ່ຈະກໍານົດຟັງຊັນໂດຍໃຊ້ ``-f
foo=bar'', ຄວາມພະຍາຍາມທີ່ຈະມອບໝາຍຄ່າໃຫ້ກັບຕົວແປທີ່ອ່ານເທົ່ານັ້ນ, ຄວາມພະຍາຍາມ
ຖືກສ້າງຂື້ນເພື່ອກຳນົດຄ່າໃຫ້ກັບຕົວແປ array ໂດຍບໍ່ຕ້ອງໃຊ້ຕົວປະສົມ
syntax ການມອບຫມາຍ (ເບິ່ງ ອາເລ ຂ້າງເທິງ), ຫນຶ່ງໃນ ຊື່ ບໍ່ແມ່ນແກະທີ່ຖືກຕ້ອງ
ຊື່ຕົວແປ, ມີຄວາມພະຍາຍາມທີ່ຈະປິດສະຖານະ readonly ສໍາລັບ readonly
variable, ມີຄວາມພະຍາຍາມທີ່ຈະປິດສະຖານະ array ສໍາລັບຕົວແປ array, ຫຼື an
ຄວາມພະຍາຍາມທີ່ຈະສະແດງຫນ້າທີ່ບໍ່ມີຢູ່ກັບ -f.
ທີ່ຢູ່ [-clpv] [+n] [-n]
ໂດຍບໍ່ມີທາງເລືອກ, ສະແດງບັນຊີລາຍຊື່ຂອງໄດເລກະທໍລີທີ່ຈື່ຈໍາໃນປັດຈຸບັນ. ໄດ້
ຈໍສະແດງຜົນເລີ່ມຕົ້ນຢູ່ໃນແຖວດຽວທີ່ມີຊື່ໄດເລກະທໍລີທີ່ແຍກອອກໂດຍຊ່ອງຫວ່າງ.
ໄດເລກະທໍລີຖືກເພີ່ມເຂົ້າໃນບັນຊີລາຍຊື່ດ້ວຍ pushd ຄໍາສັ່ງ; ໄດ້ popd ຄໍາສັ່ງລົບ
ລາຍການຈາກລາຍການ.
-c ລຶບລ້າງ stack ໄດເລກະທໍລີໂດຍການລຶບລາຍການທັງໝົດອອກ.
-l ຜະລິດລາຍຊື່ໂດຍໃຊ້ຊື່ເສັ້ນທາງເຕັມ; ຮູບແບບລາຍການເລີ່ມຕົ້ນໃຊ້ a
tilde ເພື່ອໝາຍເຖິງ home directory.
-p ພິມຊຸດໄດເລກະທໍລີດ້ວຍໜຶ່ງລາຍການຕໍ່ແຖວ.
-v ພິມ stack ໄດເລກະທໍລີດ້ວຍຫນຶ່ງ entry ຕໍ່ແຖວ, prefix ແຕ່ລະ entry ກັບ
ດັດຊະນີຂອງມັນຢູ່ໃນ stack.
+n ສະແດງ nth ເຂົ້ານັບຈາກຊ້າຍຂອງບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່ ໃນເວລາທີ່
ຖືກເອີ້ນໂດຍບໍ່ມີທາງເລືອກ, ເລີ່ມຕົ້ນດ້ວຍສູນ.
-n ສະແດງ nth ເຂົ້ານັບຈາກຂວາຂອງບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່
ເມື່ອຖືກເອີ້ນໂດຍບໍ່ມີທາງເລືອກ, ເລີ່ມຕົ້ນດ້ວຍສູນ.
ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນສະຫນອງໃຫ້ຫຼື n ດັດຊະນີນອກເຫນືອການ
ໃນຕອນທ້າຍຂອງ stack ໄດເລກະທໍລີ.
ປະຕິເສດ [-ອາ] [-h] [ວຽກ ... ]
ໂດຍບໍ່ມີທາງເລືອກ, ເອົາແຕ່ລະອັນ ວຽກ ຈາກຕາຕະລາງວຽກທີ່ຫ້າວຫັນ. ຖ້າ ວຽກ is
ບໍ່ປະຈຸບັນ, ແລະບໍ່ແມ່ນ -a ຫລື -r ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ໄດ້ ໃນປະຈຸບັນ ວຽກເຮັດງານທໍາ is
ໃຊ້. ຖ້າ -h ທາງເລືອກແມ່ນໃຫ້, ແຕ່ລະຄົນ ວຽກ ບໍ່ໄດ້ຖືກໂຍກຍ້າຍອອກຈາກຕາຕະລາງ, ແຕ່
ຖືກຫມາຍດັ່ງນັ້ນ ຕິດຕາມ ບໍ່ໄດ້ຖືກສົ່ງໄປຫາວຽກຖ້າ shell ໄດ້ຮັບ a ຕິດຕາມທີ່ຢູ່ ຖ້າຫາກວ່າ
no ວຽກ ແມ່ນສະຫນອງໃຫ້, ໄດ້ -a ທາງເລືອກຫມາຍເຖິງການລົບຫຼືຫມາຍການເຮັດວຽກທັງຫມົດ; ໄດ້ -r
ທາງເລືອກທີ່ບໍ່ມີ a ວຽກ argument ຈໍາກັດການດໍາເນີນການກັບການເຮັດວຽກ. ກັບຄືນ
ຄ່າແມ່ນ 0 ເວັ້ນເສຍແຕ່ a ວຽກ ບໍ່ໄດ້ລະບຸວຽກທີ່ຖືກຕ້ອງ.
echo [-neE] [arg ... ]
ຜົນຜະລິດ args, ແຍກດ້ວຍຍະຫວ່າງ, ຕິດຕາມດ້ວຍແຖວໃໝ່. ສະຖານະການກັບຄືນແມ່ນ
0 ເວັ້ນເສຍແຕ່ວ່າຄວາມຜິດພາດການຂຽນເກີດຂື້ນ. ຖ້າ -n ແມ່ນລະບຸໄວ້, ແຖວໃໝ່ທີ່ຕິດຕາມມາ
ສະກັດກັ້ນ. ຖ້າ -e ທາງເລືອກແມ່ນໄດ້ຮັບ, ການຕີຄວາມໝາຍຂອງ backslash ຕໍ່ໄປນີ້
ຕົວອັກສອນ Escape ຖືກເປີດໃຊ້. ໄດ້ -E ທາງເລືອກປິດການຕີຄວາມໝາຍຂອງສິ່ງເຫຼົ່ານີ້
ຕົວອັກສອນຫລົບຫນີ, ເຖິງແມ່ນວ່າຢູ່ໃນລະບົບທີ່ພວກເຂົາຖືກຕີຄວາມຫມາຍຕາມຄ່າເລີ່ມຕົ້ນ. ໄດ້
xpg_echo ຕົວເລືອກ shell ອາດຈະຖືກນໍາໃຊ້ເພື່ອກໍານົດແບບເຄື່ອນໄຫວບໍ່ວ່າຈະເປັນຫຼືບໍ່ echo
ຂະຫຍາຍໂຕອັກສອນຫລົບໜີເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. echo ບໍ່ຕີຄວາມໝາຍ -- ຫມາຍຄວາມວ່າ
ສິ້ນສຸດທາງເລືອກ. echo ແປລໍາດັບການຫລົບຫນີຕໍ່ໄປນີ້:
\a ເຕືອນ (ກະດິ່ງ)
\b ພື້ນຫຼັງ
\c ສະກັດກັ້ນຜົນຜະລິດຕື່ມອີກ
\e
\E ລັກສະນະຫລົບຫນີ
\f ອາຫານແບບຟອມ
\n ເສັ້ນ ໃໝ່
\r ສົ່ງຄືນ
\t ແຖບແນວນອນ
\v ແຖບແນວຕັ້ງ
\\ backslash
\0nnn ຕົວອັກສອນແປດບິດທີ່ມີຄ່າເປັນຄ່າແປດ nnn (ສູນຫາສາມ
ຕົວເລກແປດ)
\xHH ຕົວອັກສອນແປດບິດທີ່ມີມູນຄ່າເປັນເລກຖານສິບຫົກ HH (ຫນຶ່ງຫຼືສອງ
ຕົວເລກ hex)
\uຮຮ. ຮ ຕົວອັກສອນ Unicode (ISO/IEC 10646) ທີ່ມີຄ່າເປັນເລກຖານສິບຫົກ
ຮຮ. ຮ (ຫນຶ່ງຫາສີ່ຕົວເລກ hex)
\UHHHHHHH
ຕົວອັກສອນ Unicode (ISO/IEC 10646) ທີ່ມີຄ່າເປັນເລກຖານສິບຫົກ
HHHHHHH (ຫນຶ່ງຫາແປດຕົວເລກ hex)
ເຮັດໃຫ້ສາມາດ [-a] [-dnps] [-f ຊື່ເອກະສານ] [ຊື່ ... ]
ເປີດໃຊ້ງານແລະປິດການທໍາງານຄໍາສັ່ງໃນຕົວຂອງ shell. ການປິດການໃຊ້ງານຕົວຊ່ວຍເຮັດໃຫ້ດິສກ໌
ຄໍາສັ່ງທີ່ມີຊື່ດຽວກັນກັບ shell buildin ທີ່ຈະດໍາເນີນການໂດຍບໍ່ມີການ
ການລະບຸຊື່ເສັ້ນທາງເຕັມ, ເຖິງແມ່ນວ່າປົກກະຕິແລ້ວ shell ຊອກຫາ buildins
ກ່ອນຄໍາສັ່ງຂອງແຜ່ນ. ຖ້າ -n ຖືກນໍາໃຊ້, ແຕ່ລະຄົນ ຊື່ ແມ່ນພິການ; ຖ້າບໍ່ດັ່ງນັ້ນ, ຊື່ ມີ
ເປີດໃຊ້ງານ. ສໍາລັບຕົວຢ່າງ, ການນໍາໃຊ້ ການທົດສອບ binary ພົບຜ່ານ PATH ແທນທີ່ຈະ
ລຸ້ນ shell buildin, ແລ່ນ ``ເປີດໃຊ້ -n test''. ໄດ້ -f ທາງເລືອກຫມາຍເຖິງການໂຫຼດໃຫມ່
ຄໍາສັ່ງ builtin ຊື່ ຈາກວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ ຊື່ເອກະສານ, ກ່ຽວກັບລະບົບທີ່ສະຫນັບສະຫນູນແບບເຄື່ອນໄຫວ
ກຳລັງໂຫຼດ. ໄດ້ -d ທາງເລືອກຈະລຶບ builtin ທີ່ໂຫຼດມາກ່ອນຫນ້ານີ້ -f. ຖ້າບໍ່
ຊື່ ການໂຕ້ຖຽງແມ່ນໃຫ້, ຫຼືຖ້າຫາກວ່າ -p ທາງເລືອກແມ່ນໄດ້ສະຫນອງໃຫ້, ບັນຊີລາຍຊື່ຂອງ buildins ແກະ
ຖືກພິມອອກ. ໂດຍບໍ່ມີການໂຕ້ຖຽງທາງເລືອກອື່ນ, ບັນຊີລາຍຊື່ປະກອບດ້ວຍແກະທີ່ເປີດໃຊ້ທັງຫມົດ
ເຄື່ອງກໍ່ສ້າງ. ຖ້າ -n ໄດ້ຖືກສະຫນອງໃຫ້, ມີພຽງແຕ່ buildins ທີ່ພິການໄດ້ຖືກພິມອອກ. ຖ້າ -a is
ສະຫນອງໃຫ້, ບັນຊີລາຍຊື່ທີ່ພິມອອກປະກອບມີ buildins ທັງຫມົດ, ມີການຊີ້ບອກວ່າຫຼື
ບໍ່ແມ່ນແຕ່ລະອັນຖືກເປີດໃຊ້. ຖ້າ -s ໄດ້ຖືກສະຫນອງ, ຜົນຜະລິດໄດ້ຖືກຈໍາກັດຢູ່ໃນ POSIX
ພິເສດ ເຄື່ອງກໍ່ສ້າງ. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ a ຊື່ ບໍ່ແມ່ນ shell buildin ຫຼື
ມີຄວາມຜິດພາດໃນການໂຫຼດ buildin ໃໝ່ຈາກວັດຖຸທີ່ໃຊ້ຮ່ວມກັນ.
ການປະເມີນ [arg ... ]
ໄດ້ args ຖືກອ່ານແລະປະກອບເຂົ້າກັນເປັນຄໍາສັ່ງດຽວ. ຄໍາສັ່ງນີ້ແມ່ນ
ຫຼັງຈາກນັ້ນການອ່ານແລະປະຕິບັດໂດຍ shell, ແລະສະຖານະການອອກຂອງມັນແມ່ນກັບຄືນມາເປັນຄ່າ
of ການປະເມີນ. ຖ້າບໍ່ມີ ໂຕ້ຖຽງ, ຫຼືພຽງແຕ່ການໂຕ້ຖຽງ null, ການປະເມີນ ກັບຄືນ 0.
exec [-cl] [-a ຊື່] [ຄໍາສັ່ງ [ກະທູ້ທີ່]]
If ຄໍາສັ່ງ ຖືກກໍານົດ, ມັນປ່ຽນແທນແກະ. ບໍ່ມີຂະບວນການໃຫມ່ຖືກສ້າງຂຶ້ນ. ໄດ້
ກະທູ້ທີ່ ກາຍເປັນການໂຕ້ຖຽງກັບ ຄໍາສັ່ງທີ່ຢູ່ ຖ້າຫາກວ່າ -l ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ແກະ
ວາງ dash ໃນຕອນຕົ້ນຂອງການໂຕ້ຖຽງ zeroth ຜ່ານໄປ ຄໍາສັ່ງ. ນີ້ແມ່ນ
ແມ່ນຫຍັງ ເຂົ້າສູ່ລະບົບ(1) ເຮັດ. ໄດ້ -c ສາເຫດທາງເລືອກ ຄໍາສັ່ງ ຈະຖືກປະຕິບັດດ້ວຍການຫວ່າງເປົ່າ
ສະພາບແວດລ້ອມ. ຖ້າ -a ໄດ້ຖືກສະຫນອງ, ແກະຜ່ານ ຊື່ ເປັນການໂຕ້ຖຽງ zeroth ກັບ
ຄໍາສັ່ງປະຕິບັດ. ຖ້າ ຄໍາສັ່ງ ບໍ່ສາມາດປະຕິບັດສໍາລັບເຫດຜົນບາງຢ່າງ, ບໍ່ແມ່ນ
ແກະການໂຕ້ຕອບອອກຈາກ, ເວັ້ນເສຍແຕ່ວ່າ execfail ຕົວເລືອກ shell ຖືກເປີດໃຊ້. ໃນນັ້ນ
ກໍລະນີ, ມັນກັບຄືນຄວາມລົ້ມເຫຼວ. ແກະແບບໂຕ້ຕອບຈະສົ່ງຄືນຄວາມລົ້ມເຫລວຖ້າໄຟລ໌ບໍ່ສາມາດ
ຖືກປະຕິບັດ. ຖ້າ ຄໍາສັ່ງ ບໍ່ໄດ້ລະບຸໄວ້, ການປ່ຽນເສັ້ນທາງໃດໆມີຜົນໃນ
ແກະປະຈຸບັນ, ແລະສະຖານະກັບຄືນແມ່ນ 0. ຖ້າມີຄວາມຜິດພາດການປ່ຽນເສັ້ນທາງ, the
ສະຖານະການກັບຄືນແມ່ນ 1.
ການທ່ອງທ່ຽວ [n]
ເຮັດໃຫ້ shell ອອກໄປດ້ວຍສະຖານະຂອງ nທີ່ຢູ່ ຖ້າຫາກວ່າ n ຖືກລະເວັ້ນ, ສະຖານະການອອກແມ່ນ
ວ່າຄໍາສັ່ງສຸດທ້າຍປະຕິບັດ. ໃສ່ກັບດັກ ອອກ ຖືກປະຕິບັດກ່ອນແກະ
ສິ້ນສຸດ.
ການສົ່ງອອກ [-fn] [ຊື່[=ຄໍາ]]...
ການສົ່ງອອກ -p
ທີ່ສະຫນອງໃຫ້ ຊື່ ຖືກຫມາຍສໍາລັບການສົ່ງອອກອັດຕະໂນມັດກັບສະພາບແວດລ້ອມຂອງ
ຄໍາສັ່ງປະຕິບັດຕໍ່ມາ. ຖ້າ -f ທາງເລືອກແມ່ນໄດ້ຮັບ, ໄດ້ ຊື່ ອ້າງເຖິງ
ຫນ້າທີ່. ຖ້າບໍ່ມີ ຊື່ ແມ່ນໃຫ້, ຫຼືຖ້າຫາກວ່າ -p ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ບັນຊີລາຍຊື່ຂອງຊື່
ຂອງຕົວແປທີ່ສົ່ງອອກທັງຫມົດແມ່ນພິມອອກ. ໄດ້ -n ທາງເລືອກເຮັດໃຫ້ຊັບສິນສົ່ງອອກ
ຖືກໂຍກຍ້າຍອອກຈາກແຕ່ລະຄົນ ຊື່. ຖ້າຊື່ຕົວແປແມ່ນຕິດຕາມດ້ວຍ =ຄໍາ, ມູນຄ່າຂອງ
ຕົວແປຖືກຕັ້ງເປັນ ຄໍາ. ການສົ່ງອອກ ສົ່ງຄືນສະຖານະທາງອອກຂອງ 0 ເວັ້ນເສຍແຕ່ວ່າບໍ່ຖືກຕ້ອງ
ທາງເລືອກແມ່ນພົບ, ຫນຶ່ງໃນ ຊື່ ບໍ່ແມ່ນຊື່ຕົວແປຂອງ shell ທີ່ຖືກຕ້ອງ, ຫຼື -f
ແມ່ນສະຫນອງໃຫ້ກັບ a ຊື່ ມັນບໍ່ແມ່ນຫນ້າທີ່.
fc [-e ຊື່] [-lnr] [ຄັ້ງທໍາອິດ] [ສຸດທ້າຍ]
fc -s [pat=ຕົວແທນ] [cmd]
ແບບຟອມທໍາອິດເລືອກລະດັບຄໍາສັ່ງຈາກ ຄັ້ງທໍາອິດ to ສຸດທ້າຍ ຈາກບັນຊີລາຍການປະຫວັດສາດ
ແລະສະແດງ ຫຼືແກ້ໄຂ ແລະປະຕິບັດພວກມັນຄືນໃໝ່. ຫນ້າທໍາອິດ ແລະ ສຸດທ້າຍ ອາດຈະຖືກລະບຸວ່າເປັນ
string (ເພື່ອຊອກຫາຄໍາສັ່ງສຸດທ້າຍທີ່ເລີ່ມຕົ້ນດ້ວຍ string ນັ້ນ) ຫຼືເປັນຕົວເລກ (an
index ເຂົ້າໄປໃນບັນຊີລາຍຊື່ປະຫວັດສາດ, ບ່ອນທີ່ຕົວເລກລົບຖືກນໍາໃຊ້ເປັນການຊົດເຊີຍຈາກ
ໝາຍເລກຄໍາສັ່ງປະຈຸບັນ). ຖ້າ ສຸດທ້າຍ ບໍ່ໄດ້ລະບຸມັນຖືກກໍານົດເປັນຄໍາສັ່ງປະຈຸບັນ
ສໍາລັບລາຍຊື່ (ດັ່ງນັ້ນ ``fc -l -10'' ພິມຄໍາສັ່ງ 10 ສຸດທ້າຍ) ແລະເພື່ອ ຄັ້ງທໍາອິດ
ຖ້າບໍ່ດັ່ງນັ້ນ. ຖ້າ ຄັ້ງທໍາອິດ ບໍ່ໄດ້ລະບຸມັນຖືກກໍານົດເປັນຄໍາສັ່ງທີ່ຜ່ານມາສໍາລັບການດັດແກ້
ແລະ -16 ສໍາລັບລາຍຊື່.
ໄດ້ -n ທາງເລືອກສະກັດກັ້ນຕົວເລກຄໍາສັ່ງໃນເວລາທີ່ລາຍຊື່. ໄດ້ -r ທາງເລືອກປີ້ນກັບກັນ
ຄໍາສັ່ງຂອງຄໍາສັ່ງ. ຖ້າ -l ທາງເລືອກແມ່ນໄດ້ຮັບ, ຄໍາສັ່ງແມ່ນໄດ້ລະບຸໄວ້ໃນ
ຜົນຜະລິດມາດຕະຖານ. ຖ້າບໍ່ດັ່ງນັ້ນ, ບັນນາທິການໃຫ້ໂດຍ ຊື່ ຖືກເອີ້ນຢູ່ໃນໄຟລ໌
ປະກອບດ້ວຍຄໍາສັ່ງເຫຼົ່ານັ້ນ. ຖ້າ ຊື່ ບໍ່ໄດ້ໃຫ້, ມູນຄ່າຂອງ FCEDIT ຕົວແປ
ຖືກນໍາໃຊ້, ແລະມູນຄ່າຂອງ EDITOR if FCEDIT ບໍ່ໄດ້ຕັ້ງ. ຖ້າບໍ່ມີຕົວແປໃດຖືກຕັ້ງ,
vi ຖືກນໍາໃຊ້. ເມື່ອການແກ້ໄຂສຳເລັດແລ້ວ, ຄຳສັ່ງທີ່ແກ້ໄຂແລ້ວຈະຖືກສະທ້ອນ ແລະດຳເນີນການ.
ໃນຮູບແບບທີສອງ, ຄໍາສັ່ງ ຖືກປະຕິບັດຄືນໃຫມ່ຫຼັງຈາກແຕ່ລະຕົວຢ່າງ pat ຖືກແທນທີ່
by ຕົວແທນ. ຄໍາສັ່ງ ແມ່ນ intepreted ຄືກັນກັບ ຄັ້ງທໍາອິດ ຂ້າງເທິງ. ນາມແຝງທີ່ເປັນປະໂຫຍດທີ່ຈະໃຊ້ກັບ
ນີ້ແມ່ນ ``r="fc -s"'', ດັ່ງນັ້ນການພິມ ``r cc'' ແລ່ນຄໍາສັ່ງສຸດທ້າຍທີ່ເລີ່ມຕົ້ນດ້ວຍ.
``cc'' ແລະພິມ ``r'' ຄືນໃໝ່ຄຳສັ່ງສຸດທ້າຍ.
ຖ້າຮູບແບບທໍາອິດຖືກນໍາໃຊ້, ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນ
ພົບຫຼື ຄັ້ງທໍາອິດ or ສຸດທ້າຍ ລະບຸເສັ້ນປະຫວັດສາດຢູ່ນອກຂອບເຂດ. ຖ້າ -e ທາງເລືອກ
ໄດ້ຖືກສະຫນອງ, ມູນຄ່າກັບຄືນແມ່ນມູນຄ່າຂອງຄໍາສັ່ງສຸດທ້າຍທີ່ປະຕິບັດຫຼືລົ້ມເຫລວ
ຖ້າມີຂໍ້ຜິດພາດເກີດຂຶ້ນກັບໄຟລ໌ຄໍາສັ່ງຊົ່ວຄາວ. ຖ້າຮູບແບບທີສອງແມ່ນ
ຖືກນໍາໃຊ້, ສະຖານະການກັບຄືນແມ່ນຄໍາສັ່ງທີ່ຖືກປະຕິບັດຄືນໃຫມ່, ເວັ້ນເສຍແຕ່ cmd ບໍ່
ລະບຸເສັ້ນປະຫວັດສາດທີ່ຖືກຕ້ອງ, ໃນກໍລະນີນີ້ fc ກັບຄືນຄວາມລົ້ມເຫລວ.
fg [ວຽກ]
ຊີວະປະຫວັດ ວຽກ ທີ່ຢູ່ເບື້ອງຫນ້າ, ແລະເຮັດໃຫ້ມັນເປັນວຽກໃນປະຈຸບັນ. ຖ້າ ວຽກ ບໍ່ແມ່ນ
ໃນປັດຈຸບັນ, ແນວຄວາມຄິດຂອງຫອຍຂອງ ໃນປະຈຸບັນ ວຽກເຮັດງານທໍາ ຖືກນໍາໃຊ້. ມູນຄ່າກັບຄືນມາແມ່ນ
ຂອງຄໍາສັ່ງທີ່ວາງໄວ້ໃນ foreground, ຫຼືຄວາມລົ້ມເຫຼວຖ້າຫາກວ່າດໍາເນີນການໃນເວລາທີ່ການຄວບຄຸມວຽກແມ່ນ
ປິດການໃຊ້ງານຫຼື, ເມື່ອດໍາເນີນການກັບການຄວບຄຸມວຽກທີ່ເປີດໃຊ້, ຖ້າ ວຽກ ບໍ່ໄດ້ລະບຸທີ່ຖືກຕ້ອງ
ວຽກ ຫຼື ວຽກ ລະບຸວຽກທີ່ເລີ່ມຕົ້ນໂດຍບໍ່ມີການຄວບຄຸມວຽກ.
ໝໍ້ optstring ຊື່ [ໂຕ້ຖຽງ]
ໝໍ້ ຖືກນໍາໃຊ້ໂດຍຂັ້ນຕອນຂອງແກະເພື່ອວິເຄາະຕົວກໍານົດການຕໍາແຫນ່ງ. optstring
ມີຕົວອັກສອນທາງເລືອກທີ່ຈະຮັບຮູ້; ຖ້າຕົວລະຄອນໃດໜຶ່ງຖືກຕິດຕາມດ້ວຍ a
ຈໍ້າສອງເມັດ, ທາງເລືອກທີ່ຄາດວ່າຈະມີການໂຕ້ຖຽງ, ເຊິ່ງຄວນຈະແຍກອອກຈາກ
ມັນໂດຍພື້ນທີ່ສີຂາວ. ຈໍ້າສອງເມັດ ແລະເຄື່ອງໝາຍຄໍາຖາມອາດຈະບໍ່ຖືກໃຊ້ເປັນ
ຕົວອັກສອນທາງເລືອກ. ແຕ່ລະຄັ້ງຖືກຮຽກຮ້ອງ, ໝໍ້ ວາງຕົວເລືອກຕໍ່ໄປໃນ
shell ຕົວແປ ຊື່, ການເລີ່ມຕົ້ນ ຊື່ ຖ້າມັນບໍ່ມີ, ແລະດັດຊະນີຂອງ
argument ຕໍ່ໄປທີ່ຈະດໍາເນີນການເຂົ້າໄປໃນຕົວແປ ເລືອກ. ເລືອກ ຖືກຕັ້ງຕົ້ນເປັນ 1
ແຕ່ລະຄັ້ງທີ່ shell ຫຼື shell script ຖືກເອີ້ນ. ເມື່ອທາງເລືອກທີ່ຕ້ອງການ
ການໂຕ້ຖຽງ, ໝໍ້ ສະຖານທີ່ທີ່ໂຕ້ຖຽງກັບຕົວແປ OPTARG. ແກະເຮັດ
ບໍ່ຣີເຊັດ ເລືອກ ອັດຕະໂນມັດ; ມັນຕ້ອງຖືກຕັ້ງຄືນໃໝ່ດ້ວຍຕົນເອງລະຫວ່າງການໂທຫຼາຍຄັ້ງໄປຫາ
ໝໍ້ ພາຍໃນການຮຽກຮ້ອງ shell ດຽວກັນຖ້າຊຸດຂອງພາລາມິເຕີໃຫມ່ຈະຖືກໃຊ້.
ເມື່ອພົບທາງເລືອກທີ່ສິ້ນສຸດ, ໝໍ້ ອອກດ້ວຍຄ່າຕອບແທນທີ່ໃຫຍ່ກວ່າ
ກ່ວາສູນ. ເລືອກ ຖືກກໍານົດໄວ້ໃນດັດຊະນີຂອງການໂຕ້ຖຽງທີ່ບໍ່ແມ່ນທາງເລືອກທໍາອິດ, ແລະ ຊື່
ຖືກກໍານົດເປັນ ?.
ໝໍ້ ໂດຍປົກກະຕິຈະວິເຄາະພາລາມິເຕີຂອງຕຳແໜ່ງ, ແຕ່ຖ້າມີການໃຫ້ຂໍ້ໂຕ້ແຍ້ງຫຼາຍຂຶ້ນ
in ໂຕ້ຖຽງ, ໝໍ້ ວິເຄາະເຫຼົ່ານັ້ນແທນ.
ໝໍ້ ສາມາດລາຍງານຄວາມຜິດພາດໃນສອງວິທີ. ຖ້າຫາກວ່າລັກສະນະທໍາອິດຂອງ optstring ເປັນ
ຈໍ້າສອງເມັດ, ງຽບ ການລາຍງານຄວາມຜິດພາດໄດ້ຖືກນໍາໃຊ້. ໃນການດໍາເນີນງານປົກກະຕິ, ຂໍ້ຄວາມວິນິດໄສ
ຖືກພິມອອກເມື່ອທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຫຼືການໂຕ້ຖຽງທາງເລືອກທີ່ຂາດຫາຍໄປແມ່ນພົບ. ຖ້າ
ຕົວແປ OPTERR ຖືກຕັ້ງເປັນ 0, ບໍ່ມີຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກສະແດງ, ເຖິງແມ່ນວ່າ
ລັກສະນະທໍາອິດຂອງ optstring ບໍ່ແມ່ນຈໍ້າສອງເມັດ.
ຖ້າເຫັນຕົວເລືອກທີ່ບໍ່ຖືກຕ້ອງ, ໝໍ້ ສະຖານທີ່ ? ເຂົ້າໄປໃນ ຊື່ ແລະ, ຖ້າບໍ່ງຽບ, ພິມ
ຂໍ້ຄວາມຜິດພາດແລະບໍ່ໄດ້ຕັ້ງ OPTARGທີ່ຢູ່ ຖ້າຫາກວ່າ ໝໍ້ ແມ່ນ silent, ລັກສະນະທາງເລືອກ
ພົບເຫັນຖືກຈັດໃສ່ໃນ OPTARG ແລະບໍ່ມີການພິມຂໍ້ຄວາມວິນິໄສ.
ຖ້າການໂຕ້ຖຽງທີ່ຕ້ອງການບໍ່ພົບ, ແລະ ໝໍ້ ບໍ່ໄດ້ງຽບ, ເຄື່ອງໝາຍຄໍາຖາມ (?)
ແມ່ນຖືກຈັດໃສ່ໃນ ຊື່, OPTARG ບໍ່ໄດ້ຕັ້ງ, ແລະຂໍ້ຄວາມວິນິໄສໄດ້ຖືກພິມອອກ. ຖ້າ
ໝໍ້ ແມ່ນງຽບ, ຫຼັງຈາກນັ້ນເປັນຈໍ້າສອງເມັດ (:) ຖືກຈັດໃສ່ໃນ ຊື່ ແລະ OPTARG ຖືກຕັ້ງຄ່າໃຫ້
ພົບຕົວອັກສອນທາງເລືອກ.
ໝໍ້ ຕອບເປັນຈິງ ຖ້າພົບເຫັນທາງເລືອກ, ລະບຸ ຫຼືບໍ່ໄດ້ລະບຸ. ມັນກັບຄືນມາ
false ຖ້າຫາກວ່າການສິ້ນສຸດຂອງທາງເລືອກແມ່ນພົບຫຼືຄວາມຜິດພາດເກີດຂຶ້ນ.
hash [-lr] [-p ຊື່ເອກະສານ] [-dt] [ຊື່]
ແຕ່ລະຄັ້ງ hash ຖືກເອີ້ນ, ຊື່ເສັ້ນທາງເຕັມຂອງຄໍາສັ່ງ ຊື່ ຖືກ ກຳ ນົດໂດຍ
ຄົ້ນຫາໄດເລກະທໍລີໃນ $ PATH ແລະຈື່ໄດ້. ເຄີຍຈື່ໄວ້ກ່ອນໜ້ານີ້
ຊື່ເສັ້ນທາງຖືກຍົກເລີກ. ຖ້າ -p ທາງເລືອກແມ່ນໄດ້ສະຫນອງໃຫ້, ບໍ່ມີການຊອກຫາເສັ້ນທາງແມ່ນໄດ້ດໍາເນີນການ,
ແລະ ຊື່ເອກະສານ ຖືກນໍາໃຊ້ເປັນຊື່ໄຟລ໌ເຕັມຂອງຄໍາສັ່ງ. ໄດ້ -r ທາງເລືອກເຮັດໃຫ້ເກີດການ
shell ເພື່ອລືມສະຖານທີ່ຈື່ທັງຫມົດ. ໄດ້ -d ທາງເລືອກເຮັດໃຫ້ແກະລືມ
ສະຖານທີ່ຈື່ຈໍາຂອງແຕ່ລະຄົນ ຊື່ທີ່ຢູ່ ຖ້າຫາກວ່າ -t ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ເຕັມ
ຊື່ເສັ້ນທາງທີ່ແຕ່ລະຄົນ ຊື່ ສອດຄ້ອງກັນແມ່ນພິມອອກ. ຖ້າຫຼາຍ ຊື່ ການໂຕ້ຖຽງແມ່ນ
ສະໜອງໃຫ້ -t, ການ ຊື່ ຖືກພິມອອກກ່ອນຊື່ເຕັມທີ່ hashed. ໄດ້ -l
ທາງເລືອກເຮັດໃຫ້ຜົນຜະລິດໄດ້ຮັບການສະແດງຢູ່ໃນຮູບແບບທີ່ອາດຈະນໍາໃຊ້ຄືນໃຫມ່ເປັນການປ້ອນຂໍ້ມູນໄດ້. ຖ້າ
ບໍ່ມີການໂຕ້ຖຽງແມ່ນໃຫ້, ຫຼືຖ້າຫາກວ່າພຽງແຕ່ -l ແມ່ນສະຫນອງໃຫ້, ຂໍ້ມູນກ່ຽວກັບການຈື່ຈໍາ
ຄໍາສັ່ງຖືກພິມອອກ. ສະຖານະການກັບຄືນແມ່ນຄວາມຈິງເວັ້ນເສຍແຕ່ a ຊື່ ບໍ່ພົບ ຫຼື
ທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນສະຫນອງໃຫ້.
ຊ່ວຍເຫຼືອ [-dms] [ຮູບແບບ]
ສະແດງຂໍ້ມູນທີ່ເປັນປະໂຫຍດກ່ຽວກັບຄໍາສັ່ງ builtin. ຖ້າ ຮູບແບບ ແມ່ນລະບຸໄວ້, ຊ່ວຍເຫຼືອ
ໃຫ້ການຊ່ວຍເຫຼືອລະອຽດກ່ຽວກັບຄໍາສັ່ງທັງຫມົດທີ່ກົງກັນ ຮູບແບບ; ຖ້າບໍ່ດັ່ງນັ້ນການຊ່ວຍເຫຼືອສໍາລັບທຸກຄົນ
buildins ແລະໂຄງສ້າງການຄວບຄຸມແກະຖືກພິມອອກ.
-d ສະແດງລາຍລະອຽດສັ້ນໆຂອງແຕ່ລະອັນ ຮູບແບບ
-m ສະແດງລາຍລະອຽດຂອງແຕ່ລະຄົນ ຮູບແບບ ໃນຮູບແບບ manpage
-s ສະແດງບົດສະຫຼຸບການນຳໃຊ້ສັ້ນໆສຳລັບແຕ່ລະຄົນ ຮູບແບບ
ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າບໍ່ມີຄໍາສັ່ງທີ່ກົງກັນ ຮູບແບບ.
ປະຫວັດສາດ [n]
ປະຫວັດສາດ -c
ປະຫວັດສາດ -d ຊົດເຊີຍ
ປະຫວັດສາດ -anrw [ຊື່ເອກະສານ]
ປະຫວັດສາດ -p arg [arg ...]
ປະຫວັດສາດ -s arg [arg ...]
ໂດຍບໍ່ມີທາງເລືອກ, ສະແດງລາຍຊື່ປະຫວັດຄໍາສັ່ງດ້ວຍຕົວເລກແຖວ. ລາຍຊື່ແຖວ
ມີ * ໄດ້ຖືກດັດແກ້. ການໂຕ້ຖຽງຂອງ n ລາຍຊື່ພຽງແຕ່ສຸດທ້າຍ n ສາຍ. ຖ້າ
shell ຕົວແປ ເວລາປະຫວັດສາດ ຖືກກໍານົດແລະບໍ່ null, ມັນຖືກນໍາໃຊ້ເປັນຮູບແບບສະຕຣິງ
ສໍາລັບການ ເວລາຕໍ່ເວລາ(3) ເພື່ອສະແດງສະແຕມເວລາທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະປະຫວັດສາດທີ່ສະແດງ
ເຂົ້າ. ບໍ່ມີ intervening ເປົ່າແມ່ນພິມລະຫວ່າງເວລາທີ່ມີຮູບແບບແລະ
ເສັ້ນປະຫວັດສາດ. ຖ້າ ຊື່ເອກະສານ ແມ່ນສະຫນອງໃຫ້, ມັນຖືກນໍາໃຊ້ເປັນຊື່ຂອງເອກະສານປະຫວັດສາດ;
ຖ້າບໍ່ແມ່ນ, ມູນຄ່າຂອງ ປະຫວັດຫຍໍ້ ຖືກນໍາໃຊ້. ທາງເລືອກ, ຖ້າສະຫນອງໃຫ້, ມີດັ່ງຕໍ່ໄປນີ້
ຄວາມຫມາຍ:
-c ລຶບລ້າງລາຍຊື່ປະຫວັດໂດຍການລຶບລາຍການທັງໝົດອອກ.
-d ຊົດເຊີຍ
ລົບລາຍການປະຫວັດສາດຢູ່ໃນຕໍາແຫນ່ງ ຊົດເຊີຍ.
-a ຕື່ມໃສ່ເສັ້ນປະຫວັດສາດ ``ໃໝ່'' (ເສັ້ນປະຫວັດສາດເຂົ້າມາຕັ້ງແຕ່ຕົ້ນ
ຂອງປະຈຸບັນ bash session) ກັບໄຟລ໌ປະຫວັດສາດ.
-n ອ່ານເສັ້ນປະຫວັດສາດທີ່ຍັງບໍ່ໄດ້ອ່ານຈາກໄຟລ໌ປະຫວັດສາດເຂົ້າໄປໃນ
ບັນຊີລາຍຊື່ປະຫວັດສາດໃນປະຈຸບັນ. ເຫຼົ່ານີ້ແມ່ນເສັ້ນຕໍ່ທ້າຍກັບໄຟລ໌ປະຫວັດສາດນັບຕັ້ງແຕ່
ການເລີ່ມຕົ້ນຂອງປະຈຸບັນ bash session
-r ອ່ານເນື້ອໃນຂອງເອກະສານປະຫວັດສາດແລະຕື່ມຂໍ້ມູນໃສ່ກັບປະຫວັດສາດໃນປະຈຸບັນ
ລາຍຊື່
-w ຂຽນບັນຊີລາຍຊື່ປະຫວັດສາດໃນປະຈຸບັນໃສ່ໄຟລ໌ປະຫວັດສາດ, ຂຽນທັບປະຫວັດສາດ
ເນື້ອໃນຂອງໄຟລ໌.
-p ປະຕິບັດການທົດແທນປະຫວັດສາດດັ່ງຕໍ່ໄປນີ້ ໂຕ້ຖຽງ ແລະສະແດງຜົນໄດ້ຮັບ
ຜົນຜະລິດມາດຕະຖານ. ບໍ່ໄດ້ເກັບຮັກສາຜົນໄດ້ຮັບໃນບັນຊີລາຍຊື່ປະຫວັດສາດ. ແຕ່ລະ
arg ຕ້ອງໄດ້ຮັບການອ້າງອີງເພື່ອປິດການຂະຫຍາຍປະຫວັດປົກກະຕິ.
-s ເກັບຮັກສາໄດ້ ໂຕ້ຖຽງ ໃນບັນຊີລາຍຊື່ປະຫວັດສາດເປັນລາຍການດຽວ. ຄໍາສັ່ງສຸດທ້າຍໃນ
ບັນຊີລາຍຊື່ປະຫວັດສາດໄດ້ຖືກໂຍກຍ້າຍອອກກ່ອນທີ່ຈະ ໂຕ້ຖຽງ ມີການເພີ່ມ.
ຖ້າ ເວລາປະຫວັດສາດ ຕົວປ່ຽນແປງແມ່ນກໍານົດ, ຂໍ້ມູນປະຈໍາສະເວລາທີ່ກ່ຽວຂ້ອງກັບ
ແຕ່ລະລາຍການປະຫວັດສາດຖືກຂຽນໃສ່ແຟ້ມປະຫວັດສາດ, ໝາຍ ດ້ວຍ ຄຳ ເຫັນປະຫວັດສາດ
ລັກສະນະ. ເມື່ອເອກະສານປະຫວັດສາດຖືກອ່ານ, ເສັ້ນເລີ່ມຕົ້ນດ້ວຍຄໍາຄິດຄໍາເຫັນປະຫວັດສາດ
ຕົວອັກສອນທີ່ປະຕິບັດຕາມທັນທີດ້ວຍຕົວເລກຖືກຕີຄວາມໝາຍເປັນເວລາສຳລັບ
ເສັ້ນປະຫວັດສາດທີ່ຜ່ານມາ. ຄ່າກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນ
ພົບ, ຂໍ້ຜິດພາດເກີດຂຶ້ນໃນຂະນະທີ່ອ່ານຫຼືຂຽນເອກະສານປະຫວັດສາດ, ບໍ່ຖືກຕ້ອງ
ຊົດເຊີຍ ແມ່ນສະຫນອງໃຫ້ເປັນການໂຕ້ຖຽງກັບ -d, ຫຼືການຂະຫຍາຍປະຫວັດສາດສະຫນອງໃຫ້ເປັນ
ການໂຕ້ຖຽງກັບ -p ລົ້ມເຫລວ.
ວຽກເຮັດງານທໍາ [-lnprs] [ ວຽກ ... ]
ວຽກເຮັດງານທໍາ -x ຄໍາສັ່ງ [ ໂຕ້ຖຽງ ... ]
ແບບຟອມທໍາອິດລາຍຊື່ວຽກທີ່ມີການເຄື່ອນໄຫວ. ທາງເລືອກທີ່ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-l ລາຍຊື່ຂະບວນການ ID ນອກເຫນືອຈາກຂໍ້ມູນປົກກະຕິ.
-n ສະແດງຂໍ້ມູນພຽງແຕ່ກ່ຽວກັບວຽກທີ່ມີການປ່ຽນແປງສະຖານະພາບນັບຕັ້ງແຕ່ຜູ້ໃຊ້
ໄດ້ຮັບການແຈ້ງການສຸດທ້າຍຂອງສະຖານະພາບຂອງເຂົາເຈົ້າ.
-p ບອກພຽງແຕ່ ID ຂະບວນການຂອງຫົວຫນ້າກຸ່ມຂະບວນການຂອງວຽກ.
-r ສະແດງພຽງແຕ່ວຽກທີ່ເຮັດວຽກ.
-s ສະແດງພຽງແຕ່ວຽກທີ່ຢຸດ.
If ວຽກ ໄດ້ຖືກມອບໃຫ້, ຜົນຜະລິດຖືກຈໍາກັດກັບຂໍ້ມູນກ່ຽວກັບວຽກນັ້ນ. ໄດ້
ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ຈະພົບທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງ ຫຼືບໍ່ຖືກຕ້ອງ ວຽກ is
ສະຫນອງໃຫ້.
ຖ້າ -x ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ວຽກເຮັດງານທໍາ ແທນທີ່ ວຽກ ພົບເຫັນຢູ່ໃນ ຄໍາສັ່ງ or ໂຕ້ຖຽງ
ກັບ ID ກຸ່ມຂະບວນການທີ່ສອດຄ້ອງກັນ, ແລະດໍາເນີນການ ຄໍາສັ່ງ ຜ່ານມັນ ໂຕ້ຖຽງ,
ກັບຄືນສະຖານະການອອກຂອງຕົນ.
ຂ້າ [-s sigspec | -n ສັນຍາລັກ | -sigspec] [pid | ວຽກ]...
ຂ້າ -l [sigspec | exit_status]
ສົ່ງສັນຍານທີ່ມີຊື່ໂດຍ sigspec or ສັນຍາລັກ ກັບຂະບວນການທີ່ມີຊື່ໂດຍ pid or
ວຽກ. sigspec ແມ່ນທັງຊື່ສັນຍານທີ່ບໍ່ລະອຽດອ່ອນຕົວພິມໃຫຍ່ເຊັ່ນ SIGKILL (ມີ ຫຼື
ໂດຍບໍ່ມີການ SIG prefix) ຫຼືຫມາຍເລກສັນຍານ; ສັນຍາລັກ ເປັນຕົວເລກສັນຍານ. ຖ້າ sigspec
ບໍ່ແມ່ນປະຈຸບັນ, ຫຼັງຈາກນັ້ນ ໄລຍະເປົ້າໝາຍ ແມ່ນສົມມຸດ. ການໂຕ້ຖຽງຂອງ -l ບອກຊື່ສັນຍານ.
ຖ້າການໂຕ້ແຍ້ງໃດຖືກສະໜອງໃຫ້ເມື່ອໃດ -l ແມ່ນໃຫ້, ຊື່ຂອງສັນຍານ
ທີ່ສອດຄ້ອງກັນກັບການໂຕ້ຖຽງແມ່ນລະບຸໄວ້, ແລະສະຖານະການກັບຄືນມາແມ່ນ 0. ໄດ້
exit_status ການໂຕ້ຖຽງກັບ -l ແມ່ນຕົວເລກທີ່ລະບຸວ່າເປັນຕົວເລກສັນຍານ ຫຼື ຕົວເລກ
ສະຖານະການອອກຈາກຂະບວນການທີ່ຢຸດໂດຍສັນຍານ. ຂ້າ ກັບຄືນເປັນຄວາມຈິງຖ້າຫາກວ່າຢ່າງຫນ້ອຍຫນຶ່ງ
ສັນຍານໄດ້ຖືກສົ່ງຢ່າງສໍາເລັດຜົນ, ຫຼືຜິດພາດຖ້າຫາກວ່າຄວາມຜິດພາດເກີດຂຶ້ນຫຼືທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນ
ພົບ.
ໃຫ້ arg [arg ... ]
ແຕ່ລະຄົນ arg ເປັນການສະແດງອອກເລກຄະນິດສາດທີ່ຈະໄດ້ຮັບການປະເມີນຜົນ (ເບິ່ງ AITHMETIC ການວິເຄາະ
ຂ້າງເທິງ). ຖ້າສຸດທ້າຍ arg ປະເມີນເປັນ 0, ໃຫ້ ຜົນຕອບແທນ 1; 0 ຖືກສົ່ງຄືນຖ້າບໍ່ດັ່ງນັ້ນ.
ທ້ອງຖິ່ນ [ທາງເລືອກ] [ຊື່[=ມູນຄ່າ] ...]
ສໍາລັບແຕ່ລະ argument, ຕົວແປທ້ອງຖິ່ນທີ່ມີຊື່ ຊື່ ຖືກສ້າງຂື້ນ, ແລະມອບຫມາຍ ມູນຄ່າ. ໄດ້
ທາງເລືອກ ສາມາດເປັນທາງເລືອກໃດນຶ່ງທີ່ຍອມຮັບໂດຍ ປະກາດທີ່ຢູ່ ເມື່ອໃດ ທ້ອງຖິ່ນ ຖືກນໍາໃຊ້ພາຍໃນ a
function, ມັນເຮັດໃຫ້ເກີດການປ່ຽນແປງ ຊື່ ເພື່ອໃຫ້ມີຂອບເຂດທີ່ສັງເກດເຫັນຖືກຈໍາກັດກັບສິ່ງນັ້ນ
ຫນ້າທີ່ແລະລູກຂອງມັນ. ໂດຍບໍ່ມີຕົວປະຕິບັດການ, ທ້ອງຖິ່ນ ຂຽນລາຍຊື່ທ້ອງຖິ່ນ
ຕົວແປກັບຜົນຜະລິດມາດຕະຖານ. ມັນເປັນຄວາມຜິດພາດໃນການນໍາໃຊ້ ທ້ອງຖິ່ນ ເມື່ອບໍ່ຢູ່ໃນ a
ຫນ້າທີ່. ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ ທ້ອງຖິ່ນ ຖືກນໍາໃຊ້ນອກຫນ້າທີ່, ເປັນ
ທີ່ບໍ່ຖືກຕ້ອງ ຊື່ ແມ່ນສະຫນອງໃຫ້, ຫຼື ຊື່ ແມ່ນຕົວແປທີ່ອ່ານໄດ້ເທົ່ານັ້ນ.
ອອກຈາກລະບົບ ອອກຈາກແກະການເຂົ້າສູ່ລະບົບ.
ໄຟລ໌ແຜນທີ່ [-n ນັບ] [-O ຕົ້ນກໍາເນີດ] [-s ນັບ] [-t] [-u fd] [-C ໂທກັບ] [-c quantum] [array]
readarray [-n ນັບ] [-O ຕົ້ນກໍາເນີດ] [-s ນັບ] [-t] [-u fd] [-C ໂທກັບ] [-c quantum]
[array]
ອ່ານເສັ້ນຈາກການປ້ອນມາດຕະຖານເຂົ້າໃນຕົວແປ array ທີ່ຖືກດັດສະນີ array, ຫຼືຈາກ
ຕົວອະທິບາຍໄຟລ໌ fd ຖ້າຫາກວ່າ -u ທາງເລືອກແມ່ນສະຫນອງໃຫ້. ຕົວແປ ແຜນທີ່ ເປັນ
Default array. ທາງເລືອກ, ຖ້າໃຫ້, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-n ສຳເນົາຫຼາຍສຸດ ນັບ ສາຍ. ຖ້າ ນັບ ແມ່ນ 0, ເສັ້ນທັງຫມົດຖືກຄັດລອກ.
-O ເລີ່ມມອບໝາຍໃຫ້ array ຢູ່ໃນດັດຊະນີ ຕົ້ນກໍາເນີດ. ດັດຊະນີເລີ່ມຕົ້ນແມ່ນ 0.
-s ຍົກເລີກສິ່ງທໍາອິດ ນັບ ສາຍອ່ານ.
-t ເອົາແຖວໃໝ່ທີ່ຕໍ່ຈາກແຕ່ລະແຖວທີ່ອ່ານ.
-u ອ່ານເສັ້ນຈາກຕົວອະທິບາຍໄຟລ໌ fd ແທນການປ້ອນຂໍ້ມູນມາດຕະຖານ.
-C ປະເມີນ ໂທກັບ ແຕ່ລະຄັ້ງ quantum ສາຍຖືກອ່ານ. ໄດ້ -c ທາງເລືອກກໍານົດ
quantum.
-c ລະບຸຈໍານວນສາຍທີ່ອ່ານລະຫວ່າງແຕ່ລະສາຍຫາ ໂທກັບ.
If -C ແມ່ນລະບຸໄວ້ໂດຍບໍ່ມີການ -c, ຄ່າເລີ່ມຕົ້ນຂອງ quantum ແມ່ນ 5000. ເມື່ອ ໂທກັບ is
ການປະເມີນ, ມັນຖືກສະຫນອງດັດສະນີຂອງອົງປະກອບ array ຕໍ່ໄປທີ່ຈະມອບຫມາຍແລະ
ເສັ້ນທີ່ຈະຖືກກໍານົດໃຫ້ອົງປະກອບນັ້ນເປັນການໂຕ້ຖຽງເພີ່ມເຕີມ. ໂທກັບ is
ປະເມີນຫຼັງຈາກເສັ້ນຖືກອ່ານແຕ່ກ່ອນທີ່ອົງປະກອບ array ຈະຖືກມອບຫມາຍ.
ຖ້າບໍ່ໄດ້ສະໜອງແຫຼ່ງທີ່ມາທີ່ຈະແຈ້ງ, ໄຟລ໌ແຜນທີ່ ຈະແຈ້ງ array ກ່ອນທີ່ຈະມອບຫມາຍ
ກັບມັນ.
ໄຟລ໌ແຜນທີ່ ກັບຄືນມາຢ່າງສໍາເລັດຜົນເວັ້ນເສຍແຕ່ວ່າທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຫຼືການໂຕ້ຖຽງທາງເລືອກແມ່ນ
ສະຫນອງໃຫ້, array ບໍ່ຖືກຕ້ອງ ຫຼືບໍ່ສາມາດມອບໝາຍໄດ້, ຫຼືຖ້າ array ບໍ່ແມ່ນ array ທີ່ຖືກດັດສະນີ.
popd [-n] [+n] [-n]
ເອົາລາຍການອອກຈາກ stack directory. ໂດຍບໍ່ມີການໂຕ້ຖຽງ, ເອົາສ່ວນເທິງ
ໄດເລກະທໍລີຈາກ stack, ແລະດໍາເນີນການ a cd ໄປຫາໄດເລກະທໍລີເທິງສຸດໃຫມ່. ການໂຕ້ຖຽງ,
ຖ້າສະຫນອງໃຫ້, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-n ສະກັດກັ້ນການປ່ຽນແປງປົກກະຕິຂອງໄດເລກະທໍລີເມື່ອຖອນໄດເລກະທໍລີຈາກ
stack, ດັ່ງນັ້ນພຽງແຕ່ stack ແມ່ນ manipulated.
+n ເອົາອອກ nth ເຂົ້ານັບຈາກຊ້າຍຂອງບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່,
ເລີ່ມຕົ້ນດ້ວຍສູນ. ຕົວຢ່າງ: ``popd +0'' ເອົາໄດເລກະທໍລີທໍາອິດ,
``popd +1'' ທີສອງ.
-n ເອົາອອກ nth ເຂົ້ານັບຈາກຂວາຂອງບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່,
ເລີ່ມຕົ້ນດ້ວຍສູນ. ຕົວຢ່າງ: ``popd -0'' ເອົາໄດເລກະທໍລີສຸດທ້າຍ,
``popd -1'' ຕໍ່ໄປຈົນຮອດສຸດທ້າຍ.
ຖ້າ popd ຄໍາສັ່ງປະສົບຜົນສໍາເລັດ, a ທີ່ຢູ່ ແມ່ນປະຕິບັດເຊັ່ນດຽວກັນ, ແລະການກັບຄືນ
ສະຖານະແມ່ນ 0. popd ກັບຄືນ false ຖ້າພົບທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງ, ໄດເລກະທໍລີ
stack ແມ່ນຫວ່າງເປົ່າ, ບັນຊີລາຍຊື່ stack directory ທີ່ບໍ່ມີທີ່ມີຢູ່ແລ້ວແມ່ນລະບຸ, ຫຼືໄດເລກະທໍລີ
ການປ່ຽນແປງລົ້ມເຫລວ.
printf [-v var] ຮູບແບບ [ກະທູ້ທີ່]
ຂຽນຮູບແບບ ກະທູ້ທີ່ ຜົນຜະລິດມາດຕະຖານພາຍໃຕ້ການຄວບຄຸມຂອງ
ຮູບແບບ. ໄດ້ -v ທາງເລືອກເຮັດໃຫ້ຜົນຜະລິດຖືກມອບຫມາຍໃຫ້ກັບຕົວແປ var ແທນທີ່ຈະ
ກ່ວາຈະຖືກພິມອອກເປັນຜົນຜະລິດມາດຕະຖານ.
ໄດ້ ຮູບແບບ ແມ່ນສາຍຕົວອັກສອນທີ່ມີສາມປະເພດຂອງວັດຖຸ: ທໍາມະດາ
ຕົວອັກສອນ, ເຊິ່ງໄດ້ຖືກຄັດລອກພຽງແຕ່ກັບຜົນຜະລິດມາດຕະຖານ, ລໍາດັບການຫນີຕົວອັກສອນ,
ທີ່ໄດ້ຮັບການປ່ຽນແປງແລະສໍາເນົາກັບຜົນຜະລິດມາດຕະຖານ, ແລະສະເພາະຮູບແບບ,
ແຕ່ລະອັນເຮັດໃຫ້ເກີດການພິມຂອງລໍາດັບຕໍ່ໄປ ການໂຕ້ຖຽງ. ນອກຈາກ
ມາດຕະຖານ printf(1) ສະເພາະຮູບແບບ, printf ຕີຄວາມໝາຍຕໍ່ໄປນີ້
ສ່ວນຂະຫຍາຍ:
%b ສາເຫດ printf ເພື່ອຂະຫຍາຍລໍາດັບການຫລົບຫນີ backslash ໃນທີ່ສອດຄ້ອງກັນ
ການໂຕ້ຖຽງ (ຍົກເວັ້ນນັ້ນ \c ຢຸດຜົນຜະລິດ, backslashes ໃນ \', \", ແລະ \?
ບໍ່ໄດ້ຖືກໂຍກຍ້າຍ, ແລະການຫລົບຫນີ octal ເລີ່ມຕົ້ນດ້ວຍ \0 ອາດຈະມີເຖິງສີ່
ຕົວເລກ).
%q ສາເຫດ printf ເພື່ອອອກຜົນທີ່ສອດຄ້ອງກັນ ການໂຕ້ຖຽງ ໃນຮູບແບບທີ່ສາມາດເປັນ
ນຳໃຊ້ຄືນເປັນການປ້ອນຂໍ້ມູນແກະ.
%(datefmt)T
ສາເຫດ printf ເພື່ອສົ່ງຜົນອອກຂອງສະຕຣິງວັນທີ-ເວລາທີ່ເປັນຜົນມາຈາກການໃຊ້ datefmt as
ສະຕຣິງຮູບແບບສໍາລັບ ເວລາຕໍ່ເວລາ(3). ທີ່ສອດຄ້ອງກັນ ການໂຕ້ຖຽງ ເປັນຈຳນວນເຕັມ
ເປັນຕົວແທນຂອງຈໍານວນວິນາທີນັບຕັ້ງແຕ່ຍຸກ. ສອງການໂຕ້ຖຽງພິເສດ
ຄ່າອາດຈະຖືກນໍາໃຊ້: -1 ສະແດງເຖິງເວລາປະຈຸບັນ, ແລະ -2 ເປັນຕົວແທນຂອງ
ເວລາແກະໄດ້ຖືກເອີ້ນ. ຖ້າບໍ່ມີການລະບຸການໂຕ້ຖຽງ, ການປ່ຽນໃຈເຫລື້ອມໃສປະຕິບັດຕົວ
ຄືກັບວ່າ -1 ໄດ້ຖືກມອບໃຫ້. ນີ້ແມ່ນຂໍ້ຍົກເວັ້ນປົກກະຕິ printf ພຶດຕິ ກຳ.
ການໂຕ້ຖຽງຕໍ່ກັບຕົວລະບຸຮູບແບບທີ່ບໍ່ແມ່ນສະຕຣິງຖືກປະຕິບັດເປັນຄ່າຄົງທີ່ C, ຍົກເວັ້ນວ່າ a
ເຄື່ອງໝາຍບວກ ຫຼື ລົບນຳໜ້າແມ່ນອະນຸຍາດ, ແລະ ຖ້າຕົວນຳໜ້າແມ່ນຕົວດຽວ ຫຼື
ວົງຢືມຄູ່, ຄ່າແມ່ນຄ່າ ASCII ຂອງລັກສະນະຕໍ່ໄປນີ້.
ໄດ້ ຮູບແບບ ຖືກ ນຳ ໃຊ້ຄືນ ໃໝ່ ຕາມຄວາມ ຈຳ ເປັນເພື່ອບໍລິໂພກທັງ ໝົດ ກະທູ້ທີ່ທີ່ຢູ່ ຖ້າຫາກວ່າ ຮູບແບບ
ຮຽກຮ້ອງໃຫ້ມີຫຼາຍ ກະທູ້ທີ່ ຫຼາຍກ່ວາສະຫນອງໃຫ້, ຮູບແບບພິເສດສະເພາະປະຕິບັດ
ຄືກັບວ່າຄ່າສູນ ຫຼືສະຕຣິງ null, ຕາມຄວາມເໝາະສົມ, ໄດ້ຖືກສະໜອງໃຫ້. ກັບຄືນ
ຄ່າແມ່ນສູນຕໍ່ກັບຄວາມສຳເລັດ, ບໍ່ແມ່ນສູນຕໍ່ກັບຄວາມລົ້ມເຫລວ.
pushd [-n] [+n] [-n]
pushd [-n] [dir]
ເພີ່ມໄດເລກະທໍລີຢູ່ເທິງສຸດຂອງ stack directory, ຫຼື rotates stack, ເຮັດໃຫ້
ດ້ານເທິງໃຫມ່ຂອງ stack ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ. ໂດຍບໍ່ມີການໂຕ້ຖຽງ,
ແລກປ່ຽນສອງໄດເລກະທໍລີເທິງສຸດ ແລະສົ່ງຜົນຕອບແທນ 0, ເວັ້ນເສຍແຕ່ໄດເຣັກທໍຣີ stack
ຫວ່າງເປົ່າ. ການໂຕ້ຖຽງ, ຖ້າໃຫ້, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-n ສະກັດກັ້ນການປ່ຽນແປງປົກກະຕິຂອງໄດເລກະທໍລີເມື່ອເພີ່ມໄດເລກະທໍລີໃສ່
stack, ດັ່ງນັ້ນພຽງແຕ່ stack ແມ່ນ manipulated.
+n ໝຸນ stack ເພື່ອວ່າ nth directory (ນັບຈາກຊ້າຍຂອງ
ບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່, ເລີ່ມຕົ້ນດ້ວຍສູນ) ຢູ່ເທິງສຸດ.
-n ໝຸນ stack ເພື່ອວ່າ nth directory (ນັບຈາກຂວາຂອງ
ບັນຊີລາຍຊື່ສະແດງໃຫ້ເຫັນໂດຍ ທີ່ຢູ່, ເລີ່ມຕົ້ນດ້ວຍສູນ) ຢູ່ເທິງສຸດ.
dir Adds dir ກັບ stack ໄດເລກະທໍລີຢູ່ເທິງ, ເຮັດໃຫ້ມັນເປັນປະຈຸບັນໃຫມ່
ໄດເລກະທໍລີເຮັດວຽກຄືກັບວ່າມັນຖືກສະຫນອງໃຫ້ເປັນການໂຕ້ຖຽງກັບ cd
ກໍ່ສ້າງ.
ຖ້າ pushd ຄໍາສັ່ງປະສົບຜົນສໍາເລັດ, a ທີ່ຢູ່ ແມ່ນປະຕິບັດເຊັ່ນດຽວກັນ. ຖ້າຮູບແບບທໍາອິດ
ຖືກນໍາໃຊ້, pushd ສົ່ງຄືນ 0 ເວັ້ນເສຍແຕ່ວ່າ cd to dir ລົ້ມເຫລວ. ດ້ວຍຮູບແບບທີສອງ, pushd
ຕອບ 0 ເວັ້ນເສຍແຕ່ວ່າ stack ໄດເລກະທໍລີຫວ່າງເປົ່າ, stack directory ທີ່ບໍ່ມີຢູ່
ອົງປະກອບແມ່ນໄດ້ລະບຸໄວ້, ຫຼືການປ່ຽນແປງລະບົບເປັນປັດຈຸບັນໃຫມ່ທີ່ກໍານົດໄວ້
ໄດເລກະທໍລີລົ້ມເຫລວ.
ນອນd [-LP]
ພິມຊື່ເສັ້ນທາງຢ່າງແທ້ຈິງຂອງໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ. ຊື່ເສັ້ນທາງທີ່ພິມອອກ
ບໍ່ມີການເຊື່ອມຕໍ່ສັນຍາລັກຖ້າຫາກວ່າ -P ທາງເລືອກແມ່ນສະຫນອງໃຫ້ຫຼື -o ທາງດ້ານຮ່າງກາຍ ທາງເລືອກ
ການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin ຖືກເປີດໃຊ້. ຖ້າ -L ທາງເລືອກແມ່ນຖືກນໍາໃຊ້, ຊື່ເສັ້ນທາງ
ພິມອອກອາດມີການເຊື່ອມຕໍ່ສັນຍາລັກ. ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ມີຂໍ້ຜິດພາດເກີດຂຶ້ນ
ໃນຂະນະທີ່ອ່ານຊື່ຂອງໄດເລກະທໍລີປະຈຸບັນຫຼືທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງແມ່ນສະຫນອງໃຫ້.
ອ່ານ [-ers] [-a ຊື່] [-d ຂອບເຂດ] [-i ຂໍ້ຄວາມ] [-n nchars] [-N nchars] [-p ການກະຕຸ້ນເຕືອນ] [-t
ຫມົດເວລາ] [-u fd] [ຊື່ ... ]
ຫນຶ່ງແຖວຖືກອ່ານຈາກວັດສະດຸປ້ອນມາດຕະຖານ, ຫຼືຈາກຕົວອະທິບາຍໄຟລ໌ fd ສະຫນອງໃຫ້
ເປັນການໂຕ້ຖຽງກັບ -u ທາງເລືອກ, ແລະຄໍາທໍາອິດຖືກມອບຫມາຍໃຫ້ທໍາອິດ ຊື່,
ຄໍາທີ່ສອງໄປຫາທີສອງ ຊື່, ແລະອື່ນໆ, ກັບຄໍາທີ່ເຫຼືອແລະຂອງເຂົາເຈົ້າ
intervening ແຍກການມອບຫມາຍໃຫ້ສຸດທ້າຍ ຊື່. ຖ້າມີຄໍາທີ່ອ່ານຫນ້ອຍລົງ
ຈາກກະແສການປ້ອນຂໍ້ມູນຫຼາຍກວ່າຊື່, ຊື່ທີ່ຍັງເຫຼືອຖືກມອບໝາຍຄ່າຫວ່າງເປົ່າ.
ຕົວລະຄອນໃນ IFS ຖືກນໍາໃຊ້ເພື່ອແບ່ງເສັ້ນເປັນຄໍາສັບຕ່າງໆໂດຍໃຊ້ກົດລະບຽບດຽວກັນ
shell ໃຊ້ສໍາລັບການຂະຫຍາຍ (ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ Word ການແບ່ງປັນ). backslash ໄດ້
ລັກສະນະ (\) ອາດຈະຖືກນໍາໃຊ້ເພື່ອເອົາຄວາມຫມາຍພິເສດໃດໆສໍາລັບການອ່ານຕົວອັກສອນຕໍ່ໄປ
ແລະສໍາລັບການສືບຕໍ່ສາຍ. ທາງເລືອກ, ຖ້າສະຫນອງໃຫ້, ມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-a ຊື່
ຄໍາທີ່ຖືກມອບຫມາຍໃຫ້ຕົວຊີ້ວັດລໍາດັບຂອງຕົວແປ array ຊື່,
ເລີ່ມແຕ່ 0. ຊື່ ບໍ່ໄດ້ຖືກຕັ້ງກ່ອນທີ່ຄ່າໃຫມ່ຈະຖືກມອບຫມາຍ. ອື່ນໆ
ຊື່ ການໂຕ້ຖຽງຖືກລະເລີຍ.
-d ຂອບເຂດ
ລັກສະນະທໍາອິດຂອງ ຂອບເຂດ ແມ່ນໃຊ້ເພື່ອຢຸດສາຍການປ້ອນຂໍ້ມູນ, ແທນທີ່ຈະ
ກ່ວາເສັ້ນໃຫມ່.
-e ຖ້າການປ້ອນຂໍ້ມູນມາດຕະຖານມາຈາກ terminal, ເສັ້ນອ່ານ (ເບິ່ງ READLINE
ຂ້າງເທິງ) ແມ່ນໃຊ້ເພື່ອໃຫ້ໄດ້ສາຍ. Readline ໃຊ້ປັດຈຸບັນ (ຫຼືຄ່າເລີ່ມຕົ້ນ,
ຖ້າຫາກວ່າການແກ້ໄຂເສັ້ນບໍ່ໄດ້ມີການເຄື່ອນໄຫວໃນເມື່ອກ່ອນ) ການຕັ້ງຄ່າການແກ້ໄຂ.
-i ຂໍ້ຄວາມ
If ເສັ້ນອ່ານ ຖືກນໍາໃຊ້ເພື່ອອ່ານເສັ້ນ, ຂໍ້ຄວາມ ຖືກຈັດໃສ່ໃນການແກ້ໄຂ
buffer ກ່ອນການແກ້ໄຂເລີ່ມຕົ້ນ.
-n nchars
ອ່ານ ກັບຄືນມາຫຼັງຈາກອ່ານ nchars ຕົວອັກສອນແທນທີ່ຈະລໍຖ້າ a
ການປ້ອນຂໍ້ມູນເຕັມເສັ້ນ, ແຕ່ໃຫ້ກຽດຕົວຂັ້ນຫາກໜ້ອຍກວ່າ nchars
ຕົວອັກສອນຖືກອ່ານກ່ອນຕົວຂັ້ນ.
-N nchars
ອ່ານ ກັບຄືນມາຫຼັງຈາກອ່ານແນ່ນອນ nchars ລັກສະນະແທນທີ່ຈະລໍຖ້າ
ເສັ້ນທີ່ສົມບູນຂອງການປ້ອນຂໍ້ມູນ, ເວັ້ນເສຍແຕ່ວ່າ EOF ໄດ້ຖືກພົບຫຼື ອ່ານ ໝົດເວລາ.
ຕົວອັກສອນຕົວຂັ້ນທີ່ພົບໃນການປ້ອນຂໍ້ມູນບໍ່ໄດ້ຖືກປະຕິບັດເປັນພິເສດ ແລະ
ບໍ່ເຮັດໃຫ້ເກີດ ອ່ານ ເພື່ອກັບຄືນຈົນກ່ວາ nchars ຕົວອັກສອນຖືກອ່ານ.
-p ການກະຕຸ້ນເຕືອນ
ການສະແດງ ການກະຕຸ້ນເຕືອນ ກ່ຽວກັບຄວາມຜິດພາດມາດຕະຖານ, ໂດຍບໍ່ມີການຕິດຕາມໃຫມ່, ກ່ອນ
ພະຍາຍາມອ່ານການປ້ອນຂໍ້ມູນໃດໆ. ການເຕືອນຈະສະແດງພຽງແຕ່ຖ້າການປ້ອນເຂົ້າເທົ່ານັ້ນ
ມາຈາກ terminal.
-r Backslash ບໍ່ໄດ້ປະຕິບັດເປັນຕົວລະຄອນຫລົບຫນີ. backslash ແມ່ນພິຈາລະນາ
ເພື່ອເປັນສ່ວນຫນຶ່ງຂອງສາຍ. ໂດຍສະເພາະ, ຄູ່ backslash-newline ອາດຈະບໍ່ເປັນ
ໃຊ້ເປັນສາຍຕໍ່ເນື່ອງ.
-s ໂໝດງຽບ. ຖ້າການປ້ອນຂໍ້ມູນມາຈາກ terminal, ຕົວອັກສອນຈະບໍ່ຖືກສະທ້ອນ.
-t ຫມົດເວລາ
ເຫດຜົນ ອ່ານ ໝົດເວລາ ແລະສົ່ງຄືນຄວາມລົ້ມເຫຼວ ຖ້າມີສາຍການປ້ອນຂໍ້ມູນຄົບຖ້ວນ (ຫຼື a
ຈໍານວນຕົວອັກສອນທີ່ລະບຸໄວ້) ບໍ່ໄດ້ອ່ານພາຍໃນ ຫມົດເວລາ ວິນາທີ. ຫມົດເວລາ
ອາດຈະເປັນຕົວເລກທົດສະນິຍົມທີ່ມີສ່ວນເສດເຫຼືອຕາມຖານທົດສະນິຍົມ
ຈຸດ. ທາງເລືອກນີ້ແມ່ນປະສິດທິຜົນພຽງແຕ່ຖ້າຫາກວ່າ ອ່ານ ກຳລັງອ່ານຂໍ້ມູນຈາກ ກ
terminal, ທໍ່, ຫຼືໄຟລ໌ພິເສດອື່ນໆ; ມັນບໍ່ມີຜົນໃນເວລາທີ່ອ່ານຈາກ
ໄຟລ໌ປົກກະຕິ. ຖ້າ ອ່ານ ໝົດເວລາ, ອ່ານ ບັນທຶກການປ້ອນຂໍ້ມູນບາງສ່ວນທີ່ອ່ານເຂົ້າໄປໃນ
ຕົວແປທີ່ລະບຸໄວ້ ຊື່ທີ່ຢູ່ ຖ້າຫາກວ່າ ຫມົດເວລາ ແມ່ນ 0, ອ່ານ ກັບຄືນມາທັນທີ,
ໂດຍບໍ່ຕ້ອງພະຍາຍາມອ່ານຂໍ້ມູນໃດໆ. ສະຖານະທາງອອກແມ່ນ 0 ຖ້າມີການປ້ອນຂໍ້ມູນເຂົ້າ
ຢູ່ໃນຕົວອະທິບາຍໄຟລ໌ທີ່ລະບຸ, ບໍ່ແມ່ນສູນ. ສະຖານະການອອກແມ່ນ
ຫຼາຍກວ່າ 128 ຖ້າເວລາໝົດເວລາ.
-u fd ອ່ານການປ້ອນຂໍ້ມູນຈາກຕົວອະທິບາຍໄຟລ໌ fd.
ຖ້າບໍ່ ຊື່ ໄດ້ຖືກສະຫນອງ, ເສັ້ນອ່ານຖືກມອບຫມາຍໃຫ້ກັບຕົວແປ REPLY. ໄດ້
ລະຫັດກັບຄືນແມ່ນສູນ, ເວັ້ນເສຍແຕ່ຈະພົບໄຟລ໌ສິ້ນສຸດ, ອ່ານ ໝົດເວລາ (ໃນນັ້ນ
ກໍລະນີທີ່ລະຫັດກັບຄືນມາຫຼາຍກ່ວາ 128, ຄວາມຜິດພາດການມອບຫມາຍຕົວປ່ຽນແປງ (ເຊັ່ນ:
ການມອບໝາຍໃຫ້ກັບຕົວແປທີ່ອ່ານເທົ່ານັ້ນ) ເກີດຂຶ້ນ, ຫຼືຕົວອະທິບາຍໄຟລ໌ບໍ່ຖືກຕ້ອງຖືກສະໜອງໃຫ້
ເປັນການໂຕ້ຖຽງກັບ -u.
ອ່ານຢ່າງດຽວ [-aAf] [-p] [ຊື່[=ຄໍາ] ...]
ໃຫ້ ຊື່ ຖືກໝາຍວ່າອ່ານເທົ່ານັ້ນ; ຄຸນຄ່າຂອງສິ່ງເຫຼົ່ານີ້ ຊື່ ອາດຈະບໍ່ມີການປ່ຽນແປງ
ໂດຍການມອບຫມາຍຕໍ່ໄປ. ຖ້າ -f ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ຫນ້າທີ່
ທີ່ສອດຄ້ອງກັນກັບ ຊື່ ຖືກຫມາຍດັ່ງນັ້ນ. ໄດ້ -a ທາງເລືອກຈໍາກັດຕົວແປທີ່ຈະ
indexed arrays; ໄດ້ -A ທາງເລືອກຈໍາກັດຕົວແປກັບ array ການຮ່ວມມື. ຖ້າ
ທາງເລືອກທັງສອງແມ່ນໄດ້ສະຫນອງໃຫ້, -A ມີຄວາມສຳຄັນກວ່າ. ຖ້າບໍ່ມີ ຊື່ ການໂຕ້ຖຽງແມ່ນໃຫ້, ຫຼື
ຖ້າຫາກວ່າ -p ທາງເລືອກແມ່ນໄດ້ສະຫນອງໃຫ້, ບັນຊີລາຍການຂອງຊື່ readonly ທັງຫມົດແມ່ນພິມອອກ. ອື່ນໆ
ຕົວເລືອກຕ່າງໆອາດຈະຖືກໃຊ້ເພື່ອຈໍາກັດຜົນຜະລິດໃຫ້ກັບຊຸດຍ່ອຍຂອງຊຸດອ່ານເທົ່ານັ້ນ
ຊື່. ໄດ້ -p ທາງເລືອກເຮັດໃຫ້ຜົນຜະລິດຖືກສະແດງຢູ່ໃນຮູບແບບທີ່ອາດຈະຖືກນໍາໃຊ້ຄືນ
ເປັນການປ້ອນຂໍ້ມູນ. ຖ້າຊື່ຕົວແປແມ່ນຕິດຕາມດ້ວຍ =ຄໍາ, ມູນຄ່າຂອງຕົວແປແມ່ນ
ຕັ້ງຄ່າ ຄໍາ. ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ຈະພົບທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງ, ຫນຶ່ງ
ຂອງ ຊື່ ບໍ່ແມ່ນຊື່ຕົວແປຂອງ shell ທີ່ຖືກຕ້ອງ, ຫຼື -f ແມ່ນສະຫນອງໃຫ້ກັບ a ຊື່ ທີ່
ບໍ່ແມ່ນຫນ້າທີ່.
ການກັບຄືນມາ [n]
ເຮັດໃຫ້ຟັງຊັນຢຸດການປະຕິບັດ ແລະສົ່ງຄືນຄ່າທີ່ລະບຸໂດຍ n ຂອງຕົນ
ຜູ້ໂທ. ຖ້າ n ຖືກລະເວັ້ນ, ສະຖານະການກັບຄືນແມ່ນຄໍາສັ່ງສຸດທ້າຍທີ່ຖືກປະຕິບັດໃນ
ຮ່າງກາຍຂອງຫນ້າທີ່. ຖ້າ ການກັບຄືນມາ ຖືກໃຊ້ນອກຟັງຊັນ, ແຕ່ໃນລະຫວ່າງການປະຕິບັດ a
script ໂດຍ . (ແຫຼ່ງ) ຄໍາສັ່ງ, ມັນເຮັດໃຫ້ແກະຢຸດເຊົາການປະຕິບັດທີ່
script ແລະສົ່ງຄືນ n ຫຼືສະຖານະການອອກຂອງຄໍາສັ່ງສຸດທ້າຍປະຕິບັດພາຍໃນ
ສະຄຣິບເປັນສະຖານະທາງອອກຂອງສະຄຣິບ. ຖ້າ n ແມ່ນສະຫນອງໃຫ້, ມູນຄ່າກັບຄືນແມ່ນ
ທີ່ສໍາຄັນຢ່າງຫນ້ອຍ 8 ບິດຂອງມັນ. ສະຖານະກັບຄືນບໍ່ແມ່ນສູນຖ້າ ການກັບຄືນມາ ແມ່ນສະຫນອງໃຫ້
argument ທີ່ບໍ່ແມ່ນຕົວເລກ, ຫຼືຖືກນໍາໃຊ້ນອກຟັງຊັນແລະບໍ່ແມ່ນໃນລະຫວ່າງການປະຕິບັດ a
script ໂດຍ . or ແຫຼ່ງ. ຄໍາສັ່ງໃດໆທີ່ກ່ຽວຂ້ອງກັບ ກັບຄືນ ຈັ່ນຈັບໄດ້ຖືກປະຕິບັດ
ກ່ອນທີ່ຈະດໍາເນີນການສືບຕໍ່ຫຼັງຈາກຟັງຊັນຫຼື script.
ທີ່ກໍານົດໄວ້ [--abefhkmnptuvxBCEHPT] [-o ຊື່ທາງເລືອກ] [arg ... ]
ທີ່ກໍານົດໄວ້ [+abefhkmnptuvxBCEPHPT] [+o ຊື່ທາງເລືອກ] [arg ... ]
ໂດຍບໍ່ມີທາງເລືອກ, ຊື່ແລະມູນຄ່າຂອງແຕ່ລະຕົວແປຂອງ shell ຈະຖືກສະແດງຢູ່ໃນ a
ຮູບແບບທີ່ສາມາດນໍາໃຊ້ຄືນໃຫມ່ເປັນການປ້ອນຂໍ້ມູນສໍາລັບການຕັ້ງຄ່າຫຼືການຕັ້ງຄ່າທີ່ຕັ້ງໃນປະຈຸບັນຄືນໃຫມ່
ຕົວແປ. ບໍ່ສາມາດຣີເຊັດຕົວແປແບບອ່ານເທົ່ານັ້ນໄດ້. ໃນ ບວກ ໂຫມດ, ພຽງແຕ່ແກະ
ຕົວແປແມ່ນລະບຸໄວ້. ຜົນຜະລິດໄດ້ຖືກຈັດຮຽງຕາມທ້ອງຖິ່ນໃນປະຈຸບັນ. ເມື່ອໃດ
ທາງເລືອກແມ່ນໄດ້ລະບຸໄວ້, ພວກເຂົາເຈົ້າກໍານົດຫຼືບໍ່ໄດ້ກໍານົດຄຸນລັກສະນະ shell . ການໂຕ້ຖຽງໃດໆທີ່ຍັງເຫຼືອ
ຫຼັງຈາກການປຸງແຕ່ງທາງເລືອກແມ່ນໄດ້ຮັບການປະຕິບັດເປັນຄ່າສໍາລັບຕົວກໍານົດການຕໍາແຫນ່ງແລະແມ່ນ
ມອບຫມາຍ, ຕາມລໍາດັບ, ເພື່ອ $1, $2, ... $n. ທາງເລືອກ, ຖ້າລະບຸ, ມີດັ່ງຕໍ່ໄປນີ້
ຄວາມຫມາຍ:
-a ໝາຍຕົວແປ ແລະຟັງຊັນທີ່ຖືກດັດແກ້ ຫຼືສ້າງໂດຍອັດຕະໂນມັດ
ສໍາລັບການສົ່ງອອກໄປສູ່ສະພາບແວດລ້ອມຂອງຄໍາສັ່ງຕໍ່ໄປ.
-b ລາຍງານສະຖານະຂອງວຽກພື້ນຖານທີ່ຖືກຍົກເລີກໃນທັນທີ, ແທນທີ່ຈະ
ກ່ອນການເຕືອນຂັ້ນຕົ້ນຕໍ່ໄປ. ນີ້ຈະມີປະສິດທິພາບພຽງແຕ່ເມື່ອການຄວບຄຸມວຽກ
enabled
-e ອອກທັນທີຖ້າ ກ ທໍ່ (ເຊິ່ງອາດປະກອບດ້ວຍອັນດຽວ ງ່າຍດາຍ
ຄໍາສັ່ງ), a ບັນຊີລາຍຊື່, ຫຼື a ປະສົມປະສານ ຄໍາສັ່ງ (ເບິ່ງ SHELL ໄວຍະກອນ ຂ້າງເທິງ), ອອກ
ດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ. ແກະບໍ່ອອກຖ້າຄໍາສັ່ງທີ່ລົ້ມເຫລວ
ເປັນສ່ວນຫນຶ່ງຂອງບັນຊີລາຍຊື່ຄໍາສັ່ງທັນທີປະຕິບັດຕາມ a ໃນຂະນະທີ່ or ຈົນກ່ວາ ຄໍາສໍາຄັນ,
ສ່ວນຫນຶ່ງຂອງການທົດສອບດັ່ງຕໍ່ໄປນີ້ if or ເອລີຟ ຄໍາສັບຕ່າງໆທີ່ສະຫງວນໄວ້, ສ່ວນໃດຫນຶ່ງ
ຄໍາສັ່ງປະຕິບັດໃນ a && or || ບັນຊີລາຍຊື່ຍົກເວັ້ນຄໍາສັ່ງດັ່ງຕໍ່ໄປນີ້ສຸດທ້າຍ
&& or ||, ຄໍາສັ່ງໃດໆໃນທໍ່ແຕ່ສຸດທ້າຍ, ຫຼືຖ້າຄໍາສັ່ງຂອງ
ມູນຄ່າກັບຄືນຈະຖືກປີ້ນກັບ !. ຖ້າຄໍາສັ່ງປະສົມນອກຈາກ a
subshell ສົ່ງຄືນສະຖານະທີ່ບໍ່ແມ່ນສູນເພາະວ່າຄໍາສັ່ງລົ້ມເຫລວໃນຂະນະທີ່ -e ແມ່ນ
ຖືກລະເລີຍ, ແກະບໍ່ອອກ. ໃສ່ກັບດັກ ERR, ຖ້າຕັ້ງ, ຖືກປະຕິບັດ
ກ່ອນທີ່ແກະຈະອອກໄປ. ຕົວເລືອກນີ້ໃຊ້ກັບສະພາບແວດລ້ອມຂອງແກະແລະ
ແຕ່ລະສະພາບແວດລ້ອມ subshell ແຍກຕ່າງຫາກ (ເບິ່ງ ຄໍາສັ່ງ ການປະຕິບັດ ENVIRONMENT
ຂ້າງເທິງ), ແລະອາດຈະເຮັດໃຫ້ subshells ອອກໄປກ່ອນທີ່ຈະປະຕິບັດຄໍາສັ່ງທັງຫມົດ
ໃນ subshell ໄດ້.
ຖ້າຄໍາສັ່ງປະສົມຫຼືຟັງຊັນ shell ປະຕິບັດໃນສະພາບການທີ່ -e is
ຖືກລະເລີຍ, ບໍ່ມີຄໍາສັ່ງປະຕິບັດພາຍໃນຄໍາສັ່ງປະສົມຫຼື
ຮ່າງກາຍເຮັດວຽກຈະໄດ້ຮັບຜົນກະທົບຈາກ -e ການຕັ້ງຄ່າ, ເຖິງແມ່ນວ່າ -e ຖືກກໍານົດແລະເປັນ
ຄໍາສັ່ງສົ່ງຄືນສະຖານະການລົ້ມເຫຼວ. ຖ້າຄໍາສັ່ງປະສົມຫຼືການທໍາງານຂອງແກະ
ຊຸດ -e ໃນຂະນະທີ່ດໍາເນີນການຢູ່ໃນສະພາບການທີ່ -e ຖືກລະເລີຍ, ການຕັ້ງຄ່ານັ້ນຈະ
ບໍ່ມີຜົນກະທົບໃດໆຈົນກ່ວາຄໍາສັ່ງປະສົມຫຼືຄໍາສັ່ງປະກອບດ້ວຍ
ໂທຟັງຊັນສຳເລັດ.
-f ປິດການຂະຫຍາຍຊື່ເສັ້ນທາງ.
-h ຈື່ສະຖານທີ່ຂອງຄໍາສັ່ງຍ້ອນວ່າພວກເຂົາຖືກຊອກຫາສໍາລັບການປະຕິບັດ.
ອັນນີ້ຖືກເປີດໃຊ້ໂດຍມາດຕະຖານ.
-k ການໂຕ້ຖຽງທັງຫມົດໃນຮູບແບບຂອງຄໍາຖະແຫຼງການມອບຫມາຍແມ່ນຖືກຈັດໃສ່ໃນ
ສະພາບແວດລ້ອມສໍາລັບຄໍາສັ່ງ, ບໍ່ພຽງແຕ່ສິ່ງທີ່ນໍາຫນ້າຊື່ຄໍາສັ່ງ.
-m ໂໝດຕິດຕາມ. ການຄວບຄຸມວຽກຖືກເປີດໃຊ້. ທາງເລືອກນີ້ແມ່ນເປີດໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບການ
ແກະແບບໂຕ້ຕອບໃນລະບົບທີ່ສະຫນັບສະຫນູນມັນ (ເບິ່ງ JOB ການຄວບຄຸມ ຂ້າງເທິງ). ທັງໝົດ
ຂະບວນການດໍາເນີນການຢູ່ໃນກຸ່ມຂະບວນການແຍກຕ່າງຫາກ. ເມື່ອວຽກພື້ນຖານ
ສໍາເລັດແລ້ວ, ແກະຈະພິມເສັ້ນທີ່ມີສະຖານະທາງອອກຂອງມັນ.
-n ອ່ານຄໍາສັ່ງແຕ່ບໍ່ປະຕິບັດພວກມັນ. ອັນນີ້ອາດຈະຖືກໃຊ້ເພື່ອກວດເບິ່ງແກະ
script ສໍາລັບ syntax ຜິດພາດ. ອັນນີ້ຖືກລະເລີຍໂດຍແກະແບບໂຕ້ຕອບ.
-o ຊື່ທາງເລືອກ
ໄດ້ ຊື່ທາງເລືອກ ສາມາດເປັນຫນຶ່ງໃນດັ່ງຕໍ່ໄປນີ້:
ຂາອອກ
ຄືກັນກັບ -a.
ຂະຫຍາຍວົງເລັບ
ຄືກັນກັບ -B.
emacs ໃຊ້ການໂຕ້ຕອບການແກ້ໄຂເສັ້ນຄໍາສັ່ງແບບ emacs. ອັນນີ້ຖືກເປີດໃຊ້
ໂດຍຄ່າເລີ່ມຕົ້ນເມື່ອ shell ແມ່ນໂຕ້ຕອບ, ເວັ້ນເສຍແຕ່ວ່າ shell ແມ່ນ
ເລີ່ມຕົ້ນດ້ວຍ --noediting ທາງເລືອກ. ອັນນີ້ຍັງມີຜົນກະທົບຕໍ່ການແກ້ໄຂ
ການໂຕ້ຕອບທີ່ໃຊ້ສໍາລັບ ອ່ານ -e.
ຜິດພາດ ຄືກັນກັບ -e.
ຜິດພາດ
ຄືກັນກັບ -E.
ຫນ້າທີ່
ຄືກັນກັບ -T.
hashall ຄືກັນກັບ -h.
ຂະຫຍາຍປະຫວັດສາດ
ຄືກັນກັບ -H.
ປະຫວັດສາດ ເປີດໃຊ້ປະຫວັດຄໍາສັ່ງ, ດັ່ງທີ່ອະທິບາຍຂ້າງເທິງພາຍໃຕ້ ປະຫວັດຄວາມເປັນ. ນີ້
ທາງເລືອກແມ່ນເປີດເປັນຄ່າເລີ່ມຕົ້ນໃນການໂຕ້ຕອບ shells.
ບໍ່ສົນໃຈ
ຜົນກະທົບແມ່ນຄືກັບວ່າຄໍາສັ່ງ shell ``IGNOREEOF=10'' ເຄີຍເປັນ
ຖືກປະຕິບັດ (ເບິ່ງ Shell Variables ຂ້າງເທິງ).
ຄໍາ ຄືກັນກັບ -k.
ຕິດຕາມກວດກາ ຄືກັນກັບ -m.
noclobber
ຄືກັນກັບ -C.
noexec ຄືກັນກັບ -n.
noglob ຄືກັນກັບ -f.
nolog ປະຈຸບັນຖືກລະເລີຍ.
ແຈ້ງ ຄືກັນກັບ -b.
ຄຳນາມ ຄືກັນກັບ -u.
onecmd ຄືກັນກັບ -t.
ທາງດ້ານຮ່າງກາຍ
ຄືກັນກັບ -P.
pipefail
ຖ້າຕັ້ງ, ມູນຄ່າກັບຄືນຂອງທໍ່ເປັນມູນຄ່າສຸດທ້າຍ
(ຂວາສຸດ) ຄໍາສັ່ງໃຫ້ອອກດ້ວຍສະຖານະທີ່ບໍ່ແມ່ນສູນ, ຫຼືສູນຖ້າຫາກວ່າທັງຫມົດ
ຄໍາສັ່ງໃນການອອກຈາກທໍ່ສົບຜົນສໍາເລັດ. ທາງເລືອກນີ້ແມ່ນ
ປິດການໃຊ້ງານໂດຍຄ່າເລີ່ມຕົ້ນ.
ບວກ ປ່ຽນແປງພຶດຕິກໍາຂອງ bash ບ່ອນທີ່ການດໍາເນີນງານເລີ່ມຕົ້ນແຕກຕ່າງກັນ
ຈາກມາດຕະຖານ POSIX ເພື່ອໃຫ້ກົງກັບມາດຕະຖານ (ບວກ ຮູບແບບການ) ເບິ່ງ
ເບິ່ງ ຍັງ ຂ້າງລຸ່ມນີ້ສໍາລັບການອ້າງອິງເອກະສານທີ່ລາຍລະອຽດວິທີການ posix
ຮູບແບບຜົນກະທົບຕໍ່ພຶດຕິກໍາຂອງ bash.
ສິດທິພິເສດ
ຄືກັນກັບ -p.
ຄຳເວົ້າ ຄືກັນກັບ -v.
vi ໃຊ້ການໂຕ້ຕອບການແກ້ໄຂເສັ້ນຄໍາສັ່ງ vi-style. ນີ້ຍັງມີຜົນກະທົບ
ການໂຕ້ຕອບການແກ້ໄຂທີ່ໃຊ້ສໍາລັບ ອ່ານ -e.
xtrace ຄືກັນກັບ -x.
If -o ແມ່ນສະຫນອງໃຫ້ບໍ່ມີ ຊື່ທາງເລືອກ, ຄຸນຄ່າຂອງທາງເລືອກໃນປະຈຸບັນ
ຖືກພິມອອກ. ຖ້າ +o ແມ່ນສະຫນອງໃຫ້ບໍ່ມີ ຊື່ທາງເລືອກ, ຊຸດຂອງ ທີ່ກໍານົດໄວ້
ຄໍາສັ່ງທີ່ຈະສ້າງການຕັ້ງຄ່າທາງເລືອກໃນປັດຈຸບັນແມ່ນສະແດງຢູ່ໃນ
ຜົນຜະລິດມາດຕະຖານ.
-p ເປີດ ສິດທິພິເສດ ໂໝດ. ໃນຮູບແບບນີ້, ໄດ້ $ENV ແລະ $BASH_ENV ໄຟລ໌ແມ່ນ
ບໍ່ໄດ້ຮັບການປຸງແຕ່ງ, ຫນ້າທີ່ແກະບໍ່ໄດ້ຮັບການສືບທອດຈາກສະພາບແວດລ້ອມ, ແລະ
ໄດ້ ແກະ, BASHOPTS, CDPATH, ແລະ GLOBIGNORE ຕົວແປ, ຖ້າພວກເຂົາປາກົດ
ໃນສະພາບແວດລ້ອມ, ຖືກລະເລີຍ. ຖ້າແກະແມ່ນເລີ່ມຕົ້ນດ້ວຍ
id ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບ (ກຸ່ມ) ບໍ່ເທົ່າກັບຜູ້ໃຊ້ທີ່ແທ້ຈິງ (ກຸ່ມ) id, ແລະ -p
ທາງເລືອກບໍ່ໄດ້ສະຫນອງໃຫ້, ການປະຕິບັດເຫຼົ່ານີ້ແມ່ນໄດ້ຮັບການປະຕິບັດແລະ id ຜູ້ໃຊ້ປະສິດທິຜົນ
ຖືກຕັ້ງເປັນ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງ. ຖ້າ -p ທາງເລືອກແມ່ນສະຫນອງໃຫ້ໃນການເລີ່ມຕົ້ນ, ໄດ້
ID ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບບໍ່ໄດ້ຖືກຕັ້ງຄືນໃຫມ່. ການປິດຕົວເລືອກນີ້ເຮັດໃຫ້ເກີດການ
ids ຜູ້ໃຊ້ແລະກຸ່ມທີ່ມີປະສິດຕິຜົນທີ່ຈະຕັ້ງເປັນ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງແລະກຸ່ມ.
-t ອອກຫຼັງຈາກອ່ານແລະປະຕິບັດຄໍາສັ່ງຫນຶ່ງ.
-u ປະຕິບັດຕົວແປທີ່ບໍ່ໄດ້ຕັ້ງແລະຕົວກໍານົດການອື່ນນອກເຫນືອຈາກຕົວກໍານົດການພິເສດ "@"
ແລະ "*" ເປັນຂໍ້ຜິດພາດໃນເວລາທີ່ປະຕິບັດການຂະຫຍາຍພາລາມິເຕີ. ຖ້າການຂະຫຍາຍຕົວແມ່ນ
ພະຍາຍາມຢູ່ໃນຕົວແປທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼືພາຣາມິເຕີ, ແກະຈະພິມຂໍ້ຜິດພາດ
ຂໍ້ຄວາມ, ແລະ, ຖ້າບໍ່ມີການໂຕ້ຕອບ, ອອກຈາກສະຖານະທີ່ບໍ່ແມ່ນສູນ.
-v ພິມເສັ້ນການປ້ອນຂໍ້ມູນແກະຕາມທີ່ພວກເຂົາເຈົ້າໄດ້ຖືກອ່ານ.
-x ຫຼັງຈາກການຂະຫຍາຍແຕ່ລະ ງ່າຍດາຍ ຄໍາສັ່ງ, ສໍາລັບການ ຄໍາສັ່ງ, ກໍລະນີ ຄໍາສັ່ງ, ເລືອກ
ຄໍາສັ່ງ, ຫຼືເລກຄະນິດສາດ ສໍາລັບການ ຄໍາສັ່ງ, ສະແດງມູນຄ່າການຂະຫຍາຍຂອງ PS4,
ຕິດຕາມດ້ວຍຄໍາສັ່ງແລະການໂຕ້ຖຽງທີ່ຂະຫຍາຍຂອງມັນຫຼືລາຍຊື່ຄໍາທີ່ກ່ຽວຂ້ອງ.
-B ແກະປະຕິບັດການຂະຫຍາຍວົງເລັບ (ເບິ່ງ Brace ການຂະຫຍາຍຕົວ ຂ້າງເທິງ). ນີ້ແມ່ນຢູ່
ໂດຍຄ່າເລີ່ມຕົ້ນ
-C ຖ້າຕັ້ງ, bash ບໍ່ຂຽນທັບໄຟລ໌ທີ່ມີຢູ່ແລ້ວດ້ວຍ >, >&, ແລະ <>
ຜູ້ປະຕິບັດການປ່ຽນເສັ້ນທາງ. ອັນນີ້ອາດຈະຖືກລົບລ້າງເມື່ອສ້າງໄຟລ໌ຜົນຜະລິດ
ໂດຍໃຊ້ຕົວປະຕິບັດການປ່ຽນເສັ້ນທາງ >| ແທນທີ່ >.
-E ຖ້າຕັ້ງ, ໃສ່ກັບດັກໃດໆ ERR ແມ່ນສືບທອດໂດຍການທໍາງານຂອງແກະ, ຄໍາສັ່ງ
ການທົດແທນ, ແລະຄໍາສັ່ງປະຕິບັດໃນສະພາບແວດລ້ອມ subshell. ໄດ້ ERR
ດັກແມ່ນປົກກະຕິແລ້ວບໍ່ໄດ້ສືບທອດໃນກໍລະນີດັ່ງກ່າວ.
-H ເປີດນໍາໃຊ້ ! ການທົດແທນປະຫວັດສາດຮູບແບບ. ຕົວເລືອກນີ້ແມ່ນເປີດໂດຍຄ່າເລີ່ມຕົ້ນເມື່ອ
shell ແມ່ນໂຕ້ຕອບ.
-P ຖ້າຕັ້ງ, shell ບໍ່ແກ້ໄຂການເຊື່ອມຕໍ່ສັນຍາລັກໃນເວລາທີ່ປະຕິບັດຄໍາສັ່ງ
ເຊັ່ນວ່າ cd ທີ່ປ່ຽນໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ. ມັນໃຊ້ທາງດ້ານຮ່າງກາຍ
ໂຄງສ້າງໄດເລກະທໍລີແທນ. ໂດຍຄ່າເລີ່ມຕົ້ນ, bash ປະຕິບັດຕາມລະບົບຕ່ອງໂສ້ຢ່າງມີເຫດຜົນຂອງ
ໄດເລກະທໍລີໃນເວລາທີ່ປະຕິບັດຄໍາສັ່ງທີ່ປ່ຽນແປງໄດເລກະທໍລີປະຈຸບັນ.
-T ຖ້າຕັ້ງ, ໃສ່ກັບດັກໃດໆ ດີບັກ ແລະ ກັບຄືນ ແມ່ນສືບທອດມາຈາກການທໍາງານຂອງແກະ,
ການທົດແທນຄໍາສັ່ງ, ແລະຄໍາສັ່ງປະຕິບັດໃນສະພາບແວດລ້ອມ subshell.
ໄດ້ ດີບັກ ແລະ ກັບຄືນ ດັກແມ່ນປົກກະຕິແລ້ວບໍ່ໄດ້ຮັບການສືບທອດໃນກໍລະນີດັ່ງກ່າວ.
-- ຖ້າບໍ່ມີການໂຕ້ຖຽງປະຕິບັດຕາມທາງເລືອກນີ້, ຫຼັງຈາກນັ້ນຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນ
ບໍ່ໄດ້ຕັ້ງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຕົວກໍານົດການຕໍາແຫນ່ງແມ່ນຖືກກໍານົດເປັນ args, ເຖິງແມ່ນວ່າ
ບາງສ່ວນຂອງພວກເຂົາເລີ່ມຕົ້ນດ້ວຍ a -.
- ສັນຍານການສິ້ນສຸດຂອງທາງເລືອກ, ເຮັດໃຫ້ທັງຫມົດທີ່ຍັງເຫຼືອ args ຈະຖືກມອບຫມາຍໃຫ້
ຕົວກໍານົດການຕໍາແຫນ່ງ. ໄດ້ -x ແລະ -v ທາງເລືອກຖືກປິດ. ຖ້າມີ
no args, ຕົວກໍານົດການຕໍາແຫນ່ງຍັງບໍ່ປ່ຽນແປງ.
ທາງເລືອກຕ່າງໆຈະປິດເປັນຄ່າເລີ່ມຕົ້ນເວັ້ນເສຍແຕ່ມີບັນທຶກໄວ້ເປັນຢ່າງອື່ນ. ການນໍາໃຊ້ + ແທນທີ່ຈະ -
ເຮັດໃຫ້ທາງເລືອກເຫຼົ່ານີ້ຖືກປິດ. ທາງເລືອກຍັງສາມາດໄດ້ຮັບການລະບຸໄວ້ເປັນ
ການໂຕ້ຖຽງຕໍ່ການຮຽກຮ້ອງຂອງແກະ. ຊຸດທາງເລືອກໃນປະຈຸບັນອາດຈະພົບເຫັນ
in $-. ສະຖານະການກັບຄືນແມ່ນເປັນຄວາມຈິງສະເໝີເວັ້ນເສຍແຕ່ຈະພົບທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງ.
ປ່ຽນແປງ [n]
ຕົວກໍານົດການຕໍາແຫນ່ງຈາກ n+1 ... ຖືກປ່ຽນຊື່ເປັນ $1 .... ຕົວກໍານົດການ
ເປັນຕົວແທນໂດຍຕົວເລກ $# ລົງ $#-n+1 ບໍ່ໄດ້ຕັ້ງ. n ຈະຕ້ອງບໍ່ແມ່ນທາງລົບ
ຈຳນວນໜ້ອຍກວ່າ ຫຼືເທົ່າກັບ $#ທີ່ຢູ່ ຖ້າຫາກວ່າ n ແມ່ນ 0, ບໍ່ມີການປ່ຽນແປງຕົວກໍານົດການ. ຖ້າ n is
ບໍ່ໄດ້ໃຫ້, ມັນແມ່ນສົມມຸດວ່າ 1. ຖ້າ n ແມ່ນຫຼາຍກ່ວາ $#, ຕໍາແຫນ່ງ
ຕົວກໍານົດການບໍ່ໄດ້ມີການປ່ຽນແປງ. ສະຖານະກັບຄືນແມ່ນໃຫຍ່ກວ່າສູນ if n ແມ່ນຫຼາຍກວ່າເກົ່າ
ກ່ວາ $# ຫຼືຫນ້ອຍກວ່າສູນ; ຖ້າບໍ່ດັ່ງນັ້ນ 0.
ຮ້ານຄ້າ [-pqsu] [-o] [ເລືອກຊື່ ... ]
ສະຫຼັບຄ່າຂອງການຕັ້ງຄ່າຄວບຄຸມພຶດຕິກຳຂອງແກະທາງເລືອກ. ການຕັ້ງຄ່າ
ສາມາດເປັນທີ່ລະບຸໄວ້ຂ້າງລຸ່ມນີ້, ຫຼື, ຖ້າຫາກວ່າ -o ທາງເລືອກແມ່ນຖືກນໍາໃຊ້, ທີ່ມີຢູ່
ກັບ -o ທາງເລືອກໃນການ ທີ່ກໍານົດໄວ້ ຄໍາສັ່ງ builtin. ໂດຍບໍ່ມີທາງເລືອກ, ຫຼືກັບ -p
ທາງເລືອກ, ບັນຊີລາຍການຂອງທາງເລືອກ settable ທັງຫມົດແມ່ນສະແດງໃຫ້ເຫັນ, ມີການຊີ້ບອກວ່າຈະເປັນ
ຫຼືບໍ່ແມ່ນແຕ່ລະກໍານົດ. ໄດ້ -p ທາງເລືອກເຮັດໃຫ້ຜົນຜະລິດຖືກສະແດງໃນຮູບແບບທີ່ອາດຈະ
ຖືກນໍາໃຊ້ຄືນໃຫມ່ເປັນການປ້ອນຂໍ້ມູນ. ທາງເລືອກອື່ນມີຄວາມຫມາຍດັ່ງຕໍ່ໄປນີ້:
-s ເປີດໃຊ້ (ຕັ້ງ) ແຕ່ລະຄົນ ເລືອກຊື່.
-u ປິດໃຊ້ງານ (ບໍ່ໄດ້ຕັ້ງ) ແຕ່ລະຄົນ ເລືອກຊື່.
-q ສະກັດກັ້ນຜົນຜະລິດປົກກະຕິ (ຮູບແບບງຽບ); ສະຖານະການກັບຄືນຊີ້ບອກວ່າ
ໄດ້ ເລືອກຊື່ ຖືກຕັ້ງຫຼືບໍ່ຕັ້ງ. ຖ້າຫຼາຍ ເລືອກຊື່ ການໂຕ້ຖຽງແມ່ນໃຫ້ກັບ
-q, ສະຖານະກັບຄືນແມ່ນສູນຖ້າຫາກວ່າທັງຫມົດ ຊື່ເລືອກ ຖືກເປີດໃຊ້ງານ; ບໍ່ແມ່ນສູນ
ຖ້າບໍ່ດັ່ງນັ້ນ.
-o ຈຳກັດຄ່າຂອງ ເລືອກຊື່ ທີ່ຈະກໍານົດສໍາລັບການ -o ທາງເລືອກໃນການ
ທີ່ກໍານົດໄວ້ ກໍ່ສ້າງ.
ຖ້າມີ -s or -u ຖືກນໍາໃຊ້ກັບບໍ່ມີ ເລືອກຊື່ ການໂຕ້ຖຽງ, ຮ້ານຄ້າ ສະແດງໃຫ້ເຫັນພຽງແຕ່ເຫຼົ່ານັ້ນ
ທາງເລືອກທີ່ກໍານົດຫຼືບໍ່ໄດ້ຕັ້ງ, ຕາມລໍາດັບ. ເວັ້ນເສຍແຕ່ໄດ້ບັນທຶກໄວ້ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້ ຮ້ານຄ້າ
ຕົວເລືອກຖືກປິດໃຊ້ງານ (ບໍ່ໄດ້ຕັ້ງ) ໂດຍຄ່າເລີ່ມຕົ້ນ.
ສະຖານະກັບຄືນເມື່ອຕົວເລືອກລາຍຊື່ແມ່ນສູນຖ້າທັງໝົດ ຊື່ເລືອກ ຖືກເປີດໃຊ້, ບໍ່ແມ່ນ
ຖ້າບໍ່ດັ່ງນັ້ນ. ເມື່ອຕັ້ງຫຼືບໍ່ຕັ້ງຄ່າທາງເລືອກ, ສະຖານະການກັບຄືນມາແມ່ນສູນ
ເວັ້ນເສຍແຕ່ເປັນ ເລືອກຊື່ ບໍ່ແມ່ນທາງເລືອກ shell ທີ່ຖືກຕ້ອງ.
ບັນຊີລາຍຊື່ຂອງ ຮ້ານຄ້າ ທາງເລືອກແມ່ນ:
autocd ຖ້າຕັ້ງ, ຊື່ຄໍາສັ່ງທີ່ເປັນຊື່ຂອງໄດເລກະທໍລີຈະຖືກປະຕິບັດຄືກັບວ່າມັນ
ແມ່ນ ການ ໂຕ້ ຖຽງ ກັບ ໄດ້ cd ຄໍາສັ່ງ. ທາງເລືອກນີ້ຖືກນໍາໃຊ້ໂດຍ
ແກະໂຕ້ຕອບ.
cdable_vars
ຖ້າຕັ້ງ, ການໂຕ້ຖຽງກັບ cd ຄໍາສັ່ງ buildin ທີ່ບໍ່ແມ່ນ directory ແມ່ນ
ສົມມຸດວ່າເປັນຊື່ຂອງຕົວແປທີ່ມີມູນຄ່າເປັນໄດເລກະທໍລີທີ່ຈະປ່ຽນ
to
cdspell ຖ້າຕັ້ງ, ຄວາມຜິດພາດເລັກນ້ອຍໃນການສະກົດຄໍາຂອງອົງປະກອບໄດເລກະທໍລີໃນ a cd
ຄໍາສັ່ງຈະຖືກແກ້ໄຂ. ຄວາມຜິດພາດທີ່ກວດສອບສໍາລັບການແມ່ນ transposed
ຕົວອັກສອນ, ຕົວລະຄອນທີ່ຂາດຫາຍໄປ, ແລະ XNUMX ຕົວອັກສອນຫຼາຍເກີນໄປ. ຖ້າ ກ
ການແກ້ໄຂແມ່ນພົບເຫັນ, ຊື່ໄຟລ໌ທີ່ແກ້ໄຂແມ່ນພິມອອກ, ແລະຄໍາສັ່ງ
ລາຍໄດ້. ຕົວເລືອກນີ້ຖືກນໍາໃຊ້ໂດຍ shells ແບບໂຕ້ຕອບເທົ່ານັ້ນ.
checkhash
ຖ້າຕັ້ງ, bash ກວດເບິ່ງວ່າຄໍາສັ່ງທີ່ພົບເຫັນຢູ່ໃນຕາຕະລາງ hash ມີຢູ່ກ່ອນ
ຄວາມພະຍາຍາມທີ່ຈະປະຕິບັດມັນ. ຖ້າບໍ່ມີຄໍາສັ່ງ hashed, ເສັ້ນທາງປົກກະຕິ
ການຄົ້ນຫາແມ່ນປະຕິບັດ.
ວຽກກວດເຊັກ
ຖ້າຕັ້ງ, bash ບອກສະຖານະຂອງວຽກທີ່ຢຸດ ແລະເຮັດວຽກກ່ອນ
ອອກຈາກ shell ແບບໂຕ້ຕອບ. ຖ້າຫາກວ່າວຽກເຮັດງານທໍາໃດກໍາລັງດໍາເນີນການ, ນີ້ເຮັດໃຫ້ເກີດ
ອອກຈາກທີ່ຈະຖືກເລື່ອນຈົນກ່ວາທາງອອກທີສອງຖືກພະຍາຍາມໂດຍບໍ່ມີການແຊກແຊງ
ຄໍາສັ່ງ (ເບິ່ງ JOB ການຄວບຄຸມ ຂ້າງເທິງ). Shell ສະເຫມີເລື່ອນເວລາອອກໄປຖ້າມີ
ວຽກງານຖືກຢຸດ.
checkwinsize
ຖ້າຕັ້ງ, bash ກວດເບິ່ງຂະຫນາດຂອງປ່ອງຢ້ຽມຫຼັງຈາກແຕ່ລະຄໍາສັ່ງແລະ, ຖ້າຈໍາເປັນ,
ປັບປຸງຄຸນຄ່າຂອງ ເສັ້ນ ແລະ ສີ.
cmdhist ຖ້າຕັ້ງ, bash ພະຍາຍາມບັນທຶກທຸກແຖວຂອງຄຳສັ່ງຫຼາຍແຖວໃນ
ການເຂົ້າສູ່ປະຫວັດສາດດຽວກັນ. ນີ້ຊ່ວຍໃຫ້ການແກ້ໄຂຄໍາສັ່ງຫຼາຍແຖວໄດ້ງ່າຍດາຍ.
compat31
ຖ້າຕັ້ງ, bash ການປ່ຽນແປງພຶດຕິກໍາຂອງຕົນກັບສະບັບ 3.1 ກ່ຽວກັບການ
ການໂຕ້ຖຽງທີ່ອ້າງເຖິງ [[ ຄໍາສັ່ງຕາມເງື່ອນໄຂ =~ ປະຕິບັດການແລະທ້ອງຖິ່ນ -
ການປຽບທຽບສະຕຣິງສະເພາະເມື່ອໃຊ້ [[ ຄໍາສັ່ງຕາມເງື່ອນໄຂ < ແລະ >
ຜູ້ປະກອບການ. ຮຸ່ນ Bash ກ່ອນ bash-4.1 ໃຊ້ ASCII collation ແລະ
strcmp(3); bash-4.1 ແລະຕໍ່ມາໃຊ້ລໍາດັບ collation ຂອງທ້ອງຖິ່ນໃນປະຈຸບັນ
ແລະ ເລື່ອນ(3).
compat32
ຖ້າຕັ້ງ, bash ການປ່ຽນແປງພຶດຕິກໍາຂອງຕົນກັບສະບັບ 3.2 ກ່ຽວກັບການ
ການປຽບທຽບສະຕຣິງສະເພາະທ້ອງຖິ່ນເມື່ອໃຊ້ [[ ຄໍາສັ່ງຕາມເງື່ອນໄຂ <
ແລະ > ຜູ້ປະກອບການ (ເບິ່ງລາຍການທີ່ຜ່ານມາ).
compat40
ຖ້າຕັ້ງ, bash ການປ່ຽນແປງພຶດຕິກໍາຂອງຕົນກັບສະບັບ 4.0 ກ່ຽວກັບການ
ການປຽບທຽບສະຕຣິງສະເພາະທ້ອງຖິ່ນເມື່ອໃຊ້ [[ ຄໍາສັ່ງຕາມເງື່ອນໄຂ <
ແລະ > ຜູ້ປະກອບການ (ເບິ່ງລາຍລະອຽດຂອງ compat31) ແລະຜົນກະທົບຂອງ
ຂັດຂວາງບັນຊີລາຍຊື່ຄໍາສັ່ງ. Bash ຮຸ່ນ 4.0 ແລະຕໍ່ມາຂັດຂວາງການ
list as if the shell ໄດ້ຮັບການຂັດຂວາງ; ລຸ້ນກ່ອນໜ້ານີ້ສືບຕໍ່
ກັບຄໍາສັ່ງຕໍ່ໄປໃນບັນຊີລາຍຊື່.
compat41
ຖ້າຕັ້ງ, bash, ເມື່ອຢູ່ໃນ ບວກ ໂຫມດ, ປະຕິບັດການອ້າງອີງດຽວໃນສອງວົງຢືມ
ການຂະຫຍາຍພາລາມິເຕີເປັນລັກສະນະພິເສດ. ວົງຢືມດຽວຕ້ອງກົງກັນ
(ຕົວເລກຄູ່) ແລະຕົວອັກສອນລະຫວ່າງວົງຢືມດຽວແມ່ນ
ພິຈາລະນາອ້າງອີງ. ນີ້ແມ່ນພຶດຕິກໍາຂອງໂຫມດ posix ຜ່ານເວີຊັນ 4.1.
ພຶດຕິກຳ bash ເລີ່ມຕົ້ນຍັງຄົງຄືກັບລຸ້ນກ່ອນໜ້າ.
compat42
ຖ້າຕັ້ງ, bash ບໍ່ໄດ້ປະມວນຜົນການປ່ຽນສະຕຣິງໃນຮູບແບບ
ແທນທີ່ການຂະຫຍາຍຄໍາສັບໂດຍໃຊ້ການຖອນ quote.
Complete_fullquote
ຖ້າຕັ້ງ, bash ອ້າງເຖິງທຸກ metacharacters shell ໃນຊື່ໄຟລ໌ ແລະໄດເລກະທໍລີ
ຊື່ໃນເວລາທີ່ປະຕິບັດສໍາເລັດ. ຖ້າບໍ່ໄດ້ຕັ້ງ, bash ເອົາ metacharacters
ເຊັ່ນເຄື່ອງຫມາຍເງິນໂດລາຈາກຊຸດຂອງຕົວອັກສອນທີ່ຈະຖືກອ້າງອີງໃນ
ຊື່ໄຟລ໌ທີ່ສໍາເລັດເມື່ອ metacharacters ເຫຼົ່ານີ້ປາກົດຢູ່ໃນຕົວແປຂອງ shell
ການອ້າງອີງໃນຄໍາສັບຕ່າງໆທີ່ຈະສໍາເລັດ. ນີ້ຫມາຍຄວາມວ່າເງິນໂດລາເຂົ້າສູ່ລະບົບ
ຊື່ຕົວແປທີ່ຂະຫຍາຍໄປຫາໄດເລກະທໍລີຈະບໍ່ຖືກອ້າງອີງ; ແນວໃດກໍ່ຕາມ
ສັນຍາລັກເງິນໂດລາທີ່ປາກົດຢູ່ໃນຊື່ໄຟລ໌ຈະບໍ່ຖືກອ້າງອີງ, ບໍ່ວ່າຈະ. ນີ້ແມ່ນ
ເຄື່ອນໄຫວພຽງແຕ່ໃນເວລາທີ່ bash ກໍາລັງໃຊ້ backslashes ເພື່ອອ້າງເຖິງຊື່ໄຟລ໌ທີ່ສໍາເລັດ.
ຕົວແປນີ້ຖືກຕັ້ງໄວ້ຕາມຄ່າເລີ່ມຕົ້ນ, ເຊິ່ງເປັນຕົວແປເລີ່ມຕົ້ນຂອງພຶດຕິກຳ bash ໃນ
ຮຸ່ນຜ່ານ 4.2.
ຂະຫຍາຍ
ຖ້າຕັ້ງ, bash ແທນທີ່ຊື່ໄດເລກະທໍລີດ້ວຍຜົນໄດ້ຮັບຂອງການຂະຫຍາຍຄໍາສັບ
ເມື່ອປະຕິບັດການສໍາເລັດຊື່ໄຟລ໌. ນີ້ມີການປ່ຽນແປງເນື້ອໃນຂອງ
readline ແກ້ໄຂ buffer. ຖ້າບໍ່ໄດ້ຕັ້ງ, bash ຄວາມພະຍາຍາມທີ່ຈະຮັກສາສິ່ງທີ່
ຜູ້ໃຊ້ພິມ.
ສະກົດ
ຖ້າຕັ້ງ, bash ພະຍາຍາມແກ້ໄຂການສະກົດຄໍາໃສ່ຊື່ໄດເລກະທໍລີລະຫວ່າງຄໍາ
ສໍາເລັດຖ້າຫາກວ່າຊື່ໄດເລກະທໍລີທີ່ສະຫນອງໃຫ້ໃນເບື້ອງຕົ້ນບໍ່ມີ.
dotglob ຖ້າຕັ້ງ, bash ລວມເອົາຊື່ໄຟລ໌ທີ່ເລີ່ມຕົ້ນດ້ວຍ `.' ໃນຜົນໄດ້ຮັບຂອງ
ການຂະຫຍາຍຊື່ເສັ້ນທາງ.
execfail
ຖ້າຕັ້ງ, ເຊວທີ່ບໍ່ມີການໂຕ້ຕອບຈະບໍ່ອອກຖ້າມັນບໍ່ສາມາດປະຕິບັດໄຟລ໌ໄດ້
ກໍານົດເປັນການໂຕ້ຖຽງກັບ exec ຄໍາສັ່ງ builtin. ແກະແບບໂຕ້ຕອບ
ບໍ່ອອກຖ້າ exec ລົ້ມເຫລວ.
expand_aliases
ຖ້າຕັ້ງ, ນາມແຝງຈະຖືກຂະຫຍາຍອອກຕາມທີ່ອະທິບາຍໄວ້ຂ້າງເທິງພາຍໃຕ້ ນາມແຝງ. ຕົວເລືອກນີ້
ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນສໍາລັບ shells ແບບໂຕ້ຕອບ.
extdebug
ຖ້າຖືກຕັ້ງ, ພຶດຕິກໍາທີ່ມີຈຸດປະສົງເພື່ອໃຊ້ໂດຍຕົວດີບັກຈະຖືກເປີດໃຊ້:
1. ໄດ້ -F ທາງເລືອກໃນການ ປະກາດ buildin ສະແດງຊື່ໄຟລ໌ແຫຼ່ງ
ແລະໝາຍເລກແຖວທີ່ສອດຄ້ອງກັບແຕ່ລະຊື່ຟັງຊັນທີ່ສະໜອງໃຫ້ເປັນ
ການໂຕ້ຖຽງ.
2. ຖ້າຄໍາສັ່ງດໍາເນີນການໂດຍ ດີບັກ trap ໃຫ້ຜົນເປັນຄ່າທີ່ບໍ່ແມ່ນສູນ, the
ຄໍາສັ່ງຕໍ່ໄປແມ່ນຂ້າມແລະບໍ່ໄດ້ປະຕິບັດ.
3. ຖ້າຄໍາສັ່ງດໍາເນີນການໂດຍ ດີບັກ trap ໃຫ້ຜົນເປັນຄ່າຂອງ 2, ແລະ
shell ກໍາລັງດໍາເນີນການຢູ່ໃນ subroutine (ຫນ້າທີ່ຂອງ shell ຫຼື shell
script ປະຕິບັດໂດຍ . or ແຫຼ່ງ buildins), ໂທຫາ ການກັບຄືນມາ is
ຈຳລອງ.
4. BASH_ARGC ແລະ BASH_ARGV ໄດ້ຖືກປັບປຸງຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໃນຂອງພວກເຂົາ
ຄໍາອະທິບາຍຂ້າງເທິງ.
5. ການຕິດຕາມຟັງຊັນຖືກເປີດໃຊ້ງານ: ການທົດແທນຄໍາສັ່ງ, ຟັງຊັນຂອງແກະ,
ແລະ subshells invoked ກັບ ( ຄໍາສັ່ງ ) ສືບທອດ ດີບັກ ແລະ ກັບຄືນ
ກັບດັກ.
6. ການຕິດຕາມຄວາມຜິດພາດແມ່ນເປີດໃຊ້ງານ: ການທົດແທນຄໍາສັ່ງ, ການທໍາງານຂອງແກະ,
ແລະ subshells invoked ກັບ ( ຄໍາສັ່ງ ) ສືບທອດ ERR ຈັ່ນຈັບ.
extglob ຖ້າຕັ້ງ, ລັກສະນະການຈັບຄູ່ຮູບແບບທີ່ຂະຫຍາຍໄດ້ອະທິບາຍຂ້າງເທິງພາຍໃຕ້
ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ ຖືກເປີດໃຊ້.
extquote
ຖ້າຕັ້ງ, $'string' ແລະ $"string" ການອ້າງອີງຖືກປະຕິບັດພາຍໃນ ${ພາລາມິເຕີ}
ການຂະຫຍາຍຕົວທີ່ກວມເອົາໃນວົງຢືມຄູ່. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
ລົ້ມເຫລວ
ຖ້າຕັ້ງ, ຮູບແບບທີ່ບໍ່ກົງກັບຊື່ໄຟລ໌ໃນລະຫວ່າງການຂະຫຍາຍຊື່ເສັ້ນທາງ
ສົ່ງຜົນໃຫ້ເກີດຄວາມຜິດພາດໃນການຂະຫຍາຍຕົວ.
force_fignore
ຖ້າຕັ້ງ, ຄຳຕໍ່ທ້າຍທີ່ລະບຸໂດຍ ບໍ່ເຫັນ shell variable ເຮັດໃຫ້ເກີດຄໍາສັບຕ່າງໆ
ຈະຖືກລະເວັ້ນໃນເວລາທີ່ປະຕິບັດການສໍາເລັດຄໍາສັບເຖິງແມ່ນວ່າຄໍາທີ່ຖືກລະເລີຍແມ່ນ
ການສໍາເລັດທີ່ເປັນໄປໄດ້ເທົ່ານັ້ນ. ເບິ່ງ SHELL ຄວາມຮັບຜິດຊອບ ຂ້າງເທິງສໍາລັບຄໍາອະທິບາຍ
of ບໍ່ເຫັນ. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
globasciiranges
ຖ້າຕັ້ງ, ໄລຍະສະແດງອອກທີ່ໃຊ້ໃນການສະແດງອອກໃນວົງເລັບທີ່ກົງກັບຮູບແບບ (ເບິ່ງ
ຮູບແບບ ການຈັບຄູ່ ຂ້າງເທິງ) ປະຕິບັດຕົວຄືກັບວ່າຢູ່ໃນທ້ອງຖິ່ນ C ແບບດັ້ງເດີມເມື່ອ
ປະຕິບັດການປຽບທຽບ. ນັ້ນແມ່ນ, ລໍາດັບການລວບລວມຂອງທ້ອງຖິ່ນໃນປະຈຸບັນ
ບໍ່ໄດ້ພິຈາລະນາ, ດັ່ງນັ້ນ b ຈະບໍ່ collate ລະຫວ່າງ A ແລະ B, ແລະ
ຕົວອັກສອນ ASCII ໂຕພິມໃຫຍ່ ແລະຕົວພິມນ້ອຍຈະຕິດກັນ.
globstar
ຖ້າຕັ້ງ, ຮູບແບບ ** ໃຊ້ໃນບໍລິບົດການຂະຫຍາຍຊື່ເສັ້ນທາງຈະກົງກັບທັງໝົດ
ໄຟລ໌ ແລະສູນ ຫຼືຫຼາຍໄດເຣັກທໍຣີ ແລະໄດເລກະທໍລີຍ່ອຍ. ຖ້າຮູບແບບແມ່ນ
ຕາມດ້ວຍ /, ພຽງແຕ່ໄດເລກະທໍລີແລະໄດເລກະທໍລີຍ່ອຍກົງກັນ.
gnu_errfmt
ຖ້າຕັ້ງໄວ້, ຂໍ້ຄວາມຄວາມຜິດພາດ Shell ຖືກຂຽນໄວ້ໃນຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ GNU ມາດຕະຖານ
ຮູບແບບ.
ປະຫວັດສາດ
ຖ້າຕັ້ງ, ບັນຊີລາຍຊື່ປະຫວັດສາດຈະຖືກຕໍ່ທ້າຍໄຟລ໌ທີ່ມີຊື່ໂດຍຄ່າຂອງ
ປະຫວັດຫຍໍ້ ປ່ຽນແປງໄດ້ເມື່ອແກະອອກ, ແທນທີ່ຈະຂຽນທັບໄຟລ໌.
ປະຫວັດສາດ
ຖ້າຕັ້ງ, ແລະ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, ຜູ້ໃຊ້ໄດ້ຮັບໂອກາດທີ່ຈະ re-
ແກ້ໄຂການທົດແທນປະຫວັດສາດທີ່ລົ້ມເຫລວ.
ກວດພິສູດ
ຖ້າຕັ້ງ, ແລະ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, ຜົນໄດ້ຮັບຂອງການທົດແທນປະຫວັດສາດແມ່ນ
ບໍ່ໄດ້ຜ່ານທັນທີທັນໃດກັບຕົວແຍກແກະ. ແທນທີ່ຈະ, ເສັ້ນຜົນໄດ້ຮັບແມ່ນ
loaded ເຂົ້າໄປໃນ ເສັ້ນອ່ານ ການແກ້ໄຂ buffer, ອະນຸຍາດໃຫ້ການດັດແກ້ເພີ່ມເຕີມ.
ເຈົ້າພາບສົມບູນ
ຖ້າຕັ້ງ, ແລະ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, bash ຈະພະຍາຍາມປະຕິບັດຊື່ເຈົ້າພາບ
ສໍາເລັດເມື່ອຄໍາທີ່ມີ a @ ກໍາລັງຖືກສໍາເລັດ (ເບິ່ງ ສຳ ເລັດ
ພາຍໃຕ້ການ READLINE ຂ້າງເທິງ). ອັນນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
huponexit
ຖ້າຕັ້ງ, bash ຈະສົ່ງ ຕິດຕາມ ຕໍ່ກັບວຽກທັງໝົດເມື່ອມີແກະເຂົ້າລະບົບແບບໂຕ້ຕອບ
ອອກ.
interactive_comments
ຖ້າຕັ້ງ, ອະນຸຍາດໃຫ້ຄໍາທີ່ເລີ່ມຕົ້ນດ້ວຍ # ເພື່ອເຮັດໃຫ້ຄໍານັ້ນແລະທັງຫມົດທີ່ຍັງເຫຼືອ
ຕົວອັກສອນໃນແຖວນັ້ນຈະຖືກລະເວັ້ນໃນແກະແບບໂຕ້ຕອບ (ເບິ່ງ COMMENTS
ຂ້າງເທິງ). ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
ທໍ່ສຸດທ້າຍ
ຖ້າຕັ້ງ, ແລະການຄວບຄຸມວຽກບໍ່ເຄື່ອນໄຫວ, shell ແລ່ນຄໍາສັ່ງສຸດທ້າຍຂອງ a
ທໍ່ບໍ່ຖືກປະຕິບັດໃນພື້ນຫລັງໃນສະພາບແວດລ້ອມຂອງແກະໃນປະຈຸບັນ.
ລາຍຊື່ນັກຂຽນ ຖ້າຕັ້ງ, ແລະ cmdhist ທາງເລືອກແມ່ນເປີດໃຊ້ງານ, ຄໍາສັ່ງຫຼາຍແຖວໄດ້ຖືກບັນທຶກໄວ້
ປະຫວັດສາດດ້ວຍການຝັງເສັ້ນໃຫມ່ແທນທີ່ຈະໃຊ້ຕົວແຍກ semicolon
ຖ້າເປັນໄປໄດ້.
login_shell
Shell ກໍານົດທາງເລືອກນີ້ຖ້າມັນຖືກເລີ່ມຕົ້ນເປັນແກະເຂົ້າສູ່ລະບົບ (ເບິ່ງ
ການຮຽກຮ້ອງ ຂ້າງເທິງ). ຄ່າອາດຈະບໍ່ມີການປ່ຽນແປງ.
ຈົດໝາຍເຕືອນ
ຖ້າຕັ້ງ, ແລະໄຟລ໌ທີ່ bash ແມ່ນການກວດສອບສໍາລັບ mail ໄດ້ຖືກເຂົ້າເຖິງຕັ້ງແຕ່
ຄັ້ງສຸດທ້າຍທີ່ມັນຖືກກວດ, ຂໍ້ຄວາມ `` mail ເຂົ້າ ໄຟລ໌ຈົດໝາຍ ໄດ້
ອ່ານ '' ຖືກສະແດງ.
no_empty_cmd_completion
ຖ້າຕັ້ງ, ແລະ ເສັ້ນອ່ານ ຖືກນໍາໃຊ້, bash ຈະບໍ່ພະຍາຍາມຄົ້ນຫາ
PATH ສໍາລັບການສໍາເລັດທີ່ເປັນໄປໄດ້ໃນເວລາທີ່ການສໍາເລັດແມ່ນພະຍາຍາມໃນຫວ່າງເປົ່າ
ເສັ້ນ.
nocaseglob
ຖ້າຕັ້ງ, bash ກົງກັບຊື່ໄຟລ໌ໃນຮູບແບບທີ່ບໍ່ລະອຽດອ່ອນຕົວພິມໃຫຍ່ເມື່ອ
ປະຕິບັດການຂະຫຍາຍຊື່ເສັ້ນທາງ (ເບິ່ງ ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ ຂ້າງເທິງ).
nocasematch
ຖ້າຕັ້ງ, bash ຈັບຄູ່ຮູບແບບໃນຮູບແບບທີ່ບໍ່ລະອຽດອ່ອນຕົວພິມນ້ອຍໃນການສະແດງ
ການຈັບຄູ່ໃນຂະນະທີ່ປະຕິບັດ ກໍລະນີ or [[ ຄໍາສັ່ງເງື່ອນໄຂ.
nullglob
ຖ້າຕັ້ງ, bash ອະນຸຍາດໃຫ້ມີຮູບແບບທີ່ກົງກັບໄຟລ໌ທີ່ບໍ່ມີ (ເບິ່ງ ຊື່ເສັ້ນທາງ ການຂະຫຍາຍຕົວ
ຂ້າງເທິງ) ເພື່ອຂະຫຍາຍໄປຫາສະຕຣິງ null, ແທນທີ່ຈະເປັນຕົວຂອງມັນເອງ.
ໂປຣແກມຄອມ
ຖ້າຕັ້ງ, ສິ່ງອໍານວຍຄວາມສະດວກໃນການສໍາເລັດໂຄງການ (ເບິ່ງ Programmable ສໍາເລັດ
ຂ້າງເທິງ) ຖືກເປີດໃຊ້. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
promptvars
ຖ້າຕັ້ງ, prompt strings undergo parameter expansion, command substitution,
ການຂະຫຍາຍເລກຄະນິດ, ແລະການຖອນ quote ຫຼັງຈາກຂະຫຍາຍຕາມທີ່ໄດ້ອະທິບາຍ
in ການເຕືອນ ຂ້າງເທິງ. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
restricted_shell
Shell ກໍານົດທາງເລືອກນີ້ຖ້າມັນຖືກເລີ່ມຕົ້ນໃນຮູບແບບຈໍາກັດ (ເບິ່ງ
ຕອບແທນ SHELL ຂ້າງລຸ່ມນີ້). ຄ່າອາດຈະບໍ່ມີການປ່ຽນແປງ. ອັນນີ້ບໍ່ໄດ້ຖືກຕັ້ງໃໝ່
ເມື່ອໄຟລ໌ເລີ່ມຕົ້ນຖືກປະຕິບັດ, ອະນຸຍາດໃຫ້ໄຟລ໌ເລີ່ມຕົ້ນຄົ້ນພົບ
ບໍ່ວ່າຈະເປັນຫອຍໄດ້ຖືກຈໍາກັດ.
shift_verbose
ຖ້າຕັ້ງ, ໄດ້ ປ່ຽນແປງ builtin ພິມຂໍ້ຄວາມຄວາມຜິດພາດໃນເວລາທີ່ນັບ shift
ເກີນຈຳນວນຕົວກໍານົດການວາງຕຳແໜ່ງ.
ແຫຼ່ງທີ່ມາ
ຖ້າຕັ້ງ, ໄດ້ ແຫຼ່ງ (.) buildin ໃຊ້ມູນຄ່າຂອງ PATH ເພື່ອຊອກຫາໄດເລກະທໍລີ
ມີໄຟລ໌ທີ່ສະໜອງໃຫ້ເປັນການໂຕ້ຖຽງ. ຕົວເລືອກນີ້ຖືກເປີດໃຊ້ໂດຍ
Default
xpg_echo
ຖ້າຕັ້ງ, ໄດ້ echo builtin ຂະຫຍາຍລໍາດັບ backslash-escape ຕາມຄ່າເລີ່ມຕົ້ນ.
suspends [-f]
ໂຈະການປະຕິບັດຂອງແກະນີ້ຈົນກ່ວາມັນໄດ້ຮັບ a ສັນຍາລັກ ສັນຍານ. ເຂົ້າສູ່ລະບົບ
shell ບໍ່ສາມາດຖືກໂຈະ; ໄດ້ -f ທາງເລືອກສາມາດຖືກນໍາໃຊ້ເພື່ອ override ນີ້ແລະບັງຄັບໃຫ້
suspension. ສະຖານະກັບຄືນແມ່ນ 0 ເວັ້ນເສຍແຕ່ວ່າ shell ເປັນ shell ເຂົ້າສູ່ລະບົບແລະ -f ບໍ່ແມ່ນ
ສະໜອງໃຫ້, ຫຼືຖ້າການຄວບຄຸມວຽກບໍ່ໄດ້ເປີດໃຊ້ງານ.
ການທົດສອບ ຕົວຢ່າງ
[ ຕົວຢ່າງ ]
ໃຫ້ກັບຄືນສະຖານະພາບຂອງ 0 (ຈິງ) ຫຼື 1 (ຜິດ) ຂຶ້ນກັບການປະເມີນຜົນຂອງ
ການສະແດງອອກຕາມເງື່ອນໄຂ ຕົວຢ່າງ. ແຕ່ລະຕົວປະຕິບັດການແລະ operand ຈະຕ້ອງແຍກຕ່າງຫາກ
ການໂຕ້ຖຽງ. ການສະແດງອອກແມ່ນປະກອບດ້ວຍຂັ້ນຕົ້ນທີ່ອະທິບາຍຂ້າງເທິງພາຍໃຕ້
ສະພາບແວດລ້ອມ ການສະແດງອອກ. ການທົດສອບ ບໍ່ຍອມຮັບທາງເລືອກໃດໆ, ແລະບໍ່ຍອມຮັບແລະ
ບໍ່ສົນໃຈການໂຕ້ຖຽງຂອງ -- ຫມາຍເຖິງການສິ້ນສຸດຂອງທາງເລືອກ.
ການສະແດງອອກອາດຈະຖືກລວມເຂົ້າກັນໂດຍໃຊ້ຕົວປະຕິບັດການຕໍ່ໄປນີ້, ລະບຸໄວ້ໃນການຫຼຸດລົງ
ລຳດັບຄວາມສຳຄັນ. ການປະເມີນຜົນແມ່ນຂຶ້ນກັບຈໍານວນຂອງການໂຕ້ຖຽງ; ເບິ່ງຂ້າງລຸ່ມນີ້.
ລຳດັບຕົວດຳເນີນການແມ່ນໃຊ້ເມື່ອມີຫ້າຂໍ້ໂຕ້ແຍ້ງ ຫຼືຫຼາຍກວ່ານັ້ນ.
! ຕົວຢ່າງ ຄວາມຈິງຖ້າ ຕົວຢ່າງ ແມ່ນບໍ່ຖືກຕ້ອງ.
( ຕົວຢ່າງ )
ຕອບຄ່າຂອງ ຕົວຢ່າງ. ນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອ override ປົກກະຕິ
ລຳດັບຕົວດຳເນີນການ.
expr1 -a expr2
ຄວາມຈິງຖ້າທັງສອງ expr1 ແລະ expr2 ແມ່ນຄວາມຈິງ.
expr1 -o expr2
ເປັນຈິງຖ້າຫາກວ່າ expr1 or expr2 ແມ່ນຄວາມຈິງ.
ການທົດສອບ ແລະ [ ປະເມີນການສະແດງອອກຕາມເງື່ອນໄຂໂດຍໃຊ້ຊຸດຂອງກົດລະບຽບໂດຍອີງໃສ່
ຈໍານວນຂອງການໂຕ້ຖຽງ.
0 ການໂຕ້ຖຽງ
ການສະແດງອອກແມ່ນບໍ່ຖືກຕ້ອງ.
1 ການໂຕ້ຖຽງ
ການສະແດງອອກແມ່ນເປັນຄວາມຈິງຖ້າຫາກວ່າແລະພຽງແຕ່ຖ້າຫາກວ່າການໂຕ້ຖຽງບໍ່ແມ່ນ null.
2 ການໂຕ້ຖຽງ
ຖ້າການໂຕ້ຖຽງທໍາອິດແມ່ນ !, ການສະແດງອອກແມ່ນເປັນຄວາມຈິງຖ້າຫາກວ່າແລະພຽງແຕ່ຖ້າຫາກວ່າທີສອງ
ການໂຕ້ຖຽງແມ່ນ null. ຖ້າການໂຕ້ຖຽງທໍາອິດແມ່ນຫນຶ່ງໃນເງື່ອນໄຂທີ່ບໍ່ມີເງື່ອນໄຂ
ຜູ້ປະກອບການລະບຸໄວ້ຂ້າງເທິງພາຍໃຕ້ ສະພາບແວດລ້ອມ ການສະແດງອອກ, ການສະແດງອອກແມ່ນຄວາມຈິງ
ຖ້າການທົດສອບ unary ແມ່ນຄວາມຈິງ. ຖ້າການໂຕ້ຖຽງທໍາອິດບໍ່ແມ່ນ unary ທີ່ຖືກຕ້ອງ
ການປະຕິບັດເງື່ອນໄຂ, ການສະແດງອອກແມ່ນບໍ່ຖືກຕ້ອງ.
3 ການໂຕ້ຖຽງ
ເງື່ອນໄຂຕໍ່ໄປນີ້ແມ່ນໃຊ້ໃນຄໍາສັ່ງທີ່ລະບຸໄວ້. ຖ້າທີສອງ
argument ແມ່ນຫນຶ່ງໃນຕົວປະຕິບັດເງື່ອນໄຂຄູ່ທີ່ລະບຸໄວ້ຂ້າງເທິງພາຍໃຕ້
ສະພາບແວດລ້ອມ ການສະແດງອອກ, ຜົນໄດ້ຮັບຂອງການສະແດງອອກແມ່ນຜົນໄດ້ຮັບຂອງ
ການທົດສອບ binary ການນໍາໃຊ້ການໂຕ້ຖຽງທໍາອິດແລະທີສາມເປັນຕົວປະຕິບັດ. ໄດ້ -a ແລະ -o
ຜູ້ປະກອບການຖືກພິຈາລະນາເປັນຕົວປະຕິບັດການສອງເມື່ອມີສາມການໂຕ້ຖຽງ.
ຖ້າການໂຕ້ຖຽງທໍາອິດແມ່ນ !, ມູນຄ່າແມ່ນການປະຕິເສດຂອງການໂຕ້ຖຽງສອງ
ການທົດສອບໂດຍໃຊ້ການໂຕ້ຖຽງທີສອງແລະທີສາມ. ຖ້າການໂຕ້ຖຽງທໍາອິດແມ່ນແທ້
( ແລະການໂຕ້ຖຽງທີສາມແມ່ນແທ້ ), ຜົນໄດ້ຮັບແມ່ນການທົດສອບຫນຶ່ງການໂຕ້ຖຽງ
ຂອງການໂຕ້ຖຽງທີສອງ. ຖ້າບໍ່ດັ່ງນັ້ນ, ການສະແດງອອກແມ່ນບໍ່ຖືກຕ້ອງ.
4 ການໂຕ້ຖຽງ
ຖ້າການໂຕ້ຖຽງທໍາອິດແມ່ນ !, ຜົນໄດ້ຮັບແມ່ນການປະຕິເສດຂອງການໂຕ້ຖຽງສາມ
ການສະແດງອອກປະກອບດ້ວຍການໂຕ້ຖຽງທີ່ຍັງເຫຼືອ. ຖ້າບໍ່ດັ່ງນັ້ນ, ການສະແດງອອກ
ໄດ້ຖືກວິເຄາະ ແລະປະເມີນຕາມລໍາດັບກ່ອນໂດຍໃຊ້ກົດລະບຽບທີ່ລະບຸໄວ້
ຂ້າງເທິງ.
5 ຫຼືຫຼາຍກວ່າການໂຕ້ຖຽງ
ການສະແດງອອກແມ່ນໄດ້ຖືກວິເຄາະແລະປະເມີນຕາມລໍາດັບກ່ອນໂດຍໃຊ້
ກົດລະບຽບທີ່ລະບຸໄວ້ຂ້າງເທິງ.
ເມື່ອໃຊ້ກັບ ການທົດສອບ or [, ການ < ແລະ > ຜູ້ປະກອບການຈັດຮຽງ lexicographically ໂດຍໃຊ້ ASCII
ການສັ່ງຊື້.
ເວລາ ພິມເວລາທີ່ສະສົມຂອງຜູ້ໃຊ້ແລະລະບົບສໍາລັບແກະແລະສໍາລັບຂະບວນການທີ່ດໍາເນີນການ
ຈາກແກະ. ສະຖານະກັບຄືນແມ່ນ 0.
ຈັ່ນຈັບ [-lp][[arg] sigspec ... ]
ຄໍາສັ່ງ arg ແມ່ນຈະໄດ້ຮັບການອ່ານແລະປະຕິບັດໃນເວລາທີ່ shell ໄດ້ຮັບສັນຍານ (s)
sigspecທີ່ຢູ່ ຖ້າຫາກວ່າ arg ແມ່ນບໍ່ມີ (ແລະມີອັນດຽວ sigspec) ຫຼື -, ແຕ່ລະກໍານົດ
ສັນຍານໄດ້ຖືກປັບກັບການຕັ້ງຄ່າເດີມຂອງຕົນ (ຄ່າທີ່ມັນມີຢູ່ໃນທາງເຂົ້າໄປໄດ້
ແກະ). ຖ້າ arg ແມ່ນສາຍ null ສັນຍານທີ່ລະບຸໄວ້ໂດຍແຕ່ລະຄົນ sigspec ຖືກລະເລີຍ
ໂດຍແກະແລະໂດຍຄໍາສັ່ງທີ່ມັນເອີ້ນ. ຖ້າ arg ບໍ່ແມ່ນປະຈຸບັນແລະ -p ໄດ້
ສະຫນອງໃຫ້, ຫຼັງຈາກນັ້ນຄໍາສັ່ງໃສ່ກັບດັກທີ່ກ່ຽວຂ້ອງກັບແຕ່ລະຄົນ sigspec ຖືກສະແດງ. ຖ້າບໍ່ມີ
ການໂຕ້ຖຽງແມ່ນສະຫນອງໃຫ້ຫຼືຖ້າພຽງແຕ່ -p ແມ່ນໃຫ້, ຈັ່ນຈັບ ພິມລາຍການຄໍາສັ່ງ
ກ່ຽວຂ້ອງກັບແຕ່ລະສັນຍານ. ໄດ້ -l ທາງເລືອກເຮັດໃຫ້ແກະພິມບັນຊີລາຍການຂອງ
ຊື່ສັນຍານແລະຕົວເລກທີ່ສອດຄ້ອງກັນຂອງພວກເຂົາ. ແຕ່ລະ sigspec ແມ່ນທັງຊື່ສັນຍານ
ກໍານົດໃນsignal.h>, ຫຼືຫມາຍເລກສັນຍານ. ຊື່ສັນຍານແມ່ນບໍ່ມີຕົວພິມນ້ອຍໃຫຍ່ ແລະ
ໄດ້ SIG ຄໍານໍາຫນ້າແມ່ນທາງເລືອກ.
ຖ້າຫາກວ່າເປັນ sigspec is ອອກ (0) ຄໍາສັ່ງ arg ຖືກປະຕິບັດຢູ່ໃນອອກຈາກແກະ. ຖ້າ ກ
sigspec is ດີບັກ, ຄໍາສັ່ງ arg ຖືກປະຕິບັດກ່ອນທຸກໆຄັ້ງ ງ່າຍດາຍ ຄໍາສັ່ງ, ສໍາລັບການ
ຄໍາສັ່ງ, ກໍລະນີ ຄໍາສັ່ງ, ເລືອກ ຄໍາສັ່ງ, ທຸກເລກຄະນິດສາດ ສໍາລັບການ ຄໍາສັ່ງ, ແລະກ່ອນທີ່ຈະ
ຄໍາສັ່ງທໍາອິດປະຕິບັດໃນຫນ້າທີ່ຂອງແກະ (ເບິ່ງ SHELL ໄວຍະກອນ ຂ້າງເທິງ). ອ້າງເຖິງ
ລາຍລະອຽດຂອງ extdebug ທາງເລືອກໃນການ ຮ້ານຄ້າ builtin ສໍາລັບລາຍລະອຽດຂອງຜົນກະທົບຂອງມັນ
ກ່ຽວກັບ ດີບັກ ກັບດັກ. ຖ້າ ກ sigspec is ກັບຄືນ, ຄໍາສັ່ງ arg ຖືກປະຕິບັດໃນແຕ່ລະຄັ້ງ a
ຟັງຊັນ shell ຫຼື script ທີ່ປະຕິບັດດ້ວຍ . or ແຫຼ່ງ buildins ສໍາເລັດ
ການປະຕິບັດ.
ຖ້າຫາກວ່າເປັນ sigspec is ERR, ຄໍາສັ່ງ arg ຖືກປະຕິບັດທຸກຄັ້ງທີ່ທໍ່ aa (ເຊິ່ງອາດຈະ
ປະກອບດ້ວຍຄໍາສັ່ງງ່າຍດາຍດຽວ), ບັນຊີລາຍຊື່, ຫຼືຄໍາສັ່ງປະສົມສົ່ງຄືນ a
ສະຖານະທາງອອກທີ່ບໍ່ແມ່ນສູນ, ຂຶ້ນກັບເງື່ອນໄຂຕໍ່ໄປນີ້. ໄດ້ ERR ຈັ່ນຈັບບໍ່ແມ່ນ
ປະຕິບັດຖ້າຫາກວ່າຄໍາສັ່ງທີ່ລົ້ມເຫລວແມ່ນສ່ວນຫນຶ່ງຂອງບັນຊີລາຍຊື່ຄໍາສັ່ງທັນທີປະຕິບັດຕາມ a
ໃນຂະນະທີ່ or ຈົນກ່ວາ ຄໍາສໍາຄັນ, ສ່ວນຫນຶ່ງຂອງການທົດສອບໃນ an if ຖະແຫຼງການ, ສ່ວນຫນຶ່ງຂອງຄໍາສັ່ງ
ປະຕິບັດໃນ a && or || ບັນຊີລາຍຊື່ຍົກເວັ້ນຄໍາສັ່ງດັ່ງຕໍ່ໄປນີ້ສຸດທ້າຍ && or ||, ໃດໆ
ຄໍາສັ່ງຢູ່ໃນທໍ່ແຕ່ສຸດທ້າຍ, ຫຼືຖ້າຄ່າກັບຄືນຂອງຄໍາສັ່ງແມ່ນເປັນ
inverted ການນໍາໃຊ້ !. ເຫຼົ່ານີ້ແມ່ນເງື່ອນໄຂດຽວກັນທີ່ປະຕິບັດຕາມໂດຍ ຜິດພາດ (-e) ທາງເລືອກ.
ສັນຍານທີ່ຖືກລະເລີຍເມື່ອເຂົ້າໄປຫາຫອຍບໍ່ສາມາດຖືກດັກ ຫຼື ຣີເຊັດໄດ້. ຕິດຢູ່
ສັນຍານທີ່ບໍ່ໄດ້ຖືກລະເລີຍຖືກຣີເຊັດເປັນຄ່າເດີມຂອງພວກມັນຢູ່ໃນ subshell
ຫຼືສະພາບແວດລ້ອມ subshell ເມື່ອສ້າງຫນຶ່ງ. ສະຖານະການກັບຄືນແມ່ນບໍ່ຖືກຕ້ອງຖ້າມີ
sigspec ບໍ່ຖືກຕ້ອງ; ຖ້າບໍ່ດັ່ງນັ້ນ ຈັ່ນຈັບ ກັບຄືນຄວາມຈິງ.
ປະເພດ [-afpP] ຊື່ [ຊື່ ... ]
ໂດຍບໍ່ມີທາງເລືອກ, ຊີ້ບອກວິທີການແຕ່ລະຄົນ ຊື່ ຈະຖືກຕີຄວາມໝາຍຖ້າໃຊ້ເປັນຄຳສັ່ງ
ຊື່. ຖ້າ -t ທາງເລືອກແມ່ນການນໍາໃຊ້, ປະເພດ ພິມສາຍທີ່ເປັນຫນຶ່ງໃນ alias,
ຄໍາ, ຫນ້າທີ່, ປຸກສ້າງ, ຫຼື ເອກະສານ if ຊື່ ແມ່ນນາມແຝງ, ຄຳສັບທີ່ສະຫງວນໄວ້,
function, builtin, ຫຼືໄຟລ໌ disk, ຕາມລໍາດັບ. ຖ້າ ຊື່ ບໍ່ພົບ, ຫຼັງຈາກນັ້ນ
ບໍ່ມີຫຍັງຖືກພິມອອກ, ແລະສະຖານະການອອກຂອງ false ແມ່ນກັບຄືນມາ. ຖ້າ -p ທາງເລືອກແມ່ນ
ໃຊ້ແລ້ວ, ປະເພດ ອາດຈະສົ່ງຄືນຊື່ຂອງໄຟລ໌ດິສກ໌ທີ່ຈະຖືກປະຕິບັດຖ້າ ຊື່
ຖືກລະບຸເປັນຊື່ຄໍາສັ່ງ, ຫຼືບໍ່ມີຫຍັງຖ້າ ``type -t name'' ຈະບໍ່ກັບຄືນມາ
ເອກະສານ. ໄດ້ -P ທາງເລືອກບັງຄັບ ກ PATH ຄົ້ນຫາແຕ່ລະຄົນ ຊື່, ເຖິງແມ່ນວ່າ `` type -t ຊື່ ''
ຈະບໍ່ກັບຄືນມາ ເອກະສານ. ຖ້າຄໍາສັ່ງຖືກ hash, -p ແລະ -P ພິມຄ່າ hashed,
ເຊິ່ງບໍ່ຈໍາເປັນໄຟລ໌ທີ່ປາກົດໃນຄັ້ງທໍາອິດ PATHທີ່ຢູ່ ຖ້າຫາກວ່າ -a ທາງເລືອກແມ່ນ
ໃຊ້ແລ້ວ, ປະເພດ ພິມທຸກສະຖານທີ່ທີ່ມີຊື່ທີ່ສາມາດປະຕິບັດໄດ້ ຊື່. ນີ້
ປະກອບມີນາມແຝງແລະຫນ້າທີ່, ຖ້າແລະພຽງແຕ່ຖ້າຫາກວ່າ -p ທາງເລືອກຍັງບໍ່ໄດ້ນໍາໃຊ້. ໄດ້
ຕາຕະລາງຂອງຄໍາສັ່ງ hashed ບໍ່ໄດ້ຖືກປຶກສາຫາລືໃນເວລາທີ່ໃຊ້ -a. ໄດ້ -f ທາງເລືອກສະກັດກັ້ນ
ການຊອກຫາຟັງຊັນ shell, ເຊັ່ນດຽວກັນກັບ ຄໍາສັ່ງ ກໍ່ສ້າງ. ປະເພດ ກັບຄືນຄວາມຈິງຖ້າຫາກວ່າທັງຫມົດຂອງ
ການໂຕ້ຖຽງໄດ້ຖືກພົບເຫັນ, ບໍ່ຖືກຕ້ອງຖ້າບໍ່ພົບ.
ສູງສຸດ [-HSTabcdefilmnpqrstux [ກໍານົດຂອບເຂດ]]
ສະຫນອງການຄວບຄຸມຊັບພະຍາກອນທີ່ມີຢູ່ກັບແກະແລະຂະບວນການເລີ່ມຕົ້ນ
ໂດຍມັນ, ກ່ຽວກັບລະບົບທີ່ອະນຸຍາດໃຫ້ການຄວບຄຸມດັ່ງກ່າວ. ໄດ້ -H ແລະ -S ທາງເລືອກທີ່ລະບຸວ່າ
ຂີດຈຳກັດແຂງ ຫຼື ອ່ອນແມ່ນກຳນົດໄວ້ສຳລັບຊັບພະຍາກອນທີ່ໃຫ້. ຂອບເຂດທີ່ຍາກບໍ່ສາມາດເພີ່ມຂຶ້ນ
ໂດຍຜູ້ໃຊ້ທີ່ບໍ່ແມ່ນຮາກເມື່ອມັນຖືກກໍານົດ; ຂອບເຂດຈໍາກັດອ່ອນໆອາດຈະເພີ່ມຂຶ້ນເຖິງມູນຄ່າຂອງ
ຂອບເຂດຈໍາກັດຍາກ. ຖ້າບໍ່ -H neither -S ຖືກລະບຸໄວ້, ທັງຂໍ້ຈໍາກັດຂອງອ່ອນແລະແຂງ
ຖືກກໍານົດ. ມູນຄ່າຂອງ ກໍານົດຂອບເຂດ ສາມາດເປັນຕົວເລກໃນຫນ່ວຍງານທີ່ລະບຸໄວ້ສໍາລັບຊັບພະຍາກອນ
ຫຼືຫນຶ່ງໃນຄຸນຄ່າພິເສດ ຍາກ, ອ່ອນໆ, ຫຼື ບໍ່ຈໍາກັດ, ເຊິ່ງຢືນສໍາລັບປະຈຸບັນ
ຂອບເຂດຈໍາກັດແຂງ, ຂອບເຂດຈໍາກັດຂອງປາໃນປັດຈຸບັນ, ແລະບໍ່ມີຈໍາກັດ, ຕາມລໍາດັບ. ຖ້າ ກໍານົດຂອບເຂດ is
ຍົກເວັ້ນ, ມູນຄ່າປັດຈຸບັນຂອງຂອບເຂດຈໍາກັດອ່ອນຂອງຊັບພະຍາກອນຈະຖືກພິມ, ເວັ້ນເສຍແຕ່ວ່າ
-H ທາງເລືອກແມ່ນໃຫ້. ເມື່ອມີຫຼາຍກວ່າຫນຶ່ງຊັບພະຍາກອນຖືກລະບຸ, ຊື່ຈໍາກັດແລະ
ຫົວໜ່ວຍຖືກພິມອອກກ່ອນຄ່າ. ທາງເລືອກອື່ນຖືກຕີລາຄາດັ່ງຕໍ່ໄປນີ້:
-a ຂອບເຂດຈໍາກັດໃນປະຈຸບັນທັງຫມົດໄດ້ຖືກລາຍງານ
-b ຂະຫນາດສູງສຸດຂອງ socket buffer
-c ຂະໜາດສູງສຸດຂອງໄຟລ໌ຫຼັກທີ່ສ້າງຂຶ້ນ
-d ຂະໜາດສູງສຸດຂອງພາກສ່ວນຂໍ້ມູນຂອງຂະບວນການ
-e ບູລິມະສິດການກຳນົດເວລາສູງສຸດ ("ງາມ")
-f ຂະຫນາດສູງສຸດຂອງໄຟລ໌ທີ່ຂຽນໂດຍແກະແລະລູກຂອງມັນ
-i ຈຳນວນສູງສຸດຂອງສັນຍານທີ່ຍັງຄ້າງຢູ່
-l ຂະຫນາດສູງສຸດທີ່ອາດຈະຖືກລັອກເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາ
-m ຂະໜາດທີ່ກຳນົດໄວ້ສູງສຸດຂອງຜູ້ຢູ່ອາໄສ (ຫຼາຍລະບົບບໍ່ປະຕິບັດຕາມຂໍ້ຈຳກັດນີ້)
-n ຈໍານວນສູງສຸດຂອງການອະທິບາຍໄຟລ໌ເປີດ (ລະບົບສ່ວນໃຫຍ່ບໍ່ອະນຸຍາດໃຫ້ນີ້
ຄ່າທີ່ຈະກໍານົດ)
-p ຂະຫນາດທໍ່ໃນ 512-byte blocks (ອັນນີ້ອາດຈະບໍ່ຖືກກໍານົດ)
-q ຈໍານວນສູງສຸດຂອງ bytes ໃນແຖວຂໍ້ຄວາມ POSIX
-r ບູລິມະສິດການກຳນົດເວລາທີ່ແທ້ຈິງສູງສຸດ
-s ຂະຫນາດ stack ສູງສຸດ
-t ຈຳນວນສູງສຸດຂອງເວລາ CPU ເປັນວິນາທີ
-u ຈໍານວນສູງສຸດຂອງຂະບວນການທີ່ມີໃຫ້ກັບຜູ້ໃຊ້ດຽວ
-v ຈໍານວນສູງສຸດຂອງຫນ່ວຍຄວາມຈໍາ virtual ທີ່ມີຢູ່ໃນ shell ແລະ, ໃນບາງ
ລະບົບ, ກັບລູກຂອງຕົນ
-x ຈໍານວນສູງສຸດຂອງການລັອກໄຟລ໌
-T ຈໍານວນສູງສຸດຂອງກະທູ້
If ກໍານົດຂອບເຂດ ແມ່ນໃຫ້, ແລະ -a ທາງເລືອກທີ່ບໍ່ໄດ້ນໍາໃຊ້, ກໍານົດຂອບເຂດ ແມ່ນມູນຄ່າໃຫມ່ຂອງ
ຊັບພະຍາກອນທີ່ລະບຸໄວ້. ຖ້າບໍ່ມີທາງເລືອກແມ່ນໃຫ້, ຫຼັງຈາກນັ້ນ -f ແມ່ນສົມມຸດ. ຄຸນຄ່າແມ່ນຢູ່ໃນ
1024-byte ເພີ່ມຂຶ້ນ, ຍົກເວັ້ນ -t, ເຊິ່ງຢູ່ໃນວິນາທີ; -p, ເຊິ່ງຢູ່ໃນຫນ່ວຍງານຂອງ
512-byte ຕັນ; ແລະ -T, -b, -n, ແລະ -u, ຊຶ່ງເປັນຄ່າທີ່ບໍ່ມີການຂະຫຍາຍ. ກັບຄືນ
ສະຖານະພາບແມ່ນ 0 ເວັ້ນເສຍແຕ່ມີການສະຫນອງທາງເລືອກທີ່ບໍ່ຖືກຕ້ອງຫຼືການໂຕ້ຖຽງ, ຫຼືຄວາມຜິດພາດເກີດຂຶ້ນ
ໃນຂະນະທີ່ກໍານົດຂອບເຂດຈໍາກັດໃຫມ່.
ໜ້າ ກາກ [-p] [-S] [ຮູບແບບການ]
ໜ້າກາກການສ້າງໄຟລ໌ຜູ້ໃຊ້ຖືກຕັ້ງເປັນ ຮູບແບບການທີ່ຢູ່ ຖ້າຫາກວ່າ ຮູບແບບການ ເລີ່ມຕົ້ນດ້ວຍຕົວເລກ, ມັນແມ່ນ
ແປເປັນເລກແປດ; ຖ້າບໍ່ດັ່ງນັ້ນມັນຖືກຕີຄວາມວ່າເປັນຫນ້າກາກຮູບແບບສັນຍາລັກ
ຄືກັນກັບທີ່ຍອມຮັບໂດຍ chmod(1). ຖ້າ ຮູບແບບການ ຖືກລະເວັ້ນ, ມູນຄ່າປັດຈຸບັນຂອງ
ຫນ້າກາກຖືກພິມອອກ. ໄດ້ -S ທາງເລືອກເຮັດໃຫ້ຫນ້າກາກຖືກພິມອອກໃນຮູບແບບສັນຍາລັກ; ໄດ້
ຜົນຜະລິດເລີ່ມຕົ້ນແມ່ນຕົວເລກແປດ. ຖ້າ -p ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ແລະ ຮູບແບບການ is
ຍົກເວັ້ນ, ຜົນຜະລິດແມ່ນຢູ່ໃນຮູບແບບທີ່ອາດຈະຖືກນໍາໃຊ້ຄືນໃຫມ່ເປັນການປ້ອນຂໍ້ມູນ. ສະຖານະການກັບຄືນແມ່ນ
0 ຖ້າຫາກວ່າຮູບແບບໄດ້ຮັບການປ່ຽນແປງສໍາເລັດຮູບຫຼືຖ້າຫາກວ່າບໍ່ມີ ຮູບແບບການ ການໂຕ້ຖຽງໄດ້ຖືກສະຫນອງ, ແລະ
ບໍ່ຖືກຕ້ອງຖ້າບໍ່ດັ່ງນັ້ນ.
ນາມແຝງ [-a] [ຊື່ ... ]
ເອົາແຕ່ລະອັນ ຊື່ ຈາກບັນຊີລາຍຊື່ຂອງນາມແຝງທີ່ກໍານົດ. ຖ້າ -a ແມ່ນສະຫນອງໃຫ້, alias ທັງຫມົດ
ຄໍານິຍາມຖືກໂຍກຍ້າຍ. ຄ່າກັບຄືນແມ່ນເປັນຄວາມຈິງເວັ້ນເສຍແຕ່ໄດ້ສະໜອງໃຫ້ ຊື່ ບໍ່ແມ່ນ
alias ກໍານົດ.
ກຳ ນົດ [-fv] [-n] [ຊື່ ... ]
ສໍາລັບແຕ່ລະຄົນ ຊື່, ເອົາຕົວແປທີ່ສອດຄ້ອງກັນຫຼືຟັງຊັນ. ຖ້າ -v ທາງເລືອກແມ່ນ
ມອບໃຫ້, ແຕ່ລະຄົນ ຊື່ ຫມາຍເຖິງຕົວແປຂອງແກະ, ແລະຕົວແປນັ້ນຖືກໂຍກຍ້າຍ. ອ່ານ-
ຕົວແປເທົ່ານັ້ນອາດຈະບໍ່ຖືກຕັ້ງ. ຖ້າ -f ຖືກກໍານົດ, ແຕ່ລະຄົນ ຊື່ ຫມາຍເຖິງຫອຍ
ຟັງຊັນ, ແລະຄໍານິຍາມຟັງຊັນຖືກໂຍກຍ້າຍ. ຖ້າ -n ທາງເລືອກແມ່ນສະຫນອງໃຫ້,
ແລະ ຊື່ ແມ່ນຕົວແປທີ່ມີ ຊື່ref ຄຸນລັກສະນະ, ຊື່ ຈະບໍ່ໄດ້ຕັ້ງແທນທີ່ຈະ
ຕົວແປທີ່ມັນອ້າງອີງ. -n ບໍ່ມີຜົນກະທົບຖ້າຫາກວ່າ -f ທາງເລືອກແມ່ນສະຫນອງໃຫ້. ຖ້າບໍ່ມີ
ທາງເລືອກແມ່ນສະຫນອງໃຫ້, ແຕ່ລະຄົນ ຊື່ ຫມາຍເຖິງຕົວແປ; ຖ້າບໍ່ມີຕົວແປໂດຍ
ຊື່ນັ້ນ, ຟັງຊັນໃດໆທີ່ມີຊື່ນັ້ນແມ່ນບໍ່ໄດ້ຕັ້ງ. ແຕ່ລະຕົວແປທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼືຟັງຊັນ
ຖືກໂຍກຍ້າຍອອກຈາກສະພາບແວດລ້ອມທີ່ສົ່ງກັບຄໍາສັ່ງຕໍ່ໄປ. ຖ້າມີ
COMP_WORDBREAKS, ມາດຕະຖານ, ວິນາທີ, LINENO, HISTCMD, FUNCNAME, ກຸ່ມ, ຫຼື DISTACK
ບໍ່ໄດ້ຕັ້ງຄ່າ, ພວກເຂົາເຈົ້າສູນເສຍຄຸນສົມບັດພິເສດຂອງເຂົາເຈົ້າ, ເຖິງແມ່ນວ່າພວກເຂົາເຈົ້າໄດ້ຖືກປັບຕໍ່ມາ.
ສະຖານະການອອກແມ່ນເປັນຄວາມຈິງເວັ້ນເສຍແຕ່ a ຊື່ ແມ່ນອ່ານເທົ່ານັ້ນ.
ລໍຖ້າ [-n] [n ...]
ລໍຖ້າສໍາລັບແຕ່ລະຂະບວນການເດັກທີ່ລະບຸໄວ້ແລະສົ່ງຄືນສະຖານະພາບການຢຸດເຊົາຂອງມັນ. ແຕ່ລະ n
ອາດຈະເປັນ ID ຂະບວນການ ຫຼືສະເພາະວຽກ; ຖ້າ spec ວຽກຖືກມອບໃຫ້, ຂະບວນການທັງຫມົດ
ໃນທໍ່ຂອງວຽກນັ້ນແມ່ນລໍຖ້າ. ຖ້າ n ບໍ່ໄດ້ຮັບ, ທັງຫມົດທີ່ມີການເຄື່ອນໄຫວໃນປັດຈຸບັນ
ຂະບວນການຂອງເດັກແມ່ນລໍຖ້າສໍາລັບການ, ແລະສະຖານະການກັບຄືນມາແມ່ນສູນ. ຖ້າ -n ທາງເລືອກແມ່ນ
ສະຫນອງໃຫ້, ລໍຖ້າ ລໍຖ້າໃຫ້ວຽກໃດນຶ່ງຢຸດເຊົາ ແລະສົ່ງຄືນສະຖານະອອກ. ຖ້າ n
ກໍານົດຂະບວນການຫຼືວຽກທີ່ບໍ່ມີຢູ່, ສະຖານະພາບກັບຄືນແມ່ນ 127. ຖ້າບໍ່ດັ່ງນັ້ນ, the
ສະຖານະການກັບຄືນແມ່ນສະຖານະການອອກຂອງຂະບວນການສຸດທ້າຍຫຼືວຽກທີ່ລໍຖ້າ.
ຕອບແທນ SHELL
If bash ແມ່ນເລີ່ມຕົ້ນດ້ວຍຊື່ rbash, ຫຼື -r ທາງເລືອກແມ່ນສະຫນອງໃຫ້ຢູ່ໃນການຮຽກຮ້ອງ, ໄດ້
shell ກາຍເປັນຈໍາກັດ. ແກະທີ່ຖືກຈໍາກັດແມ່ນໃຊ້ເພື່ອຕັ້ງຄ່າສະພາບແວດລ້ອມຫຼາຍຂຶ້ນ
ຄວບຄຸມຫຼາຍກ່ວາແກະມາດຕະຖານ. ມັນປະຕິບັດຕົວດຽວກັນກັບ bash ມີຂໍ້ຍົກເວັ້ນ
ວ່າສິ່ງຕໍ່ໄປນີ້ຖືກຫ້າມ ຫຼື ບໍ່ປະຕິບັດ:
· ການປ່ຽນແປງລະບົບທີ່ມີ cd
· ການຕັ້ງຄ່າຫຼືບໍ່ຕັ້ງຄ່າຂອງ SHELL, PATH, ENV, ຫຼື BASH_ENV
·ການລະບຸຊື່ຄໍາສັ່ງປະກອບດ້ວຍ /
· ການລະບຸຊື່ໄຟລ໌ທີ່ມີ a / ເປັນການໂຕ້ຖຽງກັບ . ຄໍາສັ່ງ builtin
· ການລະບຸຊື່ໄຟລ໌ທີ່ມີ slash ເປັນການໂຕ້ຖຽງກັບ -p ທາງເລືອກໃນການ
hash ຄໍາສັ່ງ builtin
· ການນໍາເຂົ້າຄໍານິຍາມຫນ້າທີ່ຈາກສະພາບແວດລ້ອມ shell ໃນການເລີ່ມຕົ້ນ
· paring ມູນຄ່າຂອງ ແກະ ຈາກສະພາບແວດລ້ອມຂອງແກະໃນຕອນເລີ່ມຕົ້ນ
· redirecting output ໂດຍນໍາໃຊ້ການ >, >|, <>, >&, &>, ແລະ >> redirection operators
· ການນໍາໃຊ້ exec ຄໍາສັ່ງ builtin ເພື່ອທົດແທນ shell ດ້ວຍຄໍາສັ່ງອື່ນ
· ການເພີ່ມ ຫຼືລຶບຄຳສັ່ງ buildin ດ້ວຍ -f ແລະ -d ທາງເລືອກໃນການ ເຮັດໃຫ້ສາມາດ
ຄໍາສັ່ງ builtin
· ການນໍາໃຊ້ ເຮັດໃຫ້ສາມາດ ຄໍາສັ່ງ builtin ເພື່ອເປີດໃຊ້ shell buildins ທີ່ຖືກປິດໃຊ້ງານ
· ການລະບຸ -p ທາງເລືອກໃນການ ຄໍາສັ່ງ ຄໍາສັ່ງ builtin
·ປິດໂໝດຈຳກັດດ້ວຍ ທີ່ກໍານົດໄວ້ +r or ທີ່ກໍານົດໄວ້ +o ຖືກຈໍາກັດ.
ຂໍ້ຈໍາກັດເຫຼົ່ານີ້ຖືກບັງຄັບໃຊ້ຫຼັງຈາກໄຟລ໌ເລີ່ມຕົ້ນໃດໆຖືກອ່ານ.
ເມື່ອຄໍາສັ່ງທີ່ພົບວ່າເປັນ Shell script ຖືກປະຕິບັດ (ເບິ່ງ ຄໍາສັ່ງ ການປະຕິບັດ
ຂ້າງເທິງ), rbash ປິດການຈໍາກັດໃດໆໃນ shell spawned ເພື່ອປະຕິບັດ script ໄດ້.
ໃຊ້ bash ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net