ນີ້ແມ່ນຄໍາສັ່ງ zshparam ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
zshparam - ຕົວກໍານົດການ zsh
ລາຍລະອຽດ
ພາລາມິເຕີມີຊື່, ຄ່າ, ແລະຄຸນລັກສະນະຈໍານວນຫນຶ່ງ. ຊື່ອາດຈະເປັນລໍາດັບໃດກໍ່ຕາມ
ຕົວອັກສອນທີ່ເປັນຕົວເລກ ແລະ ຂີດກ້ອງ, ຫຼື ຕົວອັກສອນດຽວ `*' , `@' , `#' , `?',
`-' , `$', ຫຼື `!'. ພາຣາມິເຕີທີ່ມີຊື່ເລີ່ມຕົ້ນດ້ວຍຕົວເລກ ແລະ ເລກລຸ່ມ
ຍັງເອີ້ນວ່າເປັນ ຕົວແປ.
ຄຸນລັກສະນະຂອງຕົວກໍານົດການກໍານົດ ປະເພດ ຂອງມູນຄ່າຂອງມັນ, ມັກຈະເອີ້ນວ່າ
ປະເພດພາລາມິເຕີຫຼືປະເພດຕົວແປ, ແລະຍັງຄວບຄຸມການປຸງແຕ່ງອື່ນໆທີ່ອາດຈະຖືກນໍາໃຊ້ກັບ
ມູນຄ່າເມື່ອມັນຖືກອ້າງອີງ. ປະເພດມູນຄ່າອາດຈະເປັນ a ຜິວ ໜັງ (ສະຕຣິງ, ຈຳນວນເຕັມ, ຫຼື
ຕົວເລກຈຸດລອຍ), array (ຖືກດັດສະນີເປັນຕົວເລກ), ຫຼື an ສະມາຄົມ array (ອັນ
unordered ຊຸດຂອງຄູ່ມູນຄ່າຊື່, indexed ໂດຍຊື່, ຍັງເອີ້ນວ່າ a hash).
ຕົວກໍານົດການ scalar ທີ່ມີຊື່ອາດຈະມີ ສົ່ງອອກ, -x, attribute , ເພື່ອຄັດລອກພວກມັນເຂົ້າໄປໃນ
ສະພາບແວດລ້ອມຂະບວນການ, ເຊິ່ງຫຼັງຈາກນັ້ນໄດ້ຖືກຖ່າຍທອດຈາກແກະໄປສູ່ຂະບວນການໃຫມ່ໃດໆທີ່ມັນ
ເລີ່ມ. ຕົວກໍານົດການສົ່ງອອກແມ່ນເອີ້ນວ່າ ສະພາບແວດລ້ອມ ຕົວແປ. ຫອຍຍັງ ນໍາເຂົ້າ
ຕົວແປສະພາບແວດລ້ອມໃນເວລາທີ່ເລີ່ມຕົ້ນແລະອັດຕະໂນມັດຫມາຍພາລາມິເຕີທີ່ສອດຄ້ອງກັນ
ເປັນການສົ່ງອອກ. ບາງຕົວແປສະພາບແວດລ້ອມບໍ່ໄດ້ຖືກນໍາເຂົ້າຍ້ອນເຫດຜົນຂອງຄວາມປອດໄພຫຼື
ເນື່ອງຈາກວ່າພວກເຂົາເຈົ້າຈະແຊກແຊງການດໍາເນີນງານທີ່ຖືກຕ້ອງຂອງລັກສະນະ shell ອື່ນໆ.
ພາລາມິເຕີອາດຈະເປັນ ພິເສດ, ນັ້ນແມ່ນ, ພວກມັນມີຄວາມຫມາຍທີ່ຖືກກໍານົດໄວ້ລ່ວງຫນ້າກັບແກະ.
ພາລາມິເຕີພິເສດບໍ່ສາມາດປ່ຽນປະເພດຂອງເຂົາເຈົ້າໄດ້ຫຼືຄຸນສົມບັດການອ່ານເທົ່ານັ້ນປິດ,
ແລະຖ້າຫາກວ່າພາລາມິເຕີພິເສດບໍ່ໄດ້ຕັ້ງ, ຫຼັງຈາກນັ້ນ recreated ຕໍ່ມາ, ຄຸນສົມບັດພິເສດຈະເປັນ
ເກັບຮັກສາໄວ້.
ເພື່ອປະກາດປະເພດຂອງພາລາມິເຕີ, ຫຼືກໍານົດ string ຫຼືຄ່າຕົວເລກໃຫ້ກັບ scalar.
ພາລາມິເຕີ, ການນໍາໃຊ້ ປະເພດ ກໍ່ສ້າງ.
ຄ່າຂອງພາລາມິເຕີ scalar ອາດຈະຖືກມອບຫມາຍໂດຍການຂຽນ:
ຊື່=ມູນຄ່າ
ໃນການມອບຫມາຍສະເລ່ຍ, ມູນຄ່າ ແມ່ນຂະຫຍາຍເປັນສາຍດຽວ, ໃນທີ່ອົງປະກອບຂອງ
arrays ແມ່ນເຂົ້າຮ່ວມກັນ; ການຂະຫຍາຍຊື່ໄຟລ໌ບໍ່ໄດ້ປະຕິບັດເວັ້ນເສຍແຕ່ວ່າທາງເລືອກ
GLOB_ASSIGN ຖືກກໍານົດ.
ເມື່ອຄຸນລັກສະນະຈຳນວນເຕັມ, -i, ຫຼືຄຸນສົມບັດຈຸດລອຍ, -E or -F, ຖືກກໍານົດສໍາລັບ ຊື່,
ໄດ້ ມູນຄ່າ ແມ່ນຂຶ້ນກັບການປະເມີນເລກເລກ. ນອກຈາກນັ້ນ, ໂດຍການປ່ຽນແທນ `=' ກັບ `+=', ກ
ພາລາມິເຕີສາມາດເພີ່ມຂຶ້ນຫຼືຕໍ່ທ້າຍ. ເບິ່ງພາກ 'ຕົວກໍານົດການ Array' ແລະ
ເລກຄະນິດສາດ ການປະເມີນຜົນ (ໃນ zshmisc(1)) ສໍາລັບຮູບແບບການມອບຫມາຍເພີ່ມເຕີມ.
ໃຫ້ສັງເກດວ່າການມອບຫມາຍອາດຈະມີການປ່ຽນແປງຄຸນລັກສະນະຂອງພາລາມິເຕີໂດຍ implicitly. ຍົກຕົວຢ່າງ,
ການມອບໝາຍຕົວເລກໃຫ້ກັບຕົວແປໃນການປະເມີນເລກເລກອາດຈະປ່ຽນປະເພດເປັນຈຳນວນເຕັມ
ຫຼືເລື່ອນ, ແລະດ້ວຍ GLOB_ASSIGN ການມອບໝາຍຮູບແບບໃຫ້ກັບຕົວແປອາດຈະປ່ຽນປະເພດຂອງມັນໄປເປັນ
ຂບວນ.
ເພື່ອອ້າງອີງຄ່າຂອງພາລາມິເຕີ, ຂຽນ `$ຊື່' ຫຼື `${ຊື່}'. ເບິ່ງ ພາລາມິເຕີ
ການຂະຫຍາຍຕົວ in zshexpn(1) ສໍາລັບລາຍລະອຽດຄົບຖ້ວນ. ພາກສ່ວນນັ້ນຍັງອະທິບາຍເຖິງຜົນກະທົບຂອງ
ຄວາມແຕກຕ່າງລະຫວ່າງການກຳນົດ scalar ແລະ array ໃນການຂະຫຍາຍພາລາມິເຕີ.
ວັນເສົາ PARAMETERS
ເພື່ອກຳນົດຄ່າອາເຣ, ໃຫ້ຂຽນໜຶ່ງໃນ:
ທີ່ກໍານົດໄວ້ -A ຊື່ ມູນຄ່າ ...
ຊື່=(ມູນຄ່າ ...)
ຖ້າບໍ່ມີພາລາມິເຕີ ຊື່ ມີ, ຕົວກໍານົດການ array ປະຊຸມສະໄຫມແມ່ນຖືກສ້າງຂຶ້ນ. ຖ້າພາລາມິເຕີ
ຊື່ ມີຢູ່ແລະເປັນ scalar, ມັນຖືກແທນທີ່ດ້ວຍ array ໃຫມ່. ຕື່ມໃສ່ກັບ array ທີ່ບໍ່ມີ
ການປ່ຽນແປງຄ່າທີ່ມີຢູ່, ໃຊ້ syntax:
ຊື່+=(ມູນຄ່າ ...)
ພາຣາມີເຕີ array ທຳມະດາອາດຈະຖືກປະກາດຢ່າງຈະແຈ້ງດ້ວຍ:
ປະເພດ -a ຊື່
array ສະມາຄົມ ຕ້ອງ ປະກາດກ່ອນການມອບໝາຍ, ໂດຍໃຊ້:
ປະເພດ -A ຊື່
ເມື່ອໃດ ຊື່ ຫມາຍເຖິງ array ສະມາຄົມ, ບັນຊີລາຍຊື່ໃນການມອບຫມາຍຖືກຕີຄວາມວ່າ
ປຸ່ມສະລັບ ແລະຄ່າ:
ທີ່ກໍານົດໄວ້ -A ຊື່ ທີ່ສໍາຄັນ ມູນຄ່າ ...
ຊື່=(ທີ່ສໍາຄັນ ມູນຄ່າ ...)
ທຸກ ທີ່ສໍາຄັນ ຕ້ອງມີ ມູນຄ່າ ໃນກໍລະນີນີ້. ໃຫ້ສັງເກດວ່ານີ້ມອບຫມາຍໃຫ້ array ທັງຫມົດ,
ການລຶບອົງປະກອບໃດໆທີ່ບໍ່ປາກົດຢູ່ໃນບັນຊີລາຍຊື່. ອາດຈະໃຊ້ syntax ເພີ່ມເຕີມ
ກັບ array ສະມາຄົມ:
ຊື່+=(ທີ່ສໍາຄັນ ມູນຄ່າ ...)
ອັນນີ້ເພີ່ມຄູ່ລະຫັດ/ຄ່າໃໝ່ ຖ້າຄີບໍ່ຢູ່ແລ້ວ, ແລະປ່ຽນຄ່າແທນ
ສໍາລັບກະແຈທີ່ມີຢູ່ຖ້າມັນເປັນ.
ເພື່ອສ້າງ array ຫວ່າງເປົ່າ (ລວມທັງ associative arrays), ໃຫ້ໃຊ້ອັນໃດອັນໜຶ່ງ:
ທີ່ກໍານົດໄວ້ -A ຊື່
ຊື່=()
Array ຕົວໜັງສືຍ່ອຍ
ອົງປະກອບສ່ວນບຸກຄົນຂອງ array ອາດຈະຖືກເລືອກໂດຍໃຊ້ subscript. ຫຍໍ້ຂອງ
ຮູບແບບ `[exp]' ເລືອກອົງປະກອບດຽວ exp, ບ່ອນທີ່ exp ແມ່ນການສະແດງອອກເລກຄະນິດສາດທີ່
ຈະມີການຂະຫຍາຍເລກຄະນິດຄືກັບວ່າມັນຖືກອ້ອມຮອບດ້ວຍ `$((...))'. ໄດ້
ອົງປະກອບແມ່ນຕົວເລກເລີ່ມຕົ້ນດ້ວຍ 1, ເວັ້ນເສຍແຕ່ວ່າ KSH_ARRAYS ທາງເລືອກແມ່ນຖືກກໍານົດໃນກໍລະນີ
ພວກມັນຖືກນັບຈາກສູນ.
Subscripts ອາດຈະຖືກນໍາໃຊ້ພາຍໃນວົງເລັບທີ່ໃຊ້ເພື່ອກໍານົດຊື່ພາລາມິເຕີ, ດັ່ງນັ້ນ `${foo[2]}'ແມ່ນ
ເທົ່າກັບ `$foo[2]'. ຖ້າ KSH_ARRAYS ທາງເລືອກແມ່ນໄດ້ຮັບການກໍານົດໄວ້, ຮູບແບບ braced ເປັນພຽງແຕ່ຫນຶ່ງ
ທີ່ເຮັດວຽກ, ເປັນການສະແດງອອກໃນວົງເລັບຖ້າບໍ່ດັ່ງນັ້ນບໍ່ໄດ້ຖືກປະຕິບັດເປັນ subscripts.
ຖ້າ KSH_ARRAYS ທາງເລືອກບໍ່ໄດ້ຖືກຕັ້ງ, ຫຼັງຈາກນັ້ນໂດຍການເລີ່ມຕົ້ນການເຂົ້າເຖິງອົງປະກອບ array ກັບ a
subscript ທີ່ປະເມີນຄ່າສູນສົ່ງຄືນ string ຫວ່າງເປົ່າ, ໃນຂະນະທີ່ຄວາມພະຍາຍາມທີ່ຈະຂຽນເຊັ່ນນັ້ນ
ອົງປະກອບແມ່ນຖືວ່າເປັນຄວາມຜິດພາດ. ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບຄືນໄປບ່ອນ KSH_ZERO_SUBSCRIPT ທາງເລືອກ
ສາມາດຕັ້ງໃຫ້ຄ່າ subscript 0 ແລະ 1 ທຽບເທົ່າ; ເບິ່ງລາຍລະອຽດຂອງ
option in zshoptions(1).
syntax ຂອງ subscripting ດຽວກັນຖືກນໍາໃຊ້ສໍາລັບ arrays ທີ່ກ່ຽວຂ້ອງ, ຍົກເວັ້ນວ່າບໍ່ມີເລກເລກ
ການຂະຫຍາຍແມ່ນໃຊ້ກັບ exp. ຢ່າງໃດກໍຕາມ, ກົດລະບຽບການແຍກສໍານວນສໍານວນເລກຄະນິດຍັງ
ນຳໃຊ້, ເຊິ່ງມີຜົນກະທົບກັບລັກສະນະພິເສດສະເພາະທີ່ຕ້ອງໄດ້ຮັບການປົກປ້ອງຈາກ
ການຕີຄວາມໝາຍ. ເບິ່ງ ຕົວຫຍໍ້ ກຳ ລັງທັບເຮືອ ລາຍລະອຽດຂ້າງລຸ່ມ.
ຕົວຫຍໍ້ຂອງແບບຟອມ `[*]' ຫຼື `[@]' ປະເມີນອົງປະກອບທັງໝົດຂອງອາເຣ; ບໍ່ມີ
ຄວາມແຕກຕ່າງລະຫວ່າງສອງຍົກເວັ້ນເມື່ອພວກມັນປາກົດຢູ່ໃນວົງຢືມຄູ່. `"$foo[*]"'
ປະເມີນເປັນ `"$foo[1] $foo[2] ..."', ໃນຂະນະທີ່ `"$foo[@]"'ປະເມີນເປັນ `"$foo[1]"
"$foo[2]" ...'. ສໍາລັບ array ທີ່ກ່ຽວຂ້ອງ, `[*]' ຫຼື `[@]' ປະເມີນມູນຄ່າທັງຫມົດ, ໃນບໍ່
ຄໍາສັ່ງໂດຍສະເພາະ. ໃຫ້ສັງເກດວ່າອັນນີ້ບໍ່ໄດ້ປ່ຽນແທນກະແຈ; ເບິ່ງເອກະສານສໍາລັບ
ໄດ້ `k'ທຸງພາຍໃຕ້ ພາລາມິເຕີ ການຂະຫຍາຍຕົວ ທົງ in zshexpn(1) ສໍາລັບລາຍລະອຽດຄົບຖ້ວນ. ເມື່ອເປັນ
ພາລາມິເຕີ array ແມ່ນອ້າງອີງເປັນ `$ຊື່' (ບໍ່ມີຕົວຫຍໍ້) ມັນປະເມີນເປັນ `$ຊື່[*]',
ເວັ້ນເສຍແຕ່ວ່າ KSH_ARRAYS ທາງເລືອກແມ່ນກໍານົດໃນກໍລະນີທີ່ມັນປະເມີນເປັນ `${ຊື່[0]}' (ສໍາລັບການ
associative array, ນີ້ຫມາຍຄວາມວ່າມູນຄ່າຂອງ key `0', ທີ່ອາດຈະບໍ່ມີເຖິງແມ່ນວ່າມີ
ແມ່ນຄ່າສໍາລັບກະແຈອື່ນໆ).
ຕົວຫຍໍ້ຂອງແບບຟອມ `[ຫມົດ 1,ຫມົດ 2]' ເລືອກອົງປະກອບທັງໝົດໃນຂອບເຂດ ຫມົດ 1 to ຫມົດ 2,
ລວມ. (Aresociative arrays ແມ່ນ unordered, ແລະດັ່ງນັ້ນຈິ່ງບໍ່ສະຫນັບສະຫນູນ ranges.) ຖ້າຫາກວ່າຫນຶ່ງໃນ.
subscripts ປະເມີນເປັນຈໍານວນລົບ, ເວົ້າ -n, ຫຼັງຈາກນັ້ນ nອົງປະກອບທີຈາກໃນຕອນທ້າຍຂອງ
array ໄດ້ຖືກນໍາໃຊ້. ດັ່ງນັ້ນ`$foo[-3]' ແມ່ນອົງປະກອບທີສາມຈາກທ້າຍຂອງອາເຣ ຟູ,
ແລະ `$foo[1,-1]'ແມ່ນຄືກັນກັບ `$foo[*]'.
Subscripting ອາດຈະຖືກປະຕິບັດກ່ຽວກັບຄ່າທີ່ບໍ່ແມ່ນ array, ໃນກໍລະນີນີ້ subscripts
ລະບຸສະຕຣິງຍ່ອຍທີ່ຈະແຍກອອກ. ຕົວຢ່າງ, ຖ້າ FOO ຖືກຕັ້ງເປັນ `ຟຸບາ', ແລ້ວ `echo
$FOO[2,5]'ພິມ`ໂອບາ'. ຈື່ໄວ້ວ່າບາງຮູບແບບການສະໝັກສະມາຊິກທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້ປະຕິບັດ
ການຈັບຄູ່ຮູບແບບ, ແລະໃນກໍລະນີດັ່ງກ່າວ substring ຂະຫຍາຍຈາກການເລີ່ມຕົ້ນຂອງການຈັບຄູ່ຂອງ
subscript ທໍາອິດກັບໃນຕອນທ້າຍຂອງການຈັບຄູ່ຂອງ subscript ທີສອງ. ຍົກຕົວຢ່າງ,
string = "abcdefghijklm"
ພິມ ${string[(r)d?,(r)h?]}
ພິມ `defghi'. ນີ້ແມ່ນການສັງເກດທົ່ວໄປຂອງກົດລະບຽບສໍາລັບລັກສະນະດຽວ
ການແຂ່ງຂັນ. ສໍາລັບຕົວອັກສອນດຽວ, ພຽງແຕ່ຕົວອັກສອນດຽວແມ່ນການອ້າງອີງ (ບໍ່ແມ່ນລະດັບຂອງ
ຕົວອັກສອນກວມເອົາໂດຍການແຂ່ງຂັນ).
ຈົ່ງຈື່ໄວ້ວ່າໃນການດໍາເນີນງານຂອງ substring subscript ທີສອງຖືກຈັດການແຕກຕ່າງກັນໂດຍ r ແລະ
R subscript flags: ອະດີດໃຊ້ເວລາຈັບຄູ່ສັ້ນທີ່ສຸດເປັນຄວາມຍາວແລະສຸດທ້າຍ
ການແຂ່ງຂັນທີ່ຍາວທີ່ສຸດ. ດ້ວຍເຫດນີ້, ໃນອະດີດ ກ * ໃນທີ່ສຸດແມ່ນ redundant ໃນຂະນະທີ່ໃນກໍລະນີ
ກໍລະນີມັນກົງກັບສ່ວນທີ່ເຫຼືອທັງໝົດຂອງສາຍ. ນີ້ບໍ່ມີຜົນກະທົບຜົນໄດ້ຮັບຂອງ
ກໍລະນີ subscript ດ່ຽວ ທີ່ຢູ່ ຄວາມຍາວຂອງການແຂ່ງຂັນແມ່ນບໍ່ກ່ຽວຂ້ອງ.
Array ອົງປະກອບ ການມອບຫມາຍ
ຕົວຫຍໍ້ອາດຈະຖືກໃຊ້ຢູ່ເບື້ອງຊ້າຍຂອງວຽກເຊັ່ນ:
ຊື່[exp]=ມູນຄ່າ
ໃນຮູບແບບການມອບຫມາຍນີ້ອົງປະກອບຫຼືໄລຍະທີ່ລະບຸໄວ້ໂດຍ exp ຖືກແທນທີ່ດ້ວຍ
ການສະແດງອອກຢູ່ເບື້ອງຂວາ. array (ແຕ່ບໍ່ແມ່ນ associative array) ອາດຈະຖືກສ້າງຂື້ນໂດຍ
ການມອບໝາຍໃຫ້ໄລຍະ ຫຼືອົງປະກອບໃດໜຶ່ງ. Arrays ບໍ່ເຮັດຮັງ, ສະນັ້ນການມອບຫມາຍລາຍຊື່ວົງເລັບ
ຂອງຄ່າເປັນອົງປະກອບຫຼືໄລຍະການປ່ຽນແປງຈໍານວນຂອງອົງປະກອບໃນ array, ການເຄື່ອນຍ້າຍ
ອົງປະກອບອື່ນໆເພື່ອຮອງຮັບຄຸນຄ່າໃຫມ່. (ອັນນີ້ບໍ່ຖືກຮອງຮັບສຳລັບສະມາຄົມ
arrays.)
syntax ນີ້ຍັງເຮັດວຽກເປັນການໂຕ້ຖຽງກັບ ປະເພດ ຄໍາສັ່ງ:
ປະເພດ "ຊື່[exp]"=ມູນຄ່າ
ໄດ້ ມູນຄ່າ ອາດຈະ ບໍ່ ເປັນບັນຊີລາຍຊື່ວົງເລັບໃນກໍລະນີນີ້; ການມອບໝາຍອົງປະກອບດຽວເທົ່ານັ້ນ
ອາດຈະເຮັດດ້ວຍ ປະເພດ. ໃຫ້ສັງເກດວ່າຄໍາເວົ້າແມ່ນມີຄວາມຈໍາເປັນໃນກໍລະນີນີ້ເພື່ອປ້ອງກັນ
ວົງເລັບຈາກການຖືກຕີຄວາມວ່າເປັນຕົວປະຕິບັດການສ້າງຊື່ໄຟລ໌. ໄດ້ noglob ຄໍາສັ່ງ
ຕົວແກ້ໄຂສາມາດຖືກນໍາໃຊ້ແທນ.
ເພື່ອລຶບອົງປະກອບຂອງ array ທຳມະດາ, ກຳນົດ `()' ກັບອົງປະກອບນັ້ນ. ເພື່ອລຶບ
ອົງປະກອບຂອງ array ສະມາຄົມ, ໃຊ້ ກຳ ນົດ ຄໍາສັ່ງ:
ກຳ ນົດ "ຊື່[exp]"
ຕົວຫຍໍ້ ທົງ
ຖ້າວົງເລັບເປີດ, ຫຼືເຄື່ອງໝາຍຈຸດຢູ່ໃນໄລຍະໃດໜຶ່ງ, ໃນການສະແດງຕົວຍ່ອຍໃດໜຶ່ງແມ່ນໂດຍກົງ
ຕິດຕາມດ້ວຍວົງເລັບເປີດ, ເຊືອກທີ່ຂຶ້ນກັບການປິດທີ່ກົງກັນແມ່ນ
ຖືວ່າເປັນບັນຊີລາຍຊື່ຂອງທຸງ, ເຊັ່ນໃນ `ຊື່[(ທົງ)exp]'.
ທຸງ s, n ແລະ b ເອົາການໂຕ້ຖຽງ; ຕົວຂັ້ນແມ່ນສະແດງຢູ່ຂ້າງລຸ່ມນີ້ເປັນ `:', ແຕ່ໃດໆ
ລັກສະນະ, ຫຼືຄູ່ທີ່ຈັບຄູ່ `(...)' , `{...}' , `[...]', ຫຼື `<...>', ອາດຈະຖືກນໍາໃຊ້, ແຕ່
ສັງເກດວ່າ `<...>' ສາມາດນໍາໃຊ້ໄດ້ພຽງແຕ່ຖ້າ subscript ຢູ່ໃນການສະແດງຄໍາເວົ້າສອງເທົ່າ
ຫຼືຕົວກໍານົດການປ່ຽນແທນທີ່ຕິດຢູ່ໃນວົງເລັບຖ້າບໍ່ດັ່ງນັ້ນການສະແດງອອກຈະຖືກຕີຄວາມ
ເປັນການປ່ຽນເສັ້ນທາງ.
ທຸງທີ່ເຂົ້າໃຈໃນປັດຈຸບັນແມ່ນ:
w ຖ້າພາລາມິເຕີ subscripted ເປັນ scalar ຫຼັງຈາກນັ້ນ, ທຸງນີ້ເຮັດໃຫ້ subscripting ເຮັດວຽກ
ຄໍາສັບຕ່າງໆແທນຕົວອັກສອນ. ຕົວແຍກຄໍາເລີ່ມຕົ້ນແມ່ນຍະຫວ່າງ. ທຸງນີ້
ອາດຈະບໍ່ຖືກນໍາໃຊ້ກັບ i or I ທຸງ.
s:string:
ນີ້ເຮັດໃຫ້ string ທີ່ແຍກຄໍາສັບ (ສໍາລັບການນໍາໃຊ້ກັບ w ທຸງ). ໄດ້
ຕົວຂັ້ນ : ແມ່ນ arbitrary; ເບິ່ງຢູ່ຂ້າງເທິງ.
p ຮັບຮູ້ລໍາດັບການຫລົບຫນີດຽວກັນກັບ ພິມ buildin ໃນ string argument ຂອງ
ຕໍ່ມາ `s'ທຸງ.
f ຖ້າພາລາມິເຕີ subscripted ເປັນ scalar ຫຼັງຈາກນັ້ນ, ທຸງນີ້ເຮັດໃຫ້ subscripting ເຮັດວຽກ
ເສັ້ນແທນທີ່ຈະເປັນຕົວອັກສອນ, ie ມີອົງປະກອບທີ່ແຍກອອກໂດຍເສັ້ນໃຫມ່. ນີ້ແມ່ນ
shorthand ສໍາລັບ `pws:\n:'.
r Reverse subscripting: ຖ້າທຸງນີ້ຖືກມອບໃຫ້, the exp ໄດ້ຖືກປະຕິບັດເປັນຮູບແບບແລະ
ຜົນໄດ້ຮັບແມ່ນອົງປະກອບ array ທໍາອິດທີ່ກົງກັນ, substring ຫຼືຄໍາ (ຖ້າພາລາມິເຕີແມ່ນ
array, ຖ້າມັນເປັນ scalar, ຫຼືຖ້າມັນເປັນ scalar ແລະ `w' ທຸງແມ່ນໄດ້ຮັບ,
ຕາມລໍາດັບ). subscript ທີ່ໃຊ້ແມ່ນຈໍານວນຂອງອົງປະກອບທີ່ກົງກັນ, ດັ່ງນັ້ນ
ຄູ່ຂອງ subscripts ເຊັ່ນ: `$foo[(r)??,3]' ແລະ `$foo[(r)??,(r)f*]'ເປັນໄປໄດ້ຖ້າ
ພາຣາມິເຕີບໍ່ແມ່ນອາເຣທີ່ເຊື່ອມໂຍງ. ຖ້າພາລາມິເຕີແມ່ນສະມາຄົມ
array, ພຽງແຕ່ສ່ວນມູນຄ່າຂອງແຕ່ລະຄູ່ແມ່ນປຽບທຽບກັບຮູບແບບ, ແລະຜົນໄດ້ຮັບ
ແມ່ນມູນຄ່ານັ້ນ.
ຖ້າການຄົ້ນຫາຜ່ານ array ທໍາມະດາລົ້ມເຫລວ, ການຄົ້ນຫາຈະກໍານົດ subscript ເປັນອັນຫນຶ່ງ
ຜ່ານທ້າຍຂອງອາເຣ, ແລະດ້ວຍເຫດນີ້ ${array[(r)ຮູບແບບ]} ຈະທົດແທນການຫວ່າງເປົ່າ
ສາຍ. ດັ່ງນັ້ນ, ຄວາມສໍາເລັດຂອງການຄົ້ນຫາສາມາດທົດສອບໄດ້ໂດຍການໃຊ້ (i) ທຸງ, ສໍາລັບ
ຕົວຢ່າງ (ສົມມຸດວ່າທາງເລືອກ KSH_ARRAYS ບໍ່ມີຜົນກະທົບ):
[[ ${array[(i)pattern]} -ການ ${#array} ]]
If KSH_ARRAYS ແມ່ນຢູ່ໃນຜົນກະທົບ, ໄດ້ -ການ ຄວນຈະຖືກແທນທີ່ດ້ວຍ -lt.
R ມັກ`r', ແຕ່ໃຫ້ການແຂ່ງຂັນສຸດທ້າຍ. ສໍາລັບ arrays ທີ່ກ່ຽວຂ້ອງ, ໃຫ້ຄວາມເປັນໄປໄດ້ທັງຫມົດ
ການແຂ່ງຂັນ. ອາດຈະຖືກນໍາໃຊ້ສໍາລັບການກໍາຫນົດໃຫ້ອົງປະກອບ array ທໍາມະດາ, ແຕ່ບໍ່ແມ່ນສໍາລັບ
ມອບໝາຍໃຫ້ array ສະມາຄົມ. ກ່ຽວກັບຄວາມລົ້ມເຫຼວ, ສໍາລັບ arrays ປົກກະຕິນີ້ມີຜົນກະທົບ
ຂອງການກັບຄືນອົງປະກອບທີ່ສອດຄ້ອງກັບ subscript 0; ນີ້ແມ່ນຫວ່າງເປົ່າເວັ້ນເສຍແຕ່ວ່າຫນຶ່ງໃນ
ທາງເລືອກ KSH_ARRAYS or KSH_ZERO_SUBSCRIPT ແມ່ນຢູ່ໃນຜົນກະທົບ.
ໃຫ້ສັງເກດວ່າໃນ subscripts ມີທັງສອງ `r' ແລະ `R' ຕົວອັກສອນຮູບແບບມີການເຄື່ອນໄຫວເຖິງແມ່ນວ່າ
ພວກເຂົາເຈົ້າໄດ້ຖືກທົດແທນສໍາລັບພາລາມິເຕີ (ບໍ່ຄໍານຶງເຖິງການຕັ້ງຄ່າຂອງ GLOB_SUBST
ເຊິ່ງຄວບຄຸມຄຸນສົມບັດນີ້ໃນການຈັບຄູ່ຮູບແບບປົກກະຕິ). ທຸງ `e'ສາມາດເພີ່ມ
ເພື່ອຂັດຂວາງການຈັບຄູ່ຮູບແບບ. ໃນຖານະເປັນທຸງນີ້ບໍ່ໄດ້ inhibit ຮູບແບບອື່ນໆຂອງ
ການທົດແທນ, ການດູແລແມ່ນຍັງຕ້ອງການ; ການນໍາໃຊ້ຕົວກໍານົດການທີ່ຈະຖືກະແຈມີ
ຜົນກະທົບທີ່ຕ້ອງການ:
key2='ຕົ້ນສະບັບ ກະແຈ'
ພິມ ${array[(Re)$key2]}
i ມັກ`r', ແຕ່ໃຫ້ດັດຊະນີຂອງການແຂ່ງຂັນແທນ; ນີ້ອາດຈະບໍ່ຖືກລວມເຂົ້າກັບ a
ການໂຕ້ຖຽງທີສອງ. ຢູ່ເບື້ອງຊ້າຍຂອງວຽກ, ປະຕິບັດຕົວຄືກັບ 'r'. ສໍາລັບ
associative arrays, ສ່ວນທີ່ສໍາຄັນຂອງແຕ່ລະຄູ່ແມ່ນປຽບທຽບກັບຮູບແບບ, ແລະ
ຄີຈັບຄູ່ທໍາອິດທີ່ພົບເຫັນແມ່ນຜົນໄດ້ຮັບ. On ຄວາມລົ້ມເຫຼວທົດແທນຄວາມຍາວຂອງ
array plus one, ດັ່ງທີ່ໄດ້ສົນທະນາພາຍໃຕ້ຄໍາອະທິບາຍຂອງ `r', ຫຼືສະຕຣິງຫວ່າງເປົ່າສໍາລັບ
array ສະມາຄົມ.
I ມັກ`i', ແຕ່ໃຫ້ດັດຊະນີຂອງການແຂ່ງຂັນສຸດທ້າຍ, ຫຼືປຸ່ມທີ່ກົງກັນທີ່ເປັນໄປໄດ້ທັງຫມົດໃນ
array ສະມາຄົມ. ແທນຄວາມລົ້ມເຫລວ 0, ຫຼື string ຫວ່າງເປົ່າສໍາລັບ an
array ສະມາຄົມ. ທຸງນີ້ແມ່ນດີທີ່ສຸດເມື່ອທົດສອບຄ່າ ຫຼືກະແຈທີ່ບໍ່ມີ
ມີຢູ່ແລ້ວ.
k ຖ້າໃຊ້ໃນຕົວໜັງສືຍ່ອຍໃນອາເຣທີ່ກ່ຽວຂ້ອງ, ທຸງນີ້ເຮັດໃຫ້ກະແຈເປັນ
ແປເປັນຮູບແບບ, ແລະສົ່ງຄືນຄ່າສໍາລັບລະຫັດທໍາອິດທີ່ພົບເຫັນຢູ່ໃສ exp is
ຈັບຄູ່ໂດຍຄີ. ໃຫ້ສັງເກດວ່ານີ້ອາດຈະເປັນກຸນແຈໃດໆເຊັ່ນການບໍ່ມີຄໍາສັ່ງຂອງສະມາຄົມ
arrays ຖືກກໍານົດ. ທຸງນີ້ບໍ່ເຮັດວຽກຢູ່ເບື້ອງຊ້າຍຂອງໜ້າທີ່ມອບໝາຍໃຫ້
ອົງປະກອບອາເຣທີ່ກ່ຽວຂ້ອງ. ຖ້າໃຊ້ກັບພາລາມິເຕີປະເພດອື່ນ, ອັນນີ້ປະຕິບັດຄື
`r'.
K ໃນ array ສະມາຄົມນີ້ແມ່ນຄ້າຍຄື 'k' ແຕ່ສົ່ງຄືນຄ່າທັງໝົດຢູ່ໃສ exp is
ຈັບຄູ່ໂດຍກະແຈ. ໃນປະເພດອື່ນໆຂອງຕົວກໍານົດການນີ້ມີຜົນກະທົບເຊັ່ນດຽວກັນກັບ `R'.
n:ຕົວຢ່າງ:
ຖ້າລວມກັບ `r' , `R' , `i' ຫຼື `I', ເຮັດໃຫ້ພວກເຂົາໃຫ້ nທີ ຫຼື nນັດສຸດທ້າຍ
(if ຕົວຢ່າງ ປະເມີນເຖິງ n). ທຸງນີ້ຖືກລະເລີຍເມື່ອ array ເຊື່ອມໂຍງກັນ. ໄດ້
ຕົວຂັ້ນ : ແມ່ນ arbitrary; ເບິ່ງຢູ່ຂ້າງເທິງ.
b:ຕົວຢ່າງ:
ຖ້າລວມກັບ `r' , `R' , `i' ຫຼື `I', ເຮັດໃຫ້ພວກເຂົາເລີ່ມຕົ້ນຢູ່ທີ່ nທີ ຫຼື nສຸດທ້າຍ
ອົງປະກອບ, ຄໍາ, ຫຼືລັກສະນະ (ຖ້າ ຕົວຢ່າງ ປະເມີນເຖິງ n). ທຸງນີ້ຖືກລະເລີຍເມື່ອໃດ
array ແມ່ນການເຊື່ອມໂຍງ. ຕົວອັກສອນຕົວຂັ້ນ : ແມ່ນ arbitrary; ເບິ່ງຢູ່ຂ້າງເທິງ.
e ທຸງນີ້ເຮັດໃຫ້ເກີດການຈັບຄູ່ຮູບແບບໃດນຶ່ງທີ່ຈະຖືກປະຕິບັດຢູ່ໃນຕົວໜັງສືຍ່ອຍເພື່ອ
ໃຊ້ການຈັບຄູ່ສະຕຣິງທຳມະດາແທນ. ເພາະສະນັ້ນ`${array[(re)*]}' ກົງກັບ array ເທົ່ານັ້ນ
ອົງປະກອບທີ່ມີມູນຄ່າແມ່ນ *. ໃຫ້ສັງເກດວ່າຮູບແບບອື່ນຂອງການທົດແທນເຊັ່ນພາລາມິເຕີ
ການທົດແທນບໍ່ໄດ້ຖືກຍັບຍັ້ງ.
ທຸງນີ້ຍັງສາມາດຖືກນໍາໃຊ້ເພື່ອບັງຄັບ * or @ ຈະຖືກຕີຄວາມໝາຍວ່າເປັນກະແຈອັນດຽວແທນ
ຫຼາຍກວ່າການອ້າງອີງເຖິງຄຸນຄ່າທັງໝົດ. ມັນອາດຈະຖືກນໍາໃຊ້ເພື່ອຈຸດປະສົງທາງຊ້າຍ
ຂ້າງຂອງການມອບຫມາຍ.
ເບິ່ງ ພາລາມິເຕີ ການຂະຫຍາຍຕົວ ທົງ (zshexpn(1)) ສໍາລັບວິທີການເພີ່ມເຕີມໃນການຈັດການຜົນໄດ້ຮັບ
ຂອງ array subscripting.
ຕົວຫຍໍ້ ກຳ ລັງທັບເຮືອ
ການສົນທະນານີ້ສ່ວນໃຫຍ່ແມ່ນໃຊ້ກັບສະຕຣິງຫຼັກຂອງອາເຣທີ່ກ່ຽວຂ້ອງ ແລະຮູບແບບທີ່ໃຊ້ສໍາລັບ
reverse subscripting (the `r' , `R' , `i', etc. flags), ແຕ່ມັນອາດຈະສົ່ງຜົນກະທົບຕໍ່ພາລາມິເຕີ
ການທົດແທນທີ່ປາກົດເປັນສ່ວນຫນຶ່ງຂອງການສະແດງອອກທາງເລກຄະນິດໃນ subscript ທໍາມະດາ.
ເພື່ອຫຼີກເວັ້ນການຈໍາກັດການແຍກຕົວຍ່ອຍໃນການມອບຫມາຍໃຫ້ອົງປະກອບອາເຣທີ່ກ່ຽວຂ້ອງ, ໃຫ້ໃຊ້
syntax ເພີ່ມເຕີມ:
aa+=('ກະແຈ ກັບ "*ແປກ*" ຕົວອັກສອນ 'ຄ່າ ສາຍ')
ກົດລະບຽບພື້ນຖານທີ່ຈະຈື່ຈໍາໃນເວລາທີ່ການຂຽນ subscript ການສະແດງອອກແມ່ນວ່າຂໍ້ຄວາມທັງຫມົດລະຫວ່າງ
ເປີດ[' ແລະການປິດ `]' ຖືກຕີຄວາມໝາຍ as if ມັນຢູ່ໃນວົງຢືມຄູ່ (ເບິ່ງ
zshmisc(1)). ແນວໃດກໍ່ຕາມ, ບໍ່ເຫມືອນກັບວົງຢືມຄູ່ທີ່ປົກກະຕິບໍ່ສາມາດຕັ້ງ, subscript
ການສະແດງອອກອາດຈະປາກົດຢູ່ໃນສະຕຣິງທີ່ອ້າງອີງສອງເທື່ອ ຫຼືຢູ່ໃນຕົວສະແດງຍ່ອຍອື່ນໆ
(ຫຼືທັງສອງ!), ດັ່ງນັ້ນກົດລະບຽບມີສອງຄວາມແຕກຕ່າງທີ່ສໍາຄັນ.
ຄວາມແຕກຕ່າງທໍາອິດແມ່ນວ່າວົງເລັບ (`[' ແລະ `]') ຕ້ອງປະກົດເປັນຄູ່ສົມດຸນໃນ a
ການສະແດງອອກຂອງ subscript ເວັ້ນເສຍແຕ່ວ່າພວກມັນຖືກນໍາຫນ້າດ້ວຍ backslash (`\'). ເພາະສະນັ້ນ, ພາຍໃນ a
ການສະແດງອອກຂອງ subscript (ແລະແຕກຕ່າງຈາກການອ້າງອີງສອງເທົ່າທີ່ແທ້ຈິງ) ລໍາດັບ `\['ກາຍເປັນ[', ແລະ
ເຊັ່ນດຽວກັນ\]'ກາຍເປັນ]'. ນີ້ໃຊ້ໄດ້ເຖິງແມ່ນວ່າໃນກໍລະນີທີ່ backslash ບໍ່ແມ່ນປົກກະຕິ
ຕ້ອງການ; ຕົວຢ່າງ, ຮູບແບບ `[^[]' (ເພື່ອຈັບຄູ່ຕົວອັກສອນອື່ນນອກເໜືອໄປຈາກເປີດ
bracket) ຄວນຂຽນວ່າ `[^\[]' ໃນຮູບແບບ reverse subscript. ຢ່າງໃດກໍຕາມ, ໃຫ້ສັງເກດວ່າ
`\[^\[\]' ແລະແມ້ກະທັ້ງ '\[^[]' ໝາຍຄວາມວ່າ ດຽວກັນ ສິ່ງທີ່, ເນື່ອງຈາກວ່າ backslashes ສະເຫມີຖືກລອກອອກ
ເມື່ອພວກມັນປາກົດຢູ່ຕໍ່ໜ້າວົງເລັບ!
ກົດລະບຽບດຽວກັນໃຊ້ກັບວົງເລັບ (`(' ແລະ `)') ແລະວົງເລັບ (`{' ແລະ `}'): ພວກເຂົາຕ້ອງ
ປະກົດຢູ່ໃນຄູ່ທີ່ສົມດູນກັນຫຼືນໍາຫນ້າດ້ວຍ backslash, ແລະ backslash ທີ່ປົກປ້ອງ
ວົງເລັບ ຫຼືວົງເລັບຖືກເອົາອອກໃນລະຫວ່າງການວິເຄາະ. ນີ້ແມ່ນຍ້ອນວ່າການຂະຫຍາຍພາລາມິເຕີ
ອາດຈະຖືກອ້ອມຮອບດ້ວຍວົງເລັບທີ່ສົມດູນ, ແລະທຸງຍ່ອຍຖືກນໍາສະເຫນີໂດຍສົມດູນ
ວົງເລັບ.
ຄວາມແຕກຕ່າງທີ່ສອງແມ່ນວ່າວົງຢືມສອງເທົ່າ (`"') ອາດຈະປາກົດເປັນສ່ວນຫນຶ່ງຂອງ subscript
ການສະແດງອອກໂດຍບໍ່ມີການຖືກນໍາຫນ້າໂດຍ backslash, ແລະດັ່ງນັ້ນທັງສອງຕົວອັກສອນ
`\"' ຍັງຄົງເປັນຕົວອັກສອນສອງຕົວຢູ່ໃນຕົວຫຍໍ້ (ໃນຄໍາອ້າງອີງສອງເທົ່າ, `\"'ກາຍເປັນ"').
ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກກົດລະບຽບການອ້າງອິງຂອງແກະມາດຕະຖານ, ຄໍາເວົ້າສອງເທົ່າທີ່ປາກົດຕ້ອງ
ເກີດຂຶ້ນເປັນຄູ່ສົມດູນ ເວັ້ນເສຍແຕ່ຈະນໍາໜ້າດ້ວຍ backslash. ນີ້ເຮັດໃຫ້ມັນມີຄວາມຫຍຸ້ງຍາກຫຼາຍທີ່ຈະ
ຂຽນ subscript expression ທີ່ມີຈໍານວນຄີກຂອງຕົວອັກສອນ double-quote, ແຕ່
ເຫດຜົນສໍາລັບຄວາມແຕກຕ່າງນີ້ແມ່ນເພື່ອວ່າໃນເວລາທີ່ການສະແດງອອກ subscript ປາກົດຢູ່ໃນຄວາມຈິງ
double-quotes, ຫນຶ່ງຍັງສາມາດຂຽນ `\"' (ແທນທີ່ຈະເປັນ `\\\"') ສໍາລັບ `"'.
ເພື່ອໃຊ້ຕົວເລກຄີກຂອງວົງຢືມຄູ່ເປັນກະແຈໃນການມອບໝາຍ, ໃຫ້ໃຊ້ ປະເພດ ປຸກສ້າງ
ແລະຄູ່ປິດວົງຢືມຄູ່; ເພື່ອອ້າງອີງເຖິງມູນຄ່າຂອງກະແຈນັ້ນ, ໃຫ້ໃຊ້ອີກຄັ້ງ
ວົງຢືມຄູ່:
ປະເພດ -A aa
ປະເພດ "aa[one\"ສອງ\"ສາມ\"quotes]"=QQQ
ພິມ "$aa[ຫນຶ່ງ\"ສອງ\"ສາມ\"quotes]"
ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າກົດລະບຽບວົງຢືມບໍ່ປ່ຽນແປງເມື່ອມີການຂະຫຍາຍພາລາມິເຕີ
ກັບ subscript ແມ່ນ nested ພາຍໃນ subscript expression ອື່ນ. ນັ້ນແມ່ນ, ມັນບໍ່ແມ່ນ
ມີຄວາມຈໍາເປັນທີ່ຈະນໍາໃຊ້ backslashes ເພີ່ມເຕີມພາຍໃນການສະແດງອອກ subscript ພາຍໃນ; ພວກເຂົາແມ່ນ
ຖອດອອກພຽງແຕ່ຄັ້ງດຽວ, ຈາກ subscript ພາຍໃນທີ່ສຸດອອກໄປຂ້າງນອກ. ຕົວກໍານົດການແມ່ນຍັງຂະຫຍາຍ
ຈາກ subscript ພາຍໃນທີ່ສຸດທໍາອິດ, ເນື່ອງຈາກວ່າແຕ່ລະການຂະຫຍາຍຕົວແມ່ນພົບຊ້າຍໄປຂວາໃນ
ການສະແດງອອກພາຍນອກ.
ອາການແຊກຊ້ອນອີກອັນໜຶ່ງແມ່ນມາຈາກວິທີການວິເຄາະຕົວໜັງສືຍ່ອຍ ບໍ່ ແຕກຕ່າງຈາກ
paring quote ສອງ. ເຊັ່ນດຽວກັນກັບການອ້າງອິງຄູ່ທີ່ແທ້ຈິງ, ລໍາດັບ `\*', ແລະ `\@'ຍັງຄົງເປັນ
ສອງຕົວອັກສອນເມື່ອພວກມັນປາກົດຢູ່ໃນຕົວສະແດງຍ່ອຍ. ການນໍາໃຊ້ຕົວຫນັງສື `*' ຫຼື `@'ເປັນ
ລະຫັດອາເຣທີ່ກ່ຽວຂ້ອງ, 'e' ທຸງຕ້ອງຖືກນໍາໃຊ້:
ປະເພດ -A aa
aa[(e)*]=ດາວ
ພິມ $aa[(e)*]
ລາຍລະອຽດສຸດທ້າຍຕ້ອງຖືກພິຈາລະນາເມື່ອການສະມັກແບບກັບກັນຖືກປະຕິບັດ. ພາລາມິເຕີ
ປະກົດຢູ່ໃນການສະແດງອອກຂອງ subscript ທໍາອິດຖືກຂະຫຍາຍແລະຫຼັງຈາກນັ້ນສະແດງອອກທີ່ສົມບູນ
ຖືກຕີຄວາມວ່າເປັນຮູບແບບ. ນີ້ມີຜົນກະທົບສອງຢ່າງ: ທໍາອິດ, ພາລາມິເຕີປະຕິບັດຕົວຄືກັບວ່າ
GLOB_SUBST ເປີດ (ແລະມັນບໍ່ສາມາດປິດໄດ້); ອັນທີສອງ, backslashes ຖືກຕີຄວາມໝາຍ
ສອງເທື່ອ, ເມື່ອວິເຄາະຕົວຍ່ອຍຂອງອາເຣ ແລະອີກຄັ້ງເມື່ອວິເຄາະຮູບແບບ. ຢູ່ໃນ
reverse subscript, ມັນຈໍາເປັນຕ້ອງໃຊ້ ສີ່ backslashes ເພື່ອເຮັດໃຫ້ backslash ດຽວກັບ
ກົງກັນກັບຮູບແບບ. ສໍາລັບຮູບແບບທີ່ຊັບຊ້ອນ, ມັນມັກຈະງ່າຍທີ່ສຸດທີ່ຈະມອບຫມາຍ
ຮູບແບບທີ່ຕ້ອງການໄປຫາພາລາມິເຕີແລະຫຼັງຈາກນັ້ນອ້າງອີງໃສ່ຕົວກໍານົດການນັ້ນໃນ subscript, ເນື່ອງຈາກວ່າ
ຫຼັງຈາກນັ້ນ, backslashes, ວົງເລັບ, ວົງເລັບ, ແລະອື່ນໆ, ແມ່ນເຫັນໄດ້ພຽງແຕ່ໃນເວລາທີ່ສໍາເລັດ
ການສະແດງອອກຖືກປ່ຽນເປັນຮູບແບບ. ເພື່ອໃຫ້ກົງກັບຄ່າຂອງພາລາມິເຕີຕາມຕົວອັກສອນໃນ a
reverse subscript, ແທນທີ່ຈະເປັນຮູບແບບ, ໃຊ້ `${(q)ຊື່}' (ເບິ່ງ zshexpn(1)) ເພື່ອອ້າງອີງ
ມູນຄ່າຂະຫຍາຍ.
ໃຫ້ສັງເກດວ່າ `k' ແລະ `K' ທຸງແມ່ນ reverse subscripting ສໍາລັບ array ທໍາມະດາ, ແຕ່ແມ່ນ
ບໍ່ reverse subscripting ສໍາລັບ associative array! (ສໍາລັບ array ສະມາຄົມ, ປຸ່ມໃນ
array ຕົວຂອງມັນເອງຖືກຕີຄວາມວ່າເປັນຮູບແບບໂດຍທຸງເຫຼົ່ານັ້ນ; subscript ແມ່ນທໍາມະດາ
ສາຍໃນກໍລະນີນັ້ນ.)
ບັນທຶກສຸດທ້າຍອັນໜຶ່ງ, ບໍ່ກ່ຽວຂ້ອງໂດຍກົງກັບການສະໝັກສະມາຊິກ: ຊື່ຕົວເລກຂອງຕຳແໜ່ງ
ພາລາມິເຕີ (ອະທິບາຍຂ້າງລຸ່ມນີ້) ຖືກແຍກເປັນພິເສດ, ດັ່ງນັ້ນຕົວຢ່າງ `$2foo' ເທົ່າກັບ
`${2}foo'. ດັ່ງນັ້ນ, ການນໍາໃຊ້ syntax subscript ເພື່ອສະກັດ substring ຈາກຕໍາແຫນ່ງ
ພາລາມິເຕີ, ການຂະຫຍາຍຕ້ອງໄດ້ຮັບການລ້ອມຮອບດ້ວຍວົງເລັບ; ຕົວຢ່າງ, `${2[3,5]}' ການປະເມີນຜົນ
ຕົວອັກສອນທີ່ສາມເຖິງຫ້າຂອງຕົວກໍານົດການຕໍາແຫນ່ງທີສອງ, ແຕ່ '$ 2 [3,5]'ແມ່ນ
ຕົວກໍານົດການທີສອງທັງຫມົດ concatenated ກັບຮູບແບບການສ້າງຊື່ໄຟລ໌ `[3,5]'.
ຕຳແໜ່ງ PARAMETERS
ຕົວກໍານົດການຕໍາແຫນ່ງສະຫນອງການເຂົ້າເຖິງ arguments ເສັ້ນຄໍາສັ່ງຂອງ shell
function, shell script, ຫຼື shell ຕົວຂອງມັນເອງ; ເບິ່ງພາກ 'ການຮຽກຮ້ອງ', ແລະຍັງ
ພາກສ່ວນ 'ຫນ້າທີ່'. ພາລາມິເຕີ n, ບ່ອນທີ່ n ແມ່ນຕົວເລກ, ແມ່ນ nຕໍາແຫນ່ງທີ
ພາລາມິເຕີ. ພາລາມິເຕີ `$0'ເປັນກໍລະນີພິເສດ, ເບິ່ງພາກ `ຕົວກໍານົດການກໍານົດໂດຍ The
Shell'.
ຕົວກໍານົດການ *, @ ແລະ argv ແມ່ນ arrays ທີ່ມີຕົວກໍານົດການຕັ້ງຕໍາແຫນ່ງທັງຫມົດ; ດັ່ງນັ້ນ
`$argv[n]', ແລະອື່ນໆ, ເທົ່າກັບພຽງແຕ່ `$n'. ໃຫ້ສັງເກດວ່າທາງເລືອກ KSH_ARRAYS or
KSH_ZERO_SUBSCRIPT ນຳໃຊ້ກັບ arrays ເຫຼົ່ານີ້ເຊັ່ນດຽວກັນ, ດັ່ງນັ້ນດ້ວຍຕົວເລືອກໃດນຶ່ງທີ່ຕັ້ງໄວ້,
`${argv[0]}' ເທົ່າກັບ `$1' ແລະອື່ນໆ.
ຕົວກໍານົດການຕໍາແຫນ່ງອາດຈະມີການປ່ຽນແປງຫຼັງຈາກແກະຫຼືຟັງຊັນເລີ່ມຕົ້ນໂດຍການໃຊ້ ທີ່ກໍານົດໄວ້
buildin, ໂດຍມອບຫມາຍໃຫ້ argv array, ຫຼືໂດຍການມອບຫມາຍໂດຍກົງຂອງແບບຟອມ `n=ມູນຄ່າ'
ບ່ອນທີ່ n ແມ່ນຕົວເລກຂອງຕົວກໍານົດການຕໍາແຫນ່ງທີ່ຈະມີການປ່ຽນແປງ. ນີ້ຍັງສ້າງ (ມີ
ຄ່າເປົ່າ) ຕໍາແໜ່ງໃດນຶ່ງຈາກ 1 ຫາ n ທີ່ບໍ່ມີຄຸນຄ່າແລ້ວ. ຫມາຍເຫດ
ວ່າ, ເນື່ອງຈາກວ່າຕົວກໍານົດການຕໍາແຫນ່ງປະກອບເປັນ array, ການກໍາຫນົດ array ຂອງແບບຟອມ
`n=(ມູນຄ່າ ...)' ແມ່ນອະນຸຍາດ, ແລະມີຜົນກະທົບຂອງການປ່ຽນຄ່າທັງຫມົດຢູ່ໃນຕໍາແຫນ່ງ
ໃຫຍ່ກວ່າ n ໂດຍຫຼາຍຕໍາແໜ່ງທີ່ຈໍາເປັນເພື່ອຮອງຮັບຄຸນຄ່າໃໝ່.
ທ້ອງຖິ່ນ PARAMETERS
ການປະຕິບັດຫນ້າທີ່ Shell ກໍານົດຂອບເຂດສໍາລັບຕົວກໍານົດການ shell. (ຕົວກໍານົດການແມ່ນ
dynamically ຂອບເຂດ.) ໄດ້ ປະເພດ buildin, ແລະຮູບແບບທາງເລືອກຂອງມັນ ປະກາດ, integer,
ທ້ອງຖິ່ນ ແລະ ອ່ານຢ່າງດຽວ (ແຕ່ບໍ່ແມ່ນ ການສົ່ງອອກ), ສາມາດຖືກນໍາໃຊ້ເພື່ອປະກາດພາລາມິເຕີເປັນທ້ອງຖິ່ນ
ຂອບເຂດໃນທີ່ສຸດ.
ເມື່ອພາລາມິເຕີຖືກອ່ານຫຼືມອບຫມາຍໃຫ້, ພາລາມິເຕີທີ່ມີຢູ່ພາຍໃນທີ່ສຸດຂອງຊື່ນັ້ນແມ່ນ
ໃຊ້. (ນັ້ນແມ່ນ, ພາລາມິເຕີທ້ອງຖິ່ນເຊື່ອງຕົວກໍານົດການທ້ອງຖິ່ນຫນ້ອຍ.) ຢ່າງໃດກໍຕາມ, ການມອບຫມາຍ
ກັບພາລາມິເຕີທີ່ບໍ່ມີຢູ່, ຫຼືປະກາດພາລາມິເຕີໃຫມ່ທີ່ມີ ການສົ່ງອອກ, ເຮັດໃຫ້ມັນເປັນ
ສ້າງຂຶ້ນໃນ ນອກຂອບເຂດທີ່ສຸດ.
ຕົວກໍານົດການທ້ອງຖິ່ນຫາຍໄປເມື່ອຂອບເຂດຂອງພວກເຂົາສິ້ນສຸດລົງ. ກຳ ນົດ ສາມາດໃຊ້ເພື່ອລຶບຕົວກໍານົດການ
ໃນຂະນະທີ່ມັນຍັງຢູ່ໃນຂອບເຂດ; ຕົວກໍານົດການພາຍນອກໃດໆຂອງຊື່ດຽວກັນຍັງຄົງເຊື່ອງໄວ້.
ຕົວກໍານົດການພິເສດອາດຈະເຮັດໃຫ້ທ້ອງຖິ່ນ; ພວກເຂົາເຈົ້າຍັງຄົງສາຄຸນລັກສະນະພິເສດຂອງເຂົາເຈົ້າເວັ້ນເສຍແຕ່
ບໍ່ວ່າຈະເປັນຕົວກໍານົດການທີ່ມີຢູ່ແລ້ວຫຼືສ້າງໃຫມ່ມີ -h (ຊ່ອນ) ຄຸນລັກສະນະ. ນີ້ອາດຈະ
ມີຜົນກະທົບທີ່ບໍ່ຄາດຄິດ: ບໍ່ມີຄ່າເລີ່ມຕົ້ນ, ສະນັ້ນຖ້າຫາກວ່າບໍ່ມີການມອບຫມາຍຢູ່ໃນ
ຈຸດຕົວແປແມ່ນສ້າງຢູ່ໃນທ້ອງຖິ່ນ, ມັນຈະຖືກກໍານົດເປັນຄ່າຫວ່າງເປົ່າ (ຫຼືສູນໃນກໍລະນີຂອງ
ຈຳນວນເຕັມ). ຕໍ່ໄປນີ້:
ປະເພດ PATH=/new/directory:$PATH
ແມ່ນຖືກຕ້ອງສໍາລັບການຊົ່ວຄາວອະນຸຍາດໃຫ້ແກະຫຼືໂຄງການທີ່ເອີ້ນວ່າຈາກມັນເພື່ອຊອກຫາ
ໂຄງການໃນ /new/directory ພາຍໃນຫນ້າທີ່.
ໃຫ້ສັງເກດວ່າຂໍ້ຈໍາກັດໃນ zsh ຮຸ່ນເກົ່າທີ່ພາລາມິເຕີທ້ອງຖິ່ນບໍ່ເຄີຍ
ການສົ່ງອອກໄດ້ຖືກໂຍກຍ້າຍອອກ.
PARAMETERS SET BY ການ SHELL
ໃນລາຍການພາລາມິເຕີທີ່ປະຕິບັດຕາມ, ເຄື່ອງຫມາຍ ` ' ຊີ້ໃຫ້ເຫັນວ່າພາລາມິເຕີແມ່ນ
ພິເສດ. ` ' ຊີ້ໃຫ້ເຫັນວ່າພາລາມິເຕີບໍ່ມີຢູ່ໃນເວລາທີ່ shell ເລີ່ມຕົ້ນໃນ
sh or ksh ຮູບແບບການຈຳລອງ.
ພາລາມິເຕີຕໍ່ໄປນີ້ຖືກຕັ້ງໂດຍອັດຕະໂນມັດໂດຍ shell:
! ID ຂະບວນການຂອງຄໍາສັ່ງສຸດທ້າຍໄດ້ເລີ່ມຕົ້ນໃນພື້ນຫລັງກັບ &, ຫຼືໃສ່ເຂົ້າໄປໃນ
ພື້ນຖານທີ່ມີ bg ກໍ່ສ້າງ.
# ຈໍານວນຂອງຕົວກໍານົດການຕໍາແຫນ່ງເປັນທົດສະນິຍົມ. ໃຫ້ສັງເກດວ່າຄວາມສັບສົນບາງຢ່າງອາດຈະເກີດຂື້ນ
ກັບ syntax ໄດ້ $#ຕົວກໍານົດການ ເຊິ່ງທົດແທນຄວາມຍາວຂອງ ຕົວກໍານົດການທີ່ຢູ່ ການນໍາໃຊ້ ${#} ການແກ້ໄຂ
ຄວາມບໍ່ແນ່ນອນ. ໂດຍສະເພາະ, ລໍາດັບ `$#-...' ໃນການສະແດງອອກເລກຄະນິດສາດແມ່ນ
ແປເປັນຄວາມຍາວຂອງພາລາມິເຕີ -, qv
ARGC
ຄືກັນກັບ #.
$ ID ຂະບວນການຂອງແກະນີ້. ໃຫ້ສັງເກດວ່ານີ້ຊີ້ໃຫ້ເຫັນເປືອກຕົ້ນສະບັບເລີ່ມຕົ້ນ
ໂດຍການຮຽກຮ້ອງ zsh; ຂະບວນການທັງຫມົດ forked ຈາກ shells ໂດຍບໍ່ມີການປະຕິບັດໃຫມ່
ໂຄງການເຊັ່ນ: subshells ເລີ່ມຕົ້ນໂດຍ (...), ທົດແທນຄ່າດຽວກັນ.
- ທຸງສະຫນອງໃຫ້ກັບ shell ໃນການຮຽກຮ້ອງຫຼືໂດຍ ທີ່ກໍານົດໄວ້ or ຕັ້ງ ຄຳ ສັ່ງ.
* array ທີ່ປະກອບດ້ວຍພາລາມິເຕີຕໍາແຫນ່ງ.
argv
ຄືກັນກັບ *. ມອບໝາຍໃຫ້ argv ການປ່ຽນແປງຕົວກໍານົດການຕໍາແຫນ່ງທ້ອງຖິ່ນ, ແຕ່ argv is
ບໍ່ ຕົວມັນເອງເປັນຕົວກໍານົດການທ້ອງຖິ່ນ. ກຳລັງລຶບ argv ກັບ ກຳ ນົດ ໃນຫນ້າທີ່ໃດຫນຶ່ງລົບມັນ
ຢູ່ທົ່ວທຸກແຫ່ງ, ເຖິງແມ່ນວ່າພຽງແຕ່ array ພາລາມິເຕີຕໍາແຫນ່ງ innermost ຖືກລົບ (ດັ່ງນັ້ນ *
ແລະ @ ໃນຂອບເຂດອື່ນໆແມ່ນບໍ່ໄດ້ຮັບຜົນກະທົບ).
@ ຄືກັນກັບ argv[@], ເຖິງແມ່ນວ່າໃນເວລາທີ່ argv ບໍ່ໄດ້ຕັ້ງ.
? ສະຖານະການອອກກັບຄືນໂດຍຄໍາສັ່ງສຸດທ້າຍ.
0 ຊື່ທີ່ໃຊ້ເພື່ອຮຽກຮ້ອງໃຫ້ມີ shell ໃນປັດຈຸບັນ, ຫຼືທີ່ກໍານົດໄວ້ໂດຍ -c ທາງເລືອກແຖວຄໍາສັ່ງ
ຕາມການຮຽກຮ້ອງ. ຖ້າ FUNCTION_ARGZERO ທາງເລືອກໄດ້ຖືກຕັ້ງໄວ້, $0 ຖືກຕັ້ງຂຶ້ນໃນການເຂົ້າສູ່ການ a
ຟັງຊັນ shell ກັບຊື່ຂອງຟັງຊັນ, ແລະເມື່ອເຂົ້າໄປຫາ script ທີ່ມາຈາກ
ຊື່ຂອງສະຄຣິບ, ແລະຣີເຊັດເປັນຄ່າທີ່ຜ່ານມາຂອງມັນເມື່ອຟັງຊັນ ຫຼືສະຄຣິບ
ຜົນຕອບແທນ.
ສະຖານະພາບ
ຄືກັນກັບ ?.
ສະຖານະພາບທໍ່
array ທີ່ບັນຈຸສະຖານະການອອກທີ່ສົ່ງຄືນໂດຍຄໍາສັ່ງທັງຫມົດໃນສຸດທ້າຍ
ທໍ່.
_ ການໂຕ້ຖຽງສຸດທ້າຍຂອງຄໍາສັ່ງທີ່ຜ່ານມາ. ນອກຈາກນີ້, ຕົວກໍານົດການນີ້ຖືກກໍານົດໄວ້ໃນ
ສະພາບແວດລ້ອມຂອງທຸກຄໍາສັ່ງປະຕິບັດກັບຊື່ເສັ້ນທາງເຕັມຂອງຄໍາສັ່ງ.
CPUTYPE
ປະເພດເຄື່ອງຈັກ (ປະເພດ microprocessor ຫຼືຕົວແບບເຄື່ອງຈັກ), ຕາມທີ່ກໍານົດໃນເວລາແລ່ນ
ເວລາ.
EGID
ID ກຸ່ມທີ່ມີປະສິດທິພາບຂອງຂະບວນການແກະ. ຖ້າເຈົ້າມີສິດທິພິເສດພຽງພໍ,
ທ່ານອາດຈະປ່ຽນ ID ກຸ່ມທີ່ມີປະສິດທິພາບຂອງຂະບວນການແກະໂດຍການມອບຫມາຍນີ້
ພາລາມິເຕີ. ນອກຈາກນີ້ (ສົມມຸດວ່າສິດທິພິເສດພຽງພໍ), ທ່ານອາດຈະເລີ່ມຕົ້ນຄໍາສັ່ງດຽວ
ດ້ວຍ ID ກຸ່ມທີ່ມີປະສິດທິພາບທີ່ແຕກຕ່າງກັນໂດຍ `(EGID=gid; ຄໍາສັ່ງ)'
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
EUID
ID ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບຂອງຂະບວນການແກະ. ຖ້າທ່ານມີສິດທິພິເສດພຽງພໍ, ທ່ານ
ອາດຈະມີການປ່ຽນແປງ ID ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບຂອງຂະບວນການແກະໂດຍການມອບຫມາຍນີ້
ພາລາມິເຕີ. ນອກຈາກນີ້ (ສົມມຸດວ່າສິດທິພິເສດພຽງພໍ), ທ່ານອາດຈະເລີ່ມຕົ້ນຄໍາສັ່ງດຽວ
ກັບ ID ຜູ້ໃຊ້ທີ່ມີປະສິດທິພາບທີ່ແຕກຕ່າງກັນໂດຍ `(EUID=uid; ຄໍາສັ່ງ)'
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
ERRNO
ມູນຄ່າຂອງ errno (ເບິ່ງ ຜິດພາດ(3)) ຕາມທີ່ຕັ້ງໄວ້ໂດຍການໂທລະບົບທີ່ລົ້ມເຫລວຫຼ້າສຸດ.
ຄ່ານີ້ແມ່ນຂຶ້ນກັບລະບົບ ແລະມີຈຸດປະສົງເພື່ອການດີບັກ. ມັນຍັງເປັນ
ທີ່ເປັນປະໂຫຍດກັບ zsh/ລະບົບ ໂມດູນທີ່ອະນຸຍາດໃຫ້ຕົວເລກປ່ຽນເປັນຊື່
ຫຼືຂໍ້ຄວາມ.
GID
ID ກຸ່ມທີ່ແທ້ຈິງຂອງຂະບວນການແກະ. ຖ້າທ່ານມີສິດທິພິເສດພຽງພໍ, ທ່ານອາດຈະ
ປ່ຽນ ID ກຸ່ມຂອງຂະບວນການ Shell ໂດຍການກໍາຫນົດໃຫ້ພາລາມິເຕີນີ້. ນອກຈາກນີ້
(ສົມມຸດວ່າສິດທິພິເສດພຽງພໍ), ທ່ານອາດຈະເລີ່ມຕົ້ນຄໍາສັ່ງດຽວພາຍໃຕ້ທີ່ແຕກຕ່າງກັນ
ID ກຸ່ມໂດຍ `(GID=gid; ຄໍາສັ່ງ)'
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
HISTCMD
ຈໍານວນເຫດການປະຫວັດສາດໃນປະຈຸບັນຢູ່ໃນແກະແບບໂຕ້ຕອບ, ໃນຄໍາສັບຕ່າງໆອື່ນໆແມ່ນເຫດການ
ຕົວເລກສໍາລັບຄໍາສັ່ງທີ່ເຮັດໃຫ້ເກີດ $HISTCMD ທີ່ຈະອ່ານ. ຖ້າປະຫວັດສາດໃນປະຈຸບັນ
ເຫດການປັບປຸງແກ້ໄຂປະຫວັດສາດ, HISTCMD ການປ່ຽນແປງເຫດການປະຫວັດສາດສູງສຸດໃຫມ່
ຈໍານວນ
ທີ່ສຸດ ຊື່ເຈົ້າພາບປັດຈຸບັນ.
LINENO
ໝາຍເລກແຖວຂອງແຖວປັດຈຸບັນພາຍໃນສະຄຣິບປັດຈຸບັນ, ໄຟລ໌ທີ່ມາ, ຫຼື
ຟັງຊັນ shell ກໍາລັງຖືກປະຕິບັດ, ອັນໃດກໍ່ຕາມທີ່ເລີ່ມຕົ້ນບໍ່ດົນມານີ້. ໃຫ້ສັງເກດວ່າໃນ
ກໍລະນີຂອງການທໍາງານຂອງ shell ເລກແຖວຫມາຍເຖິງການທໍາງານດັ່ງທີ່ມັນປະກົດວ່າ
ໃນຄໍານິຍາມຕົ້ນສະບັບ, ບໍ່ຈໍາເປັນຕ້ອງເປັນການສະແດງໂດຍ ຫນ້າທີ່ ກໍ່ສ້າງ.
LOGNAME
ຖ້າຕົວແປທີ່ສອດຄ້ອງກັນບໍ່ໄດ້ຖືກກໍານົດໄວ້ໃນສະພາບແວດລ້ອມຂອງແກະ, ມັນແມ່ນ
ເລີ່ມຕົ້ນໃສ່ຊື່ເຂົ້າສູ່ລະບົບທີ່ກົງກັບຊ່ວງເວລາເຂົ້າສູ່ລະບົບປະຈຸບັນ. ນີ້
ພາລາມິເຕີຖືກສົ່ງອອກໂດຍຄ່າເລີ່ມຕົ້ນແຕ່ນີ້ສາມາດຖືກປິດໃຊ້ງານໄດ້ໂດຍໃຊ້ ປະເພດ
ກໍ່ສ້າງ. ຄ່າຖືກຕັ້ງເປັນສະຕຣິງທີ່ສົ່ງຄືນໂດຍ ເຂົ້າສູ່ລະບົບ(3) ລະບົບໂທຫາຖ້າ
ທີ່ມີຢູ່.
MACHTYPE
ປະເພດເຄື່ອງຈັກ (ປະເພດ microprocessor ຫຼືຕົວແບບຂອງເຄື່ອງຈັກ), ຕາມທີ່ໄດ້ກໍານົດໄວ້ໃນການລວບລວມ
ເວລາ.
OLDPWD ໄດເລກະທໍລີທີ່ເຮັດວຽກຜ່ານມາ. ນີ້ແມ່ນກໍານົດໃນເວລາທີ່ shell ໄດ້ເລີ່ມຕົ້ນແລະ
ທຸກຄັ້ງທີ່ໄດເລກະທໍລີມີການປ່ຽນແປງ.
OPTARG
ຄ່າຂອງອາກິວເມັນທາງເລືອກສຸດທ້າຍທີ່ປະມວນຜົນໂດຍ ໝໍ້ ຄໍາສັ່ງ.
ເລືອກ
ດັດຊະນີຂອງການໂຕ້ຖຽງທາງເລືອກທີ່ສຸດທີ່ປະຕິບັດໂດຍ ໝໍ້ ຄໍາສັ່ງ.
OSTYPE ລະບົບປະຕິບັດການ, ຕາມທີ່ກໍານົດໃນເວລາລວບລວມ.
PPID
ID ຂະບວນການຂອງພໍ່ແມ່ຂອງແກະ. ສໍາລັບ $$, ມູນຄ່າຊີ້ໃຫ້ເຫັນເຖິງ
ພໍ່ແມ່ຂອງແກະຕົ້ນສະບັບແລະບໍ່ມີການປ່ຽນແປງໃນ subshells.
PWD ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນ. ອັນນີ້ຖືກຕັ້ງເມື່ອແກະເລີ່ມຕົ້ນ ແລະທຸກຄັ້ງ
ການປ່ຽນແປງໄດເລກະທໍລີ.
ມາດຕະຖານ
ຈຳນວນເຕັມ pseudo-random ຈາກ 0 ຫາ 32767, ສ້າງຂຶ້ນໃໝ່ໃນແຕ່ລະເທື່ອພາຣາມິເຕີນີ້
ແມ່ນອ້າງອີງ. ການສ້າງຕົວເລກແບບສຸ່ມສາມາດ seeded ໄດ້ໂດຍການກໍາຫນົດຕົວເລກ
value to ມາດຕະຖານ.
ຄຸນຄ່າຂອງ ມາດຕະຖານ ປະກອບເປັນລຳດັບ pseudo-random ໂດຍເຈດຕະນາ-ຊ້ຳ;
subshells ທີ່ອ້າງອີງ ມາດຕະຖານ ຈະສົ່ງຜົນໃຫ້ຄ່າ pseudo-random ຄືກັນ
ເວັ້ນເສຍແຕ່ມູນຄ່າຂອງ ມາດຕະຖານ ຖືກອ້າງອິງຫຼືມີແກ່ນຢູ່ໃນແກະຂອງພໍ່ແມ່ໃນລະຫວ່າງ
ການຮຽກຮ້ອງ subshell.
ວິນາທີ
ຈໍານວນວິນາທີນັບຕັ້ງແຕ່ການຮຽກຮ້ອງ shell. ຖ້າພາລາມິເຕີນີ້ຖືກມອບຫມາຍ a
ຄ່າ, ຫຼັງຈາກນັ້ນ, ມູນຄ່າທີ່ສົ່ງຄືນຕາມການອ້າງອີງຈະເປັນມູນຄ່າທີ່ຖືກມອບຫມາຍ
ບວກກັບຈໍານວນຂອງວິນາທີນັບຕັ້ງແຕ່ການມອບຫມາຍ.
ບໍ່ເຫມືອນກັບຕົວກໍານົດການພິເສດອື່ນໆ, ປະເພດຂອງ ວິນາທີ ພາລາມິເຕີສາມາດປ່ຽນແປງໄດ້
ການນໍາໃຊ້ ປະເພດ ຄໍາສັ່ງ. ມີພຽງແຕ່ຈໍານວນເຕັມແລະຫນຶ່ງໃນປະເພດຈຸດທີ່ເລື່ອນໄດ້
ອະນຸຍາດ. ຕົວຢ່າງ, `ປະເພດ -F ວິນາທີ' ເຮັດໃຫ້ມູນຄ່າຖືກລາຍງານເປັນ a
ຕົວເລກຈຸດລອຍ. ມູນຄ່າແມ່ນມີຢູ່ໃນຄວາມຖືກຕ້ອງຂອງ microsecond, ເຖິງແມ່ນວ່າ
ແກະອາດຈະສະແດງຕົວເລກຫຼາຍຫຼືຫນ້ອຍຂຶ້ນກັບການນໍາໃຊ້ ປະເພດ. ເບິ່ງ
ເອກະສານສໍາລັບ buildin ໄດ້ ປະເພດ in zshbuiltins(1) ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
SHLVL
ເພີ່ມຂຶ້ນເທື່ອລະຄັ້ງທີ່ແກະໃໝ່ເລີ່ມຕົ້ນ.
ສັນຍານ
array ທີ່ມີຊື່ຂອງສັນຍານ.
TRY_BLOCK_ERROR
ໃນ ສະເຫມີໄປ ບລັອກ, ຊີ້ບອກວ່າລາຍຊື່ລະຫັດກ່ອນໜ້ານີ້ເຮັດໃຫ້ເກີດຄວາມຜິດພາດຫຼືບໍ່.
ຄ່າແມ່ນ 1 ເພື່ອສະແດງຂໍ້ຜິດພາດ, 0 ຖ້າບໍ່ດັ່ງນັ້ນ. ມັນອາດຈະໄດ້ຮັບການປັບ, ລ້າງ
ສະພາບຄວາມຜິດພາດ. ເບິ່ງ ສະລັບສັບຊ້ອນ ຄໍາສັ່ງ in zshmisc(1)
TRY_BLOCK_INTERRUPT
ຕົວແປນີ້ເຮັດວຽກໃນລັກສະນະທີ່ຄ້າຍຄືກັນກັບ TRY_BLOCK_ERROR, ແຕ່ເປັນຕົວແທນຂອງສະຖານະພາບ
ຂອງການລົບກວນຈາກສັນຍານ SIGINT, ເຊິ່ງປົກກະຕິມາຈາກແປ້ນພິມ
ເມື່ອຜູ້ໃຊ້ປະເພດ ^C. ຖ້າຕັ້ງເປັນ 0, ການຂັດຈັງຫວະດັ່ງກ່າວຈະຖືກຣີເຊັດ; ຖ້າບໍ່ດັ່ງນັ້ນ,
ການຂັດຂວາງແມ່ນຂະຫຍາຍພັນຫຼັງຈາກ ສະເຫມີໄປ block.
ໃຫ້ສັງເກດວ່າມັນເປັນໄປໄດ້ວ່າການຂັດຂວາງມາຮອດໃນລະຫວ່າງການປະຕິບັດ
ສະເຫມີໄປ ຕັນ; ການຂັດຂວາງນີ້ຍັງຖືກຂະຫຍາຍພັນ.
TTY ຊື່ຂອງ tty ທີ່ກ່ຽວຂ້ອງກັບແກະ, ຖ້າມີ.
TTYIDLE
ເວລາຫວ່າງຂອງ tty ທີ່ກ່ຽວຂ້ອງກັບແກະໃນວິນາທີ ຫຼື -1 ຖ້າບໍ່ມີ
tty ດັ່ງກ່າວ.
UID
ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງຂອງຂະບວນການແກະ. ຖ້າທ່ານມີສິດທິພິເສດພຽງພໍ, ທ່ານອາດຈະ
ປ່ຽນ ID ຜູ້ໃຊ້ຂອງ Shell ໂດຍການກໍາຫນົດໃຫ້ພາລາມິເຕີນີ້. ນອກຈາກນີ້ (ສົມມຸດ
ສິດທິພິເສດພຽງພໍ), ທ່ານອາດຈະເລີ່ມຕົ້ນຄໍາສັ່ງດຽວພາຍໃຕ້ ID ຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນໂດຍ
`(UID=uid; ຄໍາສັ່ງ)'
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
USERNAME
ຊື່ຜູ້ໃຊ້ທີ່ກົງກັບ ID ຜູ້ໃຊ້ທີ່ແທ້ຈິງຂອງຂະບວນການ shell. ຖ້າເຈົ້າມີ
ສິດທິພິເສດພຽງພໍ, ທ່ານອາດຈະປ່ຽນຊື່ຜູ້ໃຊ້ (ແລະຍັງ ID ຜູ້ໃຊ້ແລະກຸ່ມ
ID) ຂອງແກະໂດຍການກໍາຫນົດໃຫ້ພາລາມິເຕີນີ້. ນອກຈາກນີ້ (ສົມມຸດວ່າພຽງພໍ
ສິດທິພິເສດ), ທ່ານອາດຈະເລີ່ມຕົ້ນຄໍາສັ່ງດຽວພາຍໃຕ້ຊື່ຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນ (ແລະ ID ຜູ້ໃຊ້
ແລະ ID ກຸ່ມ) ໂດຍ `(USERNAME=ຊື່ຜູ້ໃຊ້; ຄໍາສັ່ງ)'
VENDOR ຜູ້ຂາຍ, ຕາມທີ່ກໍານົດໃນເວລາລວບລວມ.
zsh_eval_context (ZSH_EVAL_CONTEXT )
array (ລາຍການທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຊີ້ບອກສະພາບການຂອງລະຫັດ shell ທີ່ເປັນ
ແລ່ນ. ແຕ່ລະຄັ້ງທີ່ລະຫັດ shell ທີ່ເກັບໄວ້ພາຍໃນ shell ຖືກປະຕິບັດ a
string ຖືກຕໍ່ທ້າຍຊົ່ວຄາວກັບ array ເພື່ອຊີ້ບອກປະເພດຂອງການດໍາເນີນການນັ້ນ
ກໍາລັງດໍາເນີນການ. ອ່ານຕາມລໍາດັບ array ໃຫ້ຕົວຊີ້ວັດຂອງ stack ຂອງ
ການດໍາເນີນງານທີ່ໄດ້ຮັບການປະຕິບັດກັບສະພາບການທັນທີທີ່ສຸດທີ່ສຸດ.
ໃຫ້ສັງເກດວ່າຕົວແປບໍ່ໄດ້ໃຫ້ຂໍ້ມູນກ່ຽວກັບບໍລິບົດ syntactic ເຊັ່ນ:
ທໍ່ ຫຼື subshells. ໃຊ້ $ZSH_SUBSHELL ເພື່ອກວດຫາ subshells.
ສະພາບການແມ່ນໜຶ່ງໃນສິ່ງຕໍ່ໄປນີ້:
cmdarg ລະຫັດທີ່ລະບຸໄວ້ໂດຍ -c ທາງເລືອກໄປຫາເສັ້ນຄໍາສັ່ງທີ່ເອີ້ນ shell.
cmdsubst
ການທົດແທນຄໍາສັ່ງໂດຍໃຊ້ `...` or $(...) ກໍ່ສ້າງ.
ເທົ່າກັນ
ການທົດແທນໄຟລ໌ໂດຍໃຊ້ =(...) ກໍ່ສ້າງ.
ການປະເມີນ ລະຫັດປະຕິບັດໂດຍ ການປະເມີນ ກໍ່ສ້າງ.
valautofunc
ລະຫັດປະຕິບັດດ້ວຍ KSH_AUTOLOAD ກົນໄກເພື່ອກໍານົດເປັນ
ຟັງຊັນ autoloaded.
fc ລະຫັດຈາກປະຫວັດແກະທີ່ປະຕິບັດໂດຍ -e ທາງເລືອກໃນການ fc ກໍ່ສ້າງ.
ເອກະສານ ແຖວຂອງລະຫັດຖືກອ່ານໂດຍກົງຈາກໄຟລ໌, ຕົວຢ່າງໂດຍ ແຫຼ່ງ
ກໍ່ສ້າງ.
ລະຫັດໄຟລ໌
ສາຍຂອງລະຫັດຖືກອ່ານຈາກ a .zwc ໄຟລ໌ແທນທີ່ຈະໂດຍກົງຈາກ
ແຫຼ່ງໄຟລ໌.
globqual
ລະຫັດປະຕິບັດໂດຍ e or + glob qualifier.
globsort
ລະຫັດປະຕິບັດເພື່ອສັ່ງໄຟລ໌ໂດຍ o glob qualifier.
insubst
ການທົດແທນໄຟລ໌ໂດຍໃຊ້ <(...) ກໍ່ສ້າງ.
loadautofunc
ລະຫັດອ່ານໂດຍກົງຈາກໄຟລ໌ເພື່ອກໍານົດຟັງຊັນທີ່ໂຫລດອັດຕະໂນມັດ.
outsubst
ການທົດແທນໄຟລ໌ໂດຍໃຊ້ >(...) ກໍ່ສ້າງ.
ຕາຕະລາງ ລະຫັດປະຕິບັດໂດຍ ຕາຕະລາງ ກໍ່ສ້າງ.
shfunc ການທໍາງານຂອງແກະ.
stty ລະຫັດຜ່ານໄປ stty ໂດຍ STTY ສະພາບແວດລ້ອມປ່ຽນແປງ. ປົກກະຕິແລ້ວນີ້ແມ່ນ
ຜ່ານໂດຍກົງກັບລະບົບ stty ຄໍາສັ່ງ, ດັ່ງນັ້ນມູນຄ່ານີ້ຄົງຈະບໍ່ເປັນ
ຈະເຫັນໄດ້ໃນການປະຕິບັດ.
ແບບ ລະຫັດຖືກປະຕິບັດເປັນສ່ວນຫນຶ່ງຂອງຮູບແບບທີ່ດຶງມາຈາກ zstyle buildin ຈາກ
zsh/zutil module
ລະດັບສູງສຸດ
ລະດັບການປະຕິບັດສູງສຸດຂອງສະຄຣິບ ຫຼື ເຊລແບບໂຕ້ຕອບ.
ຈັ່ນຈັບ ລະຫັດປະຕິບັດເປັນຈັ່ນຈັບທີ່ກໍານົດໂດຍ ຈັ່ນຈັບ ກໍ່ສ້າງ. ກັບດັກກໍານົດເປັນ
ຫນ້າທີ່ມີສະພາບການ shfunc. ເນື່ອງຈາກດັກແມ່ນ asynchronous ພວກເຂົາເຈົ້າອາດຈະມີ
ລຳດັບທີ່ແຕກຕ່າງຈາກລະຫັດອື່ນ.
zpty ລະຫັດປະຕິບັດໂດຍ zpty buildin ຈາກ zsh/zpty module
zregexparse-guard
ລະຫັດປະຕິບັດເປັນກອງໂດຍ zregexparse ຄຳ ສັ່ງຈາກ zsh/zutil
module
zregexparse-action
ລະຫັດປະຕິບັດເປັນການດໍາເນີນການໂດຍ zregexparse ຄຳ ສັ່ງຈາກ zsh/zutil
module
ZSH_NAME
ຂະຫຍາຍໄປຫາຊື່ພື້ນຖານຂອງຄໍາສັ່ງທີ່ໃຊ້ເພື່ອເອີ້ນຕົວຢ່າງຂອງ zsh ນີ້.
ZSH_PATCHLEVEL
ສະຕຣິງການແກ້ໄຂສຳລັບໝາຍເລກເວີຊັນຂອງໄຟລ໌ ChangeLog ໃນ zsh
ການແຜ່ກະຈາຍ. ນີ້ແມ່ນເປັນປະໂຫຍດທີ່ສຸດເພື່ອຕິດຕາມສະບັບຂອງແກະ
ໃນລະຫວ່າງການພັດທະນາລະຫວ່າງການປ່ອຍ; ດັ່ງນັ້ນຜູ້ໃຊ້ສ່ວນໃຫຍ່ບໍ່ຄວນໃຊ້ມັນແລະຄວນ
ແທນທີ່ຈະອີງໃສ່ $ZSH_VERSION.
zsh_scheduled_events
ເບິ່ງພາກສ່ວນ 'ໂມດູນ zsh/sched' ໃນ zshmodules(1).
ZSH_SUBSHELL
Readonly integer. ໃນເບື້ອງຕົ້ນສູນ, ເພີ່ມແຕ່ລະຄັ້ງທີ່ສ້ອມແກະເພື່ອສ້າງ
subshell ສໍາລັບການປະຕິບັດລະຫັດ. ເພາະສະນັ້ນ`(ພິມ $ZSH_SUBSHELL)' ແລະ `ພິມ $(ພິມ
$ZSH_SUBSHELL)' ຜົນຜະລິດ 1, ໃນຂະນະທີ່ `( (ພິມ $ZSH_SUBSHELL) )' ຜົນຜະລິດ 2.
ZSH_VERSION
ໝາຍເລກລຸ້ນຂອງ zsh.
PARAMETERS ນໍາໃຊ້ BY ການ SHELL
ຕົວກໍານົດການດັ່ງຕໍ່ໄປນີ້ຖືກນໍາໃຊ້ໂດຍແກະ. ອີກເທື່ອ ໜຶ່ງ, ` ' ຊີ້ໃຫ້ເຫັນວ່າພາລາມິເຕີ
ເປັນພິເສດແລະ ` ' ຊີ້ໃຫ້ເຫັນວ່າພາລາມິເຕີບໍ່ມີຢູ່ໃນເວລາທີ່ shell
ເລີ່ມຕົ້ນໃນ sh or ksh ຮູບແບບການຈຳລອງ.
ໃນກໍລະນີທີ່ມີສອງຕົວກໍານົດການທີ່ມີຮູບແບບຕົວພິມໃຫຍ່ແລະຕົວພິມນ້ອຍດຽວກັນ
ຊື່, ເຊັ່ນ ເສັ້ນທາງ ແລະ PATH, ຮູບແບບຕົວພິມນ້ອຍແມ່ນ array ແລະຮູບແບບຕົວພິມໃຫຍ່ແມ່ນ a
scalar ກັບອົງປະກອບຂອງ array ຮ່ວມກັນໂດຍຈໍ້າສອງເມັດ. ເຫຼົ່ານີ້ແມ່ນຄ້າຍຄືກັນກັບ
ຕົວກໍານົດການ tied ສ້າງໂດຍຜ່ານ `ປະເພດ -T'. ການນໍາໃຊ້ປົກກະຕິສໍາລັບຮູບແບບທີ່ແຍກອອກຈາກຈໍ້າສອງເມັດແມ່ນ
ສໍາລັບການສົ່ງອອກໄປສູ່ສະພາບແວດລ້ອມ, ໃນຂະນະທີ່ຮູບແບບ array ແມ່ນງ່າຍຕໍ່ການຈັດການພາຍໃນ
ແກະ. ໃຫ້ສັງເກດວ່າ unset ທັງສອງຄູ່ຈະ unset ອື່ນໆ; ພວກເຂົາເຈົ້າຮັກສາຂອງເຂົາເຈົ້າ
ຄຸນສົມບັດພິເສດໃນເວລາທີ່ recreated, ແລະ recreation ຫນຶ່ງຂອງຄູ່ຈະ recreate ອື່ນໆ.
ARGV0 ຖ້າສົ່ງອອກ, ມູນຄ່າຂອງມັນຖືກນໍາໃຊ້ເປັນ argv[0] ຂອງຄໍາສັ່ງພາຍນອກ. ປົກກະຕິແລ້ວໃຊ້
ໃນການກໍ່ສ້າງເຊັ່ນ:ARGV0=emacs nethack'.
ບ້າ ອັດຕາເປັນບິດຕໍ່ວິນາທີທີ່ຂໍ້ມູນໄປຮອດຈຸດເຊື່ອມຕໍ່. ບັນນາທິການເສັ້ນ
ຈະໃຊ້ຄ່ານີ້ເພື່ອຊົດເຊີຍເຄື່ອງທີ່ຊ້າໂດຍການອັບເດດລ່າຊ້າ
ກັບການສະແດງຈົນກ່ວາມີຄວາມຈໍາເປັນ. ຖ້າພາລາມິເຕີບໍ່ໄດ້ຖືກຕັ້ງຫຼືຄ່າແມ່ນສູນ
ກົນໄກການຊົດເຊີຍຖືກປິດ. ພາຣາມິເຕີບໍ່ໄດ້ຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນ.
ພາລາມິເຕີນີ້ອາດຈະຖືກກໍານົດກໍາໄລໃນບາງສະຖານະການ, ເຊັ່ນ: ສໍາລັບໂມເດັມຊ້າ
ໂທຫາເຄື່ອງແມ່ຂ່າຍການສື່ສານ, ຫຼືຢູ່ໃນເຄືອຂ່າຍພື້ນທີ່ກວ້າງຊ້າ. ມັນຄວນຈະເປັນ
ກໍານົດອັດຕາ baud ຂອງພາກສ່ວນທີ່ຊ້າທີ່ສຸດຂອງການເຊື່ອມຕໍ່ສໍາລັບການປະຕິບັດທີ່ດີທີ່ສຸດ.
cdpath (CDPATH )
array (ບັນຊີລາຍຊື່ທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຂອງໄດເລກະທໍລີທີ່ລະບຸເສັ້ນທາງຄົ້ນຫາສໍາລັບ
cd ຄໍາສັ່ງ.
ສີ
ຈຳນວນຖັນສຳລັບເຊດຊັນ terminal ນີ້. ໃຊ້ສໍາລັບການພິມລາຍການເລືອກ
ແລະສໍາລັບບັນນາທິການເສັ້ນ.
CORRECT_IGNORE
ຖ້າຕັ້ງ, ຖືກປະຕິບັດເປັນຮູບແບບໃນລະຫວ່າງການແກ້ໄຂການສະກົດຄໍາ. ທ່າແຮງໃດໆ
ການແກ້ໄຂທີ່ກົງກັບຮູບແບບແມ່ນຖືກລະເລີຍ. ຕົວຢ່າງ, ຖ້າຄ່າແມ່ນ `_*'
ຫຼັງຈາກນັ້ນ, ຫນ້າທີ່ສໍາເລັດ (ເຊິ່ງ, ໂດຍສົນທິສັນຍາ, ມີຊື່ເລີ່ມຕົ້ນດ້ວຍ `_')
ຈະບໍ່ຖືກສະເໜີໃຫ້ເປັນການແກ້ໄຂການສະກົດຄໍາ. ຮູບແບບດັ່ງກ່າວບໍ່ໄດ້ນໍາໃຊ້ກັບ
ການແກ້ໄຂຂອງຊື່ໄຟລ໌, ເປັນການນໍາໃຊ້ໂດຍ CORRECT_ALL ທາງເລືອກ (ດັ່ງນັ້ນມີຕົວຢ່າງ
ພຽງແຕ່ໃຫ້ໄຟລ໌ທີ່ເລີ່ມຕົ້ນດ້ວຍ `_' ໃນໄດເລກະທໍລີປະຈຸບັນຈະຍັງຄົງຢູ່
ສໍາເລັດ).
CORRECT_IGNORE_FILE
ຖ້າຕັ້ງ, ຖືກປະຕິບັດເປັນຮູບແບບໃນລະຫວ່າງການແກ້ໄຂການສະກົດຄໍາຂອງຊື່ໄຟລ໌. ໄຟລ໌ໃດໆ
ຊື່ທີ່ກົງກັບຮູບແບບແມ່ນບໍ່ເຄີຍຖືກສະເຫນີໃຫ້ເປັນການແກ້ໄຂ. ຕົວຢ່າງ, ຖ້າ
ມູນຄ່າແມ່ນ `.*' ຫຼັງຈາກນັ້ນ, ຊື່ໄຟລ໌ dot ຈະບໍ່ຖືກສະເຫນີເປັນການສະກົດຄໍາ
ການແກ້ໄຂ. ນີ້ແມ່ນເປັນປະໂຫຍດກັບ CORRECT_ALL ທາງເລືອກ.
DIRSTACKSIZE
ຂະຫນາດສູງສຸດຂອງ stack directory, ໂດຍຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ມີຂອບເຂດຈໍາກັດ. ຖ້າ
stack ໄດ້ຮັບຂະຫນາດໃຫຍ່ກວ່ານີ້, ມັນຈະຖືກຕັດອັດຕະໂນມັດ. ນີ້ແມ່ນເປັນປະໂຫຍດ
ກັບ AUTO_PUSHD ທາງເລືອກ.
ENV ຖ້າ ENV ຕົວແປສະພາບແວດລ້ອມຖືກຕັ້ງເມື່ອ zsh ຖືກເອີ້ນເປັນ sh or ksh, $ENV is
ມາຈາກສະຄຣິບໂປຣໄຟລ໌. ມູນຄ່າຂອງ ENV ແມ່ນຂຶ້ນກັບພາລາມິເຕີ
ການຂະຫຍາຍ, ການທົດແທນຄໍາສັ່ງ, ແລະການຂະຫຍາຍຕົວເລກຄະນິດສາດກ່ອນທີ່ຈະຖືກຕີຄວາມໝາຍ
ເປັນຊື່ເສັ້ນທາງ. ໃຫ້ສັງເກດວ່າ ENV is ບໍ່ ໃຊ້ເວັ້ນເສຍແຕ່ zsh ກໍາລັງເຮັດຕາມ sh or ksh.
FCEDIT ບັນນາທິການເລີ່ມຕົ້ນສໍາລັບ fc ກໍ່ສ້າງ. ຖ້າ FCEDIT ບໍ່ໄດ້ຕັ້ງ, ພາລາມິເຕີ EDITOR
ຖືກນໍາໃຊ້; ຖ້າມັນບໍ່ຖືກຕັ້ງໄວ້, ເປັນຄ່າເລີ່ມຕົ້ນໃນຕົວ, ໂດຍປົກກະຕິ vi, ຖືກນໍາໃຊ້.
ບໍ່ສົນໃຈ (ບໍ່ເຫັນ )
array (ບັນຊີລາຍຊື່ທີ່ແຍກໂດຍຈໍ້າສອງເມັດ) ທີ່ມີສ່ວນຕໍ່ທ້າຍຂອງໄຟລ໌ທີ່ຈະບໍ່ສົນໃຈ
ໃນລະຫວ່າງການສໍາເລັດຊື່ໄຟລ໌. ຢ່າງໃດກໍຕາມ, ຖ້າຫາກວ່າສໍາເລັດພຽງແຕ່ສ້າງໄຟລ໌ທີ່ມີ
suffixes ໃນບັນຊີລາຍຊື່ນີ້, ຫຼັງຈາກນັ້ນໄຟລ໌ເຫຼົ່ານີ້ແມ່ນສໍາເລັດຢ່າງໃດກໍ່ຕາມ.
fpath (FPATH )
array (ບັນຊີລາຍຊື່ທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຂອງໄດເລກະທໍລີທີ່ລະບຸເສັ້ນທາງຄົ້ນຫາສໍາລັບ
ຄໍານິຍາມຫນ້າທີ່. ເສັ້ນທາງນີ້ຖືກຄົ້ນຫາເມື່ອຟັງຊັນທີ່ມີ -u ຄຸນລັກສະນະ
ແມ່ນອ້າງອີງ. ຖ້າພົບໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້, ຫຼັງຈາກນັ້ນມັນຖືກອ່ານແລະດໍາເນີນການຢູ່ໃນ
ສະພາບແວດລ້ອມໃນປະຈຸບັນ.
histchars
ສາມລັກສະນະທີ່ໃຊ້ໂດຍປະຫວັດສາດຂອງແກະແລະກົນໄກການວິເຄາະ lexical. ໄດ້
ຕົວອັກສອນທໍາອິດສັນຍານການເລີ່ມຕົ້ນຂອງການຂະຫຍາຍປະຫວັດສາດ (ຄ່າເລີ່ມຕົ້ນ `!'). ທີ່ສອງ
ຕົວອັກສອນສັນຍານເລີ່ມຕົ້ນຂອງການທົດແທນປະຫວັດສາດໄວ (ຄ່າເລີ່ມຕົ້ນ `^'). ໄດ້
ຕົວອັກສອນທີສາມແມ່ນລັກສະນະຄໍາເຫັນ (ຄ່າເລີ່ມຕົ້ນ `#').
ຕົວອັກສອນຕ້ອງຢູ່ໃນຊຸດຕົວອັກສອນ ASCII; ຄວາມພະຍາຍາມທີ່ຈະຕັ້ງ histchars to
ຕົວອັກສອນທີ່ມີຄວາມຫມາຍຂຶ້ນກັບທ້ອງຖິ່ນຈະຖືກປະຕິເສດດ້ວຍຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ.
HISTCHARS
ຄືກັນກັບ histchars. (ຍົກເລີກແລ້ວ.)
ປະຫວັດຫຍໍ້
ໄຟລ໌ເພື່ອບັນທຶກປະຫວັດໃນເວລາທີ່ shell ແບບໂຕ້ຕອບອອກ. ຖ້າບໍ່ໄດ້ຕັ້ງ, ໄດ້
ປະຫວັດສາດບໍ່ໄດ້ຖືກບັນທຶກໄວ້.
HISTORY_IGNORE
ຖ້າຕັ້ງ, ຖືກປະຕິບັດເປັນຮູບແບບໃນເວລາທີ່ໄຟລ໌ປະຫວັດສາດຖືກຂຽນ. ໃດ
ການເຂົ້າປະຫວັດສາດທີ່ເປັນໄປໄດ້ທີ່ກົງກັບຮູບແບບແມ່ນຂ້າມໄປ. ສໍາລັບຕົວຢ່າງ, ຖ້າຫາກວ່າ
ມູນຄ່າແມ່ນ `fc *' ຫຼັງຈາກນັ້ນຄໍາສັ່ງທີ່ຮຽກຮ້ອງໃຫ້ບັນນາທິການປະຫວັດສາດແບບໂຕ້ຕອບແມ່ນບໍ່ເຄີຍ
ຂຽນໃສ່ເອກະສານປະຫວັດສາດ.
ໃຫ້ສັງເກດວ່າ HISTORY_IGNORE ກໍານົດຮູບແບບດຽວ: ການລະບຸທາງເລືອກການນໍາໃຊ້
`(ຄັ້ງທໍາອິດ|ຄັ້ງທີສອງ|...)' syntax.
ປຽບທຽບ HIST_NO_STORE ທາງເລືອກຫຼື zshaddhistory hook, ບໍ່ວ່າຈະເປັນ
ປ້ອງກັນບໍ່ໃຫ້ຄໍາສັ່ງດັ່ງກ່າວຖືກເພີ່ມເຂົ້າໃນປະຫວັດການໂຕ້ຕອບທັງຫມົດ. ຖ້າເຈົ້າ
ຕ້ອງການໃຊ້ HISTORY_IGNORE ເພື່ອຢຸດການເພີ່ມປະຫວັດສາດ, ທ່ານສາມາດເຮັດໄດ້
ກໍານົດ hook ດັ່ງຕໍ່ໄປນີ້:
zshaddhistory() {
ເຮັດຕາມຕົວຢ່າງ -L zsh
## ບໍ່ສະແດງຄວາມຄິດເຫັນ if HISTORY_IGNORE
## ຄວນ ການນໍາໃຊ້ EXTENDED_GLOB syntax
# ຕັ້ງ ຂະຫຍາຍໂລກ
[[ $1 != ${~HISTORY_IGNORE} ]]
}
ປະຫວັດສາດ
ຈຳນວນສູງສຸດຂອງເຫດການທີ່ເກັບໄວ້ໃນລາຍການປະຫວັດພາຍໃນ. ຖ້າທ່ານໃຊ້
HIST_EXPIRE_DUPS_FIRST ທາງເລືອກ, ກໍານົດຄ່ານີ້ໃຫຍ່ກວ່າ SAVEHIST ຂະຫນາດ
ຈະໃຫ້ຄວາມແຕກຕ່າງແກ່ເຈົ້າເປັນເບາະສຳລັບບັນທຶກເຫດການປະຫວັດສາດທີ່ຊໍ້າກັນ.
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
ຫນ້າທໍາອິດ
ການໂຕ້ຖຽງເລີ່ມຕົ້ນສໍາລັບການ cd ຄໍາສັ່ງ. ນີ້ບໍ່ໄດ້ຖືກຕັ້ງໂດຍອັດຕະໂນມັດໂດຍ
ແກະໃນ sh, ksh or csh emulation, ແຕ່ໂດຍທົ່ວໄປແລ້ວມັນມີຢູ່ໃນສະພາບແວດລ້ອມ
ແລ້ວ, ແລະຖ້າມັນຖືກກໍານົດ, ມັນມີພຶດຕິກໍາພິເສດປົກກະຕິຂອງມັນ.
IFS
ຕົວແຍກຊ່ອງຂໍ້ມູນພາຍໃນ (ໂດຍພື້ນທີ່ເລີ່ມຕົ້ນ, ແຖບ, ແຖວໃໝ່ ແລະ NUL), ທີ່ຖືກນໍາໃຊ້
ເພື່ອແຍກຄໍາທີ່ເປັນຜົນມາຈາກການຂະຫຍາຍຄໍາສັ່ງຫຼືພາລາມິເຕີແລະຄໍາທີ່ອ່ານ
ໂດຍ ອ່ານ ກໍ່ສ້າງ. ຕົວອັກສອນໃດໆຈາກພື້ນທີ່ທີ່ກໍານົດໄວ້, ແຖບແລະແຖວໃຫມ່
ປາກົດຢູ່ໃນ IFS ເອີ້ນວ່າ IFS ສີຂາວ ຊ່ອງ. ພື້ນທີ່ສີຂາວ IFS ໜຶ່ງ ຫຼືຫຼາຍກວ່ານັ້ນ
ຕົວອັກສອນ ຫຼື ຕົວອັກສອນຊ່ອງສີຂາວທີ່ບໍ່ແມ່ນ IFS ພ້ອມກັບ IFS ທີ່ຢູ່ໃກ້ຄຽງ
ຕົວອັກສອນຊ່ອງສີຂາວກໍານົດຊ່ອງຂໍ້ມູນ. ຖ້າລັກສະນະຊ່ອງຫວ່າງ IFS ປາກົດຂຶ້ນ
ສອງຄັ້ງຕິດຕໍ່ກັນໃນ IFS, ລັກສະນະນີ້ຖືກປະຕິບັດຄືກັບວ່າມັນບໍ່ແມ່ນ IFS
ລັກສະນະຊ່ອງຂາວ.
ຖ້າພາລາມິເຕີບໍ່ໄດ້ຖືກຕັ້ງ, ຄ່າເລີ່ມຕົ້ນແມ່ນຖືກນໍາໃຊ້. ໃຫ້ສັງເກດວ່ານີ້ມີຜົນກະທົບທີ່ແຕກຕ່າງກັນ
ຈາກການຕັ້ງຄ່າພາລາມິເຕີໄປຫາສະຕຣິງຫວ່າງເປົ່າ.
KEYBOARD_HACK
ຕົວແປນີ້ກໍານົດຕົວອັກສອນທີ່ຈະເອົາອອກຈາກທ້າຍແຖວຄໍາສັ່ງ
ກ່ອນທີ່ຈະຕີຄວາມມັນ (ແກະແບບໂຕ້ຕອບເທົ່ານັ້ນ). ມັນມີຈຸດປະສົງເພື່ອແກ້ໄຂບັນຫາ
ດ້ວຍກະແຈທີ່ວາງໄວ້ຢ່າງໜ້າລຳຄານໃກ້ຈະກັບຄືນມາ ແລະປ່ຽນແທນ SUNKEYBOARDHACK ທາງເລືອກ
ເຊິ່ງເຮັດສິ່ງນີ້ສໍາລັບ backquotes ເທົ່ານັ້ນ. ຄວນລັກສະນະທີ່ເລືອກເປັນໜຶ່ງໃນ
singlequote, doublequote ຫຼື backquote, ຍັງຈະຕ້ອງມີຈໍານວນຄີກຂອງເຂົາເຈົ້າກ່ຽວກັບ
ເສັ້ນຄໍາສັ່ງສໍາລັບອັນສຸດທ້າຍທີ່ຈະຖືກລຶບອອກ.
ສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບຄືນໄປບ່ອນ, ຖ້າຫາກວ່າ SUNKEYBOARDHACK ທາງເລືອກແມ່ນກໍານົດຢ່າງຊັດເຈນ, ໄດ້
ມູນຄ່າຂອງ KEYBOARD_HACK ກັບໄປເປັນ backquote. ຖ້າຕົວເລືອກບໍ່ໄດ້ຖືກຕັ້ງຢ່າງຊັດເຈນ,
ຕົວແປນີ້ຖືກຕັ້ງໃຫ້ຫວ່າງເປົ່າ.
KEYTIMEOUT
ເວລາທີ່ແກະລໍຖ້າ, ໃນຫຼາຍຮ້ອຍວິນາທີ, ສໍາລັບປຸ່ມອື່ນທີ່ຈະກົດ
ເມື່ອອ່ານລໍາດັບຫຼາຍຕົວອັກສອນທີ່ຖືກຜູກມັດ.
ພາສາ
ຕົວແປນີ້ກຳນົດໝວດໝູ່ທ້ອງຖິ່ນສຳລັບໝວດໝູ່ໃດໜຶ່ງທີ່ບໍ່ສະເພາະ
ເລືອກຜ່ານຕົວແປທີ່ເລີ່ມຕົ້ນດ້ວຍ `LC_'.
LC_ALL
ຕົວແປນີ້ overrides ຄ່າຂອງ `ພາສາ' ຕົວແປແລະມູນຄ່າຂອງໃດໆ
ຕົວແປອື່ນເລີ່ມຕົ້ນດ້ວຍ `LC_'.
LC_COLLATE
ຕົວແປນີ້ກໍານົດປະເພດທ້ອງຖິ່ນສໍາລັບຂໍ້ມູນການລວບລວມຕົວອັກສອນ
ພາຍໃນຂອບເຂດໃນວົງເລັບ glob ແລະສໍາລັບການຈັດຮຽງ.
LC_CTYPE
ຕົວແປນີ້ກຳນົດໝວດໝູ່ທ້ອງຖິ່ນສຳລັບຟັງຊັນການຈັດການຕົວອັກສອນ. ຖ້າ
ໄດ້ MULTIBYTE ທາງເລືອກແມ່ນມີຜົນກະທົບຕົວປ່ຽນແປງນີ້ຫຼື ພາສາ ຄວນມີຄ່າທີ່
ສະທ້ອນເຖິງຕົວລະຄອນທີ່ຕັ້ງຢູ່ໃນການນໍາໃຊ້, ເຖິງແມ່ນວ່າມັນເປັນຊຸດຕົວອັກສອນດຽວ,
ເວັ້ນເສຍແຕ່ວ່າພຽງແຕ່ຊຸດຍ່ອຍ 7-bit (ASCII) ຖືກນໍາໃຊ້. ຕົວຢ່າງ, ຖ້າຊຸດຕົວອັກສອນແມ່ນ
ISO-8859-1, ຄ່າທີ່ເຫມາະສົມອາດຈະເປັນ en_US.iso88591 (ບາງການແຈກຢາຍ Linux)
or en_US.ISO8859-1 (MacOS)
LC_MESSAGES
ຕົວແປນີ້ກໍານົດພາສາທີ່ຂໍ້ຄວາມຄວນຖືກຂຽນ. ຫມາຍເຫດ
ວ່າ zsh ບໍ່ໄດ້ໃຊ້ລາຍການຂໍ້ຄວາມ.
LC_NUMERIC
ຕົວແປນີ້ມີຜົນຕໍ່ກັບລັກສະນະຈຸດທົດສະນິຍົມ ແລະຕົວອັກສອນຕົວແຍກຫຼາຍພັນຕົວ
ສໍາລັບການຈັດຮູບແບບການປ້ອນຂໍ້ມູນ / ຜົນຜະລິດຫນ້າທີ່ແລະຫນ້າທີ່ການປ່ຽນແປງສະຕຣິງ. ຫມາຍເຫດ
ທີ່ zsh ບໍ່ສົນໃຈການຕັ້ງຄ່ານີ້ເມື່ອວິເຄາະການສະແດງອອກທາງຄະນິດສາດຂອງຈຸດລອຍ.
LC_TIME
ຕົວແປນີ້ກຳນົດປະເພດທ້ອງຖິ່ນສຳລັບການຈັດຮູບແບບວັນທີ ແລະເວລາໃນທັນທີ
ລໍາດັບຫນີ.
ເສັ້ນ
ຈຳນວນສາຍສຳລັບເຊດຊັນ terminal ນີ້. ໃຊ້ສໍາລັບການພິມລາຍການເລືອກແລະ
ສໍາລັບບັນນາທິການເສັ້ນ.
LISTMAX
ໃນຕົວແກ້ໄຂເສັ້ນ, ຈໍານວນທີ່ກົງກັນກັບລາຍຊື່ໂດຍບໍ່ຕ້ອງຖາມກ່ອນ. ຖ້າ
ມູນຄ່າແມ່ນເປັນລົບ, ບັນຊີລາຍຊື່ຈະສະແດງໃຫ້ເຫັນຖ້າຫາກວ່າມັນ spans ຫຼາຍທີ່ສຸດເປັນຫຼາຍເສັ້ນ
ມອບໃຫ້ໂດຍມູນຄ່າຢ່າງແທ້ຈິງ. ຖ້າຕັ້ງເປັນສູນ, ແກະຈະຖາມພຽງແຕ່ຖ້າທາງເທິງຂອງ
ລາຍການຈະເລື່ອນອອກໄປຈາກໜ້າຈໍ.
ກວດເຊັກ
ໄລຍະຫ່າງໃນວິນາທີລະຫວ່າງການກວດສອບສໍາລັບການເຂົ້າສູ່ລະບົບ / ອອກຈາກກິດຈະກໍາການນໍາໃຊ້ ສັງເກດເບິ່ງ
ພາລາມິເຕີ.
MAIL ຖ້າພາລາມິເຕີນີ້ຖືກຕັ້ງແລະ ທາງໄປສະນີ ບໍ່ໄດ້ຕັ້ງ, ແກະຊອກຫາເມລໃນ
ໄຟລ໌ທີ່ລະບຸ.
ເມລເຊັກ
ຊ່ວງເວລາເປັນວິນາທີລະຫວ່າງການກວດສອບຈົດໝາຍໃໝ່.
ທາງໄປສະນີ (MAILPATH )
array (ລາຍການທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຂອງຊື່ໄຟລ໌ເພື່ອກວດເບິ່ງຈົດໝາຍໃໝ່. ແຕ່ລະຊື່ໄຟລ໌
ສາມາດຕິດຕາມດ້ວຍ `?' ແລະຂໍ້ຄວາມທີ່ຈະຖືກພິມອອກ. ຂໍ້ຄວາມຈະ
undergo ການຂະຫຍາຍພາລາມິເຕີ, ການທົດແທນຄໍາສັ່ງແລະການຂະຫຍາຍເລກຄະນິດສາດກັບ
ຕົວແປ $_ ກໍານົດເປັນຊື່ຂອງໄຟລ໌ທີ່ມີການປ່ຽນແປງ. ຂໍ້ຄວາມເລີ່ມຕົ້ນ
ແມ່ນ `ທ່ານ ມີ ໃຫມ່ ອີເມວ'. ຖ້າອົງປະກອບເປັນໄດເລກະທໍລີແທນທີ່ຈະເປັນໄຟລ໌, shell
ຈະກວດຄືນທຸກໄຟລ໌ໃນທຸກໄດເລກະທໍລີຍ່ອຍຂອງອົງປະກອບ.
ທາງຍ່າງ (MANPATH )
ອາເຣ (ລາຍການທີ່ຂັ້ນດ້ວຍຈໍ້າສອງເມັດ) ທີ່ມີຄ່າທີ່ບໍ່ຖືກໃຊ້ໂດຍແກະ. ໄດ້ ທາງຍ່າງ
array ສາມາດເປັນປະໂຫຍດ, ຢ່າງໃດກໍຕາມ, ນັບຕັ້ງແຕ່ການຕັ້ງຄ່າມັນຍັງກໍານົດ MANPATH, ແລະໃນທາງກັບກັນ.
ການແຂ່ງຂັນ
ເລີ່ມຕົ້ນ
ແກ້ໄຂ Arrays ກໍານົດໂດຍ shell ໃນເວລາທີ່ b ທຸງ globbing ແມ່ນໃຊ້ໃນການຈັບຄູ່ຮູບແບບ. ເບິ່ງ
ພາກສ່ວນຍ່ອຍ ບານໂລກ ທົງ ໃນເອກະສານສໍາລັບການ filename ການຜະລິດ in
zshexpn(1).
MATCH
MBEGIN
ແກ້ໄຂ ກໍານົດໂດຍແກະໃນເວລາທີ່ m ທຸງ globbing ແມ່ນໃຊ້ໃນການຈັບຄູ່ຮູບແບບ. ເບິ່ງ
ພາກສ່ວນຍ່ອຍ ບານໂລກ ທົງ ໃນເອກະສານສໍາລັບການ filename ການຜະລິດ in
zshexpn(1).
module_path (MODULE_PATH )
array (ບັນຊີລາຍຊື່ທີ່ແຍກໂດຍຈໍ້າສອງເມັດ) ຂອງໄດເລກະທໍລີທີ່ zmodload ຄົ້ນຫາ
ໂມດູນທີ່ສາມາດໂຫຼດໄດ້ແບບໄດນາມິກ. ນີ້ແມ່ນເລີ່ມຕົ້ນເປັນຊື່ເສັ້ນທາງມາດຕະຖານ, ໂດຍປົກກະຕິ
`/usr/local/lib/zsh/$ZSH_VERSION'. (ໄດ້`/ usr / local / lib' ສ່ວນແຕກຕ່າງກັນຈາກ
installation to installation.) ສໍາລັບເຫດຜົນດ້ານຄວາມປອດໄພ, ຄ່າໃດໆທີ່ກໍານົດໄວ້ໃນ
ສະພາບແວດລ້ອມເມື່ອແກະເລີ່ມຕົ້ນຈະຖືກລະເລີຍ.
ພາລາມິເຕີເຫຼົ່ານີ້ມີພຽງແຕ່ຖ້າການຕິດຕັ້ງສະຫນັບສະຫນູນການໂຫຼດໂມດູນແບບເຄື່ອນໄຫວ.
NULLCMD
ຊື່ຄໍາສັ່ງທີ່ຈະສົມມຸດວ່າການປ່ຽນເສັ້ນທາງຖືກລະບຸໂດຍບໍ່ມີຄໍາສັ່ງ. ຄ່າເລີ່ມຕົ້ນ
to catທີ່ຢູ່ ສໍາລັບ sh/ksh ພຶດຕິກໍາ, ການປ່ຽນແປງນີ້ :ທີ່ຢູ່ ສໍາລັບ cshພຶດຕິກໍາຄ້າຍຄື, ຍົກເລີກການຕັ້ງຄ່ານີ້
ພາລາມິເຕີ; shell ຈະພິມຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຖ້າຄໍາສັ່ງ null ຖືກໃສ່.
ເສັ້ນທາງ (PATH )
array (ບັນຊີລາຍຊື່ທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຂອງໄດເລກະທໍລີເພື່ອຄົ້ນຫາຄໍາສັ່ງ. ເມື່ອນີ້
ພາລາມິເຕີຖືກຕັ້ງ, ແຕ່ລະໄດເລກະທໍລີຖືກສະແກນແລະໄຟລ໌ທັງຫມົດທີ່ພົບເຫັນແມ່ນຖືກຈັດໃສ່ໃນ hash
ຕາຕະລາງ.
ປະກາດ
ສະຕຣິງນີ້ແມ່ນຜົນອອກທຸກຄັ້ງທີ່ຕົວແກ້ໄຂເສັ້ນອອກ. ມັນມັກຈະປະກອບດ້ວຍ termcap
ສະຕຣິງເພື່ອຣີເຊັດ terminal.
ສົ່ງເສີມ
ແຈ້ງເຕືອນ2
ແຈ້ງເຕືອນ3
ແຈ້ງເຕືອນ4
ຄືກັນກັບ PS1, PS2, PS3 ແລະ PS4, ຕາມລໍາດັບ.
ການກະຕຸ້ນເຕືອນ
ຄືກັນກັບ PS1.
PROMPT_EOL_MARK
ໃນເວລາທີ່ PROMPT_CR ແລະ PROMPT_SP ທາງເລືອກທີ່ກໍານົດໄວ້, ໄດ້ PROMPT_EOL_MARK ພາລາມິເຕີສາມາດ
ຖືກນໍາໃຊ້ເພື່ອປັບແຕ່ງວິທີການສິ້ນສຸດຂອງເສັ້ນບາງສ່ວນຖືກສະແດງ. ພາລາມິເຕີນີ້
undergoes ການຂະຫຍາຍຕົວໄວ, ມີ PROMPT_PERCENT ຕັ້ງທາງເລືອກ. ຖ້າບໍ່ໄດ້ກໍານົດ, ໄດ້
ພຶດຕິກໍາເລີ່ມຕົ້ນແມ່ນເທົ່າກັບຄ່າ `%B%S%#%s%b'.
PS1
ສະຕຣິງ prompt ຕົ້ນຕໍ, ພິມອອກກ່ອນທີ່ຄໍາສັ່ງຈະຖືກອ່ານ. ມັນ undergoes a
ຮູບແບບພິເສດຂອງການຂະຫຍາຍຕົວກ່ອນທີ່ຈະສະແດງ; ເບິ່ງການຂະຫຍາຍຂອງລໍາດັບການເຕືອນ
in zshmisc(1). ຄ່າເລີ່ມຕົ້ນແມ່ນ `%m%# '.
PS2
ການເຕືອນຂັ້ນສອງ, ພິມອອກເມື່ອແກະຕ້ອງການຂໍ້ມູນເພີ່ມເຕີມເພື່ອເຮັດສໍາເລັດ a
ຄໍາສັ່ງ. ມັນໄດ້ຖືກຂະຫຍາຍອອກໃນລັກສະນະດຽວກັນກັບ PS1. ຄ່າເລີ່ມຕົ້ນແມ່ນ `%_> ', ທີ່
ສະແດງໂຄງສ້າງແກະ ຫຼືເຄື່ອງໝາຍວົງຢືມທີ່ກຳລັງເປັນຢູ່
ການປຸງແຕ່ງ.
PS3
ການກະຕຸ້ນການເລືອກທີ່ໃຊ້ພາຍໃນ a ເລືອກ ວົງ. ມັນໄດ້ຖືກຂະຫຍາຍອອກໃນລັກສະນະດຽວກັນກັບ PS1.
ຄ່າເລີ່ມຕົ້ນແມ່ນ `?# '.
PS4
ການຕິດຕາມການປະຕິບັດການກະຕຸ້ນເຕືອນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ `+%N:%i> ', ເຊິ່ງສະແດງຊື່ຂອງ
ໂຄງສ້າງຂອງຫອຍປະຈຸບັນ ແລະເລກແຖວພາຍໃນມັນ. ໃນ sh ຫຼື ksh emulation, the
ຄ່າເລີ່ມຕົ້ນແມ່ນ `+ '.
psvar (PSVAR )
array (ລາຍການທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ອົງປະກອບທີ່ສາມາດໃຊ້ໃນ ສົ່ງເສີມ ເຊືອກ.
ການຕັ້ງຄ່າ psvar ຍັງກໍານົດ PSVAR, ແລະໃນທາງກັບກັນ.
READNULLCMD
ຊື່ຄໍາສັ່ງທີ່ຈະສົມມຸດວ່າການປ່ຽນເສັ້ນທາງການປ້ອນຂໍ້ມູນດຽວຖືກລະບຸດ້ວຍ no
ຄໍາສັ່ງ. ຄ່າເລີ່ມຕົ້ນເປັນ ເພີ່ມເຕີມ.
ລາຍງານເວລາ
ຖ້າບໍ່ເປັນລົບ, ຄໍາສັ່ງທີ່ມີຜູ້ໃຊ້ລວມແລະເວລາປະຕິບັດລະບົບ (ວັດແທກ
ໃນວິນາທີ) ຫຼາຍກວ່າຄ່ານີ້ມີສະຖິຕິເວລາພິມສໍາລັບພວກເຂົາ.
ຜົນຜະລິດຖືກສະກັດກັ້ນສໍາລັບຄໍາສັ່ງທີ່ປະຕິບັດພາຍໃນບັນນາທິການເສັ້ນ, ລວມທັງ
ສໍາເລັດ; ຄໍາສັ່ງຖືກຫມາຍຢ່າງຊັດເຈນດ້ວຍ ທີ່ໃຊ້ເວລາ ຄໍາສໍາຄັນຍັງເຮັດໃຫ້ເກີດ
ບົດສະຫຼຸບທີ່ຈະພິມໃນກໍລະນີນີ້.
REPLY ພາລາມິເຕີນີ້ຖືກສະຫງວນໂດຍສົນທິສັນຍາເພື່ອຜ່ານຄ່າສະຕຣິງລະຫວ່າງແກະ
scripts ແລະ shell buildins ໃນສະຖານະການທີ່ມີການໂທຫາຟັງຊັນຫຼືການປ່ຽນເສັ້ນທາງ
ເປັນໄປບໍ່ໄດ້ຫຼືບໍ່ຕ້ອງການ. ໄດ້ ອ່ານ buildin ແລະ ເລືອກ ຄໍາສັ່ງສະລັບສັບຊ້ອນອາດຈະກໍານົດ
REPLY, ແລະການສ້າງຊື່ໄຟລ໌ທັງສອງກໍານົດແລະກວດເບິ່ງມູນຄ່າຂອງມັນໃນເວລາທີ່ປະເມີນ
ການສະແດງອອກທີ່ແນ່ນອນ. ບາງໂມດູນຍັງໃຊ້ REPLY ສໍາລັບຈຸດປະສົງທີ່ຄ້າຍຄືກັນ.
Reply As REPLY, ແຕ່ສໍາລັບຄ່າ array ແທນທີ່ຈະເປັນ strings.
ເຕືອນ
RPS1
ການເຕືອນນີ້ຈະຖືກສະແດງຢູ່ເບື້ອງຂວາມືຂອງຫນ້າຈໍໃນເວລາທີ່ປະຖົມ
ການເຕືອນຈະຖືກສະແດງຢູ່ເບື້ອງຊ້າຍ. ນີ້ບໍ່ໄດ້ຜົນຖ້າຫາກວ່າ SINGLE_LINE_ZLE
ທາງເລືອກໄດ້ຖືກຕັ້ງໄວ້. ມັນໄດ້ຖືກຂະຫຍາຍອອກໃນລັກສະນະດຽວກັນກັບ PS1.
RPROMPT2
RPS2
ການເຕືອນນີ້ຈະຖືກສະແດງຢູ່ເບື້ອງຂວາມືຂອງຫນ້າຈໍໃນເວລາທີ່ຮອງ
ການເຕືອນຈະຖືກສະແດງຢູ່ເບື້ອງຊ້າຍ. ນີ້ບໍ່ໄດ້ຜົນຖ້າຫາກວ່າ SINGLE_LINE_ZLE
ທາງເລືອກໄດ້ຖືກຕັ້ງໄວ້. ມັນໄດ້ຖືກຂະຫຍາຍອອກໃນລັກສະນະດຽວກັນກັບ PS2.
SAVEHIST
ຈຳນວນສູງສຸດຂອງເຫດການປະຫວັດສາດທີ່ຈະບັນທຶກໃນໄຟລ໌ປະຫວັດສາດ.
ຖ້າອັນນີ້ຖືກຕັ້ງຢູ່ໃນທ້ອງຖິ່ນ, ມັນບໍ່ໄດ້ຖືກຕັ້ງເປັນ 0, ແຕ່ອາດຈະຖືກຕັ້ງຢ່າງຈະແຈ້ງ
ຢູ່ໃນທ້ອງຖິ່ນ.
ກະຕຸ້ນ
ການເຕືອນທີ່ໃຊ້ສໍາລັບການແກ້ໄຂການສະກົດຄໍາ. ລຳດັບ`%R' ຂະຫຍາຍໄປຫາສະຕຣິງ
ເຊິ່ງສົມມຸດວ່າຕ້ອງການການແກ້ໄຂການສະກົດຄໍາ, ແລະ `%r' ຂະຫຍາຍໄປສູ່ການສະເຫນີ
ການແກ້ໄຂ. ການຫລົບຫນີທັນທີອື່ນໆທັງຫມົດແມ່ນຍັງອະນຸຍາດໃຫ້.
STTY ຖ້າພາລາມິເຕີນີ້ຖືກຕັ້ງຢູ່ໃນສະພາບແວດລ້ອມຂອງຄໍາສັ່ງ, ແກະຈະດໍາເນີນການ stty
ຄໍາສັ່ງທີ່ມີຄ່າຂອງພາລາມິເຕີນີ້ເປັນ arguments ເພື່ອຕັ້ງຄ່າ
terminal ກ່ອນທີ່ຈະປະຕິບັດຄໍາສັ່ງ. ໂຫມດນໍາໃຊ້ພຽງແຕ່ຄໍາສັ່ງ, ແລະແມ່ນ
ຣີເຊັດເມື່ອມັນສຳເລັດ ຫຼືຖືກລະງັບໄວ້. ຖ້າຄໍາສັ່ງຖືກໂຈະແລະສືບຕໍ່
ຕໍ່ມາກັບ fg or ລໍຖ້າ buildins ມັນຈະເຫັນໂຫມດທີ່ລະບຸໄວ້ໂດຍ STTY, ປານວ່າ
ມັນບໍ່ໄດ້ຖືກໂຈະ. ນີ້ (ຕັ້ງໃຈ) ບໍ່ໄດ້ນໍາໃຊ້ຖ້າຫາກວ່າຄໍາສັ່ງແມ່ນ
ສືບຕໍ່ຜ່ານ `ຂ້າ -CONT'. STTY ຖືກລະເລີຍຖ້າຄໍາສັ່ງຖືກດໍາເນີນການຢູ່ໃນ
ພື້ນຫລັງ, ຫຼືຖ້າມັນຢູ່ໃນສະພາບແວດລ້ອມຂອງແກະແຕ່ບໍ່ໄດ້ມອບຫມາຍຢ່າງຊັດເຈນ
ຢູ່ໃນເສັ້ນປ້ອນຂໍ້ມູນ. ນີ້ຫຼີກເວັ້ນການແລ່ນ stty ຢູ່ທຸກຄໍາສັ່ງພາຍນອກໂດຍ
ບັງເອີນສົ່ງອອກມັນ. ໃຫ້ສັງເກດວ່າ STTY ບໍ່ຄວນໃຊ້ສໍາລັບຂະຫນາດປ່ອງຢ້ຽມ
ສະເພາະ; ເຫຼົ່ານີ້ຈະບໍ່ຢູ່ໃນທ້ອງຖິ່ນຂອງຄໍາສັ່ງ.
TERM
ປະເພດຂອງ terminal ໃນການນໍາໃຊ້. ອັນນີ້ຖືກນໍາໃຊ້ໃນເວລາທີ່ຊອກຫາລໍາດັບ termcap. ອັນ
ການມອບຫມາຍໃຫ້ TERM ເຮັດໃຫ້ zsh ເລີ່ມຕົ້ນໃຫມ່ terminal, ເຖິງແມ່ນວ່າຄ່າບໍ່
ບໍ່ປ່ຽນແປງ (ເຊັ່ນ: `TERM=$TERM'). ມັນ ຈຳ ເປັນທີ່ຈະເຮັດການມອບ ໝາຍ ດັ່ງກ່າວ
ການປ່ຽນແປງໃດໆກັບຖານຂໍ້ມູນຄໍານິຍາມ terminal ຫຼືປະເພດ terminal ໃນຄໍາສັ່ງສໍາລັບການ
ການຕັ້ງຄ່າໃໝ່ມີຜົນບັງຄັບໃຊ້.
TERMINFO
ການອ້າງອິງເຖິງຄຳອະທິບາຍທີ່ລວບລວມຂອງເຄື່ອງໝາຍປາຍທາງ, ນຳໃຊ້ໂດຍ 'terminfo'
ຫ້ອງສະຫມຸດໃນເວລາທີ່ລະບົບມີມັນ; ເບິ່ງ ຂໍ້ມູນ(5). ຖ້າຕັ້ງໄວ້, ອັນນີ້ເຮັດໃຫ້ແກະໄດ້
reinitialise terminal, ເຮັດໃຫ້ການແກ້ໄຂ `TERM=$TERM' ບໍ່ຈໍາເປັນ.
TIMEFMT
ຮູບແບບຂອງບົດລາຍງານທີ່ໃຊ້ເວລາຂະບວນການກັບ ທີ່ໃຊ້ເວລາ ຄໍາສໍາຄັນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ `%J %U
ຜູ້ໃຊ້ %S ລະບົບ %P cpu %*E ຈໍານວນທັງຫມົດ'. ຮັບຮູ້ລໍາດັບການຫລົບຫນີຕໍ່ໄປນີ້,
ເຖິງແມ່ນວ່າບໍ່ແມ່ນທັງຫມົດອາດຈະມີຢູ່ໃນທຸກລະບົບ, ແລະບາງອັນທີ່ມີຢູ່ອາດຈະ
ບໍ່ເປັນປະໂຫຍດ:
%% A`%'.
%U ວິນາທີ CPU ໃຊ້ໃນໂຫມດຜູ້ໃຊ້.
%S ວິນາທີ CPU ໃຊ້ໃນໂຫມດ kernel.
%E ເວລາຜ່ານໄປເປັນວິນາທີ.
%P ເປີເຊັນຂອງ CPU, ຄິດໄລ່ເປັນ 100*(%U+%S)/%E.
%W ຈໍານວນຄັ້ງທີ່ຂະບວນການໄດ້ຖືກສັບຊ້ອນ.
%X ຈຳນວນສະເລ່ຍໃນ (ແບ່ງປັນ) ພື້ນທີ່ຂໍ້ຄວາມທີ່ໃຊ້ເປັນກິໂລໄບ.
%D ຈໍານວນສະເລ່ຍໃນ (ບໍ່ໄດ້ແບ່ງປັນ) ຂໍ້ມູນ/ພື້ນທີ່ stack ໃຊ້ເປັນກິໂລໄບ.
%K ພື້ນທີ່ທັງໝົດທີ່ໃຊ້ (%X+%D) ເປັນກິໂລໄບ.
%M ຫນ່ວຍຄວາມຈໍາສູງສຸດທີ່ຂະບວນການມີຢູ່ໃນເວລາໃດກໍ່ຕາມໃນ megabytes.
%F ຈໍານວນຂອງຄວາມຜິດພາດຫນ້າທີ່ສໍາຄັນ (ຫນ້າຈໍາເປັນຕ້ອງໄດ້ຮັບການນໍາເອົາຈາກແຜ່ນ).
%R ຈໍານວນຂໍ້ຜິດພາດຂອງຫນ້າເລັກນ້ອຍ.
%I ຈໍານວນຂອງການປະຕິບັດການປ້ອນຂໍ້ມູນ.
%O ຈໍານວນຂອງການດໍາເນີນງານຜົນຜະລິດ.
%r ຈໍານວນຂໍ້ຄວາມ socket ທີ່ໄດ້ຮັບ.
%s ຈໍານວນຂໍ້ຄວາມ socket ທີ່ສົ່ງ.
%k ຈໍານວນສັນຍານທີ່ໄດ້ຮັບ.
%w ຈຳນວນສະຫຼັບບໍລິບົດແບບສະໝັກໃຈ (ລໍຖ້າ).
%c ຈຳນວນສະຫຼັບບໍລິບົດທີ່ບໍ່ສະໝັກໃຈ.
%J ຊື່ຂອງວຽກນີ້.
ດາວອາດຈະຖືກໃສ່ລະຫວ່າງເຄື່ອງຫມາຍເປີເຊັນແລະເວລາພິມທຸງ. ນີ້
ເຮັດໃຫ້ເວລາທີ່ຈະພິມໃນ `hh:mm:ss.ttt' ຮູບແບບ (ຊົ່ວໂມງແລະນາທີເທົ່ານັ້ນ
ພິມອອກຖ້າພວກມັນບໍ່ແມ່ນສູນ).
TMOUT ຖ້າພາລາມິເຕີນີ້ແມ່ນບໍ່ມີສູນ, shell ຈະໄດ້ຮັບ an ປຸກ ສັນຍານຖ້າຫາກວ່າຄໍາສັ່ງແມ່ນ
ບໍ່ໄດ້ເຂົ້າໄປໃນຈໍານວນທີ່ກໍານົດຂອງວິນາທີຫຼັງຈາກອອກ prompt. ຖ້າມີ
ແມ່ນໃສ່ກັບດັກ SIGALRM, ມັນຈະຖືກປະຕິບັດແລະປຸກໃຫມ່ຖືກກໍານົດໂດຍໃຊ້
ມູນຄ່າຂອງ TMOUT ພາລາມິເຕີຫຼັງຈາກປະຕິບັດຈັ່ນຈັບ. ຖ້າບໍ່ມີຈັ່ນຈັບໄດ້ຖືກກໍານົດ, ແລະ
ເວລາຫວ່າງຂອງ terminal ແມ່ນບໍ່ຫນ້ອຍກວ່າມູນຄ່າຂອງ TMOUT ພາລາມິເຕີ, zsh
ຢຸດຕິ. ຖ້າບໍ່ດັ່ງນັ້ນ, ສັນຍານເຕືອນໃຫມ່ແມ່ນຖືກກໍານົດໃຫ້ TMOUT ວິນາທີຫຼັງຈາກສຸດທ້າຍ
ກົດປຸ່ມ.
TMPPREFIX
ຄຳນຳໜ້າຊື່ເສັ້ນທາງທີ່ shell ຈະໃຊ້ສຳລັບໄຟລ໌ຊົ່ວຄາວທັງໝົດ. ໃຫ້ສັງເກດວ່ານີ້
ຄວນປະກອບມີສ່ວນເບື້ອງຕົ້ນສໍາລັບຊື່ໄຟລ໌ເຊັ່ນດຽວກັນກັບຊື່ໄດເລກະທໍລີໃດໆ.
ຄ່າເລີ່ມຕົ້ນແມ່ນ `/tmp/zsh'.
ສັງເກດເບິ່ງ (WATCH )
ອາເຣ (ລາຍການທີ່ແຍກກັນໂດຍຈໍ້າສອງເມັດ) ຂອງເຫດການເຂົ້າສູ່ລະບົບ/ອອກຈາກລະບົບເພື່ອລາຍງານ.
ຖ້າມັນມີຄໍາດຽວ `ທັງຫມົດ', ຫຼັງຈາກນັ້ນ, ເຫດການເຂົ້າສູ່ລະບົບ / ອອກຈາກລະບົບທັງຫມົດຖືກລາຍງານ.
ຖ້າມັນມີຄໍາດຽວ `ບໍ່ແມ່ນຂ້ອຍ', ຫຼັງຈາກນັ້ນ, ເຫດການທັງຫມົດໄດ້ຖືກລາຍງານຄືກັນກັບ `ທັງຫມົດ'
ຍົກເວັ້ນ $USERNAME.
ບັນຊີລາຍການນີ້ອາດຈະປະກອບດ້ວຍຊື່ຜູ້ໃຊ້, ເປັນ `@' ຕາມດ້ວຍຣີໂໝດ
hostname, ແລະ a `%' ຕາມດ້ວຍເສັ້ນ (tty). ອັນໃດອັນໜຶ່ງອັນນີ້ອາດຈະເປັນຮູບແບບ (ເປັນ
ໃຫ້ແນ່ໃຈວ່າຈະອ້າງເຖິງນີ້ໃນລະຫວ່າງການມອບຫມາຍໃຫ້ ສັງເກດເບິ່ງ ດັ່ງນັ້ນມັນບໍ່ທັນທີທັນໃດ
ດໍາເນີນການຜະລິດໄຟລ໌); ການຕັ້ງຄ່າຂອງ EXTENDED_GLOB ທາງເລືອກແມ່ນເຄົາລົບ.
ອົງປະກອບໃດໆ ຫຼືທັງໝົດເຫຼົ່ານີ້ອາດມີຢູ່ໃນລາຍການ; ຖ້າຫາກວ່າເຫດການເຂົ້າສູ່ລະບົບ / ອອກຈາກລະບົບ
ກົງກັບພວກເຂົາທັງຫມົດ, ມັນໄດ້ຖືກລາຍງານ.
ສໍາລັບຕົວຢ່າງ, ກັບ EXTENDED_GLOB ທາງເລືອກທີ່ກໍານົດໄວ້, ດັ່ງຕໍ່ໄປນີ້:
watch=('^(pws|barts)')
ເຮັດໃຫ້ເກີດລາຍງານກິດຈະກໍາທີ່ກ່ຽວຂ້ອງກັບຜູ້ໃຊ້ອື່ນນອກຈາກ ປໍ້າ or barts.
WatchFMT
ຮູບແບບການເຂົ້າສູ່ລະບົບ/ອອກຈາກລະບົບລາຍງານຖ້າຫາກວ່າ ສັງເກດເບິ່ງ ພາລາມິເຕີຖືກກໍານົດ. ຄ່າເລີ່ມຕົ້ນແມ່ນ `%n
ມີ %a %l ຈາກ %m'. ຮັບຮູ້ລໍາດັບການຫລົບຫນີຕໍ່ໄປນີ້:
%n ຊື່ຂອງຜູ້ໃຊ້ທີ່ເຂົ້າສູ່ລະບົບ/ອອກ.
%a ການປະຕິບັດທີ່ສັງເກດເຫັນ, ເຊັ່ນ "ເຂົ້າສູ່ລະບົບ" ຫຼື "ອອກຈາກລະບົບ".
%l ເສັ້ນ (tty) ຜູ້ໃຊ້ເຂົ້າສູ່ລະບົບ.
%M ຊື່ໂຮສເຕັມຂອງໂຮສທາງໄກ.
%m ຊື່ເຈົ້າພາບຂຶ້ນກັບ `.'. ຖ້າມີພຽງແຕ່ທີ່ຢູ່ IP ທີ່ມີຢູ່ຫຼື
ພາກສະຫນາມ utmp ມີຊື່ຂອງການສະແດງ X-windows, ຊື່ທັງຫມົດແມ່ນ
ພິມອອກ.
ຫມາຍເຫດ: ໄດ້ "%m' ແລະ `%M' escapes ຈະເຮັດວຽກພຽງແຕ່ຖ້າມີຊ່ອງຊື່ເຈົ້າພາບ
ໃນ utmp ໃນເຄື່ອງຂອງທ່ານ. ຖ້າບໍ່ດັ່ງນັ້ນພວກເຂົາຖືກປະຕິບັດເປັນທໍາມະດາ
ເຊືອກ.
%S (%s)
ເລີ່ມ (ຢຸດ) ໂໝດໂດດເດັ່ນ.
%U (%u)
ເລີ່ມ (ຢຸດ) ຮູບແບບການຂີດກ້ອງ.
%B (%b)
ເລີ່ມ (ຢຸດ) ໂໝດ boldface.
%t
%@ ເວລາ, ໃນຮູບແບບ 12-hour, am/pm.
%T ເວລາ, ໃນຮູບແບບ 24 ຊົ່ວໂມງ.
%w ວັນທີໃນ `ວັນ-dd' ຮູບແບບ.
%W ວັນທີໃນ `mm/dd/yy' ຮູບແບບ.
%D ວັນທີໃນ `yy-mm-dd' ຮູບແບບ.
%D{string}
ວັນທີຈັດຮູບແບບເປັນ string ການນໍາໃຊ້ ເວລາຕໍ່ເວລາ function, ມີ zsh
ສ່ວນຂະຫຍາຍຕາມທີ່ໄດ້ອະທິບາຍໄວ້ໂດຍການຂະຫຍາຍຂອງລໍາດັບການເຕືອນໃນ zshmisc(1).
%(x:ຂໍ້ຄວາມທີ່ແທ້ຈິງ:ຂໍ້ຄວາມທີ່ບໍ່ຖືກຕ້ອງ)
ລະບຸການສະແດງອອກ ternary. ລັກສະນະດັ່ງຕໍ່ໄປນີ້ x ແມ່ນ arbitrary;
ຕົວອັກສອນດຽວກັນຖືກນໍາໃຊ້ເພື່ອແຍກຂໍ້ຄວາມສໍາລັບຜົນໄດ້ຮັບ "ຄວາມຈິງ" ຈາກ
ວ່າສໍາລັບ "ບໍ່ຖືກຕ້ອງ". ທັງຕົວແຍກ ແລະວົງເລັບຂວາ
ອາດຈະຖືກຫລົບຫນີດ້ວຍ backslash. ການສະແດງອອກຂອງ Ternary ອາດຈະຖືກວາງໄວ້.
ລັກສະນະການທົດສອບ x ອາດຈະເປັນອັນໃດນຶ່ງຂອງ `l' , `n' , `m' ຫຼື `M', ເຊິ່ງຊີ້ໃຫ້ເຫັນ
ຜົນໄດ້ຮັບ 'ຄວາມຈິງ' ຖ້າລໍາດັບການຫລົບຫນີທີ່ສອດຄ້ອງກັນຈະສົ່ງຄືນ a
ມູນຄ່າທີ່ບໍ່ແມ່ນຫວ່າງເປົ່າ; ຫຼືມັນອາດຈະເປັນ `a', ເຊິ່ງຊີ້ໃຫ້ເຫັນຜົນໄດ້ຮັບ 'ຄວາມຈິງ' ຖ້າ
ຜູ້ໃຊ້ທີ່ເບິ່ງໄດ້ເຂົ້າສູ່ລະບົບ, ຫຼື 'ຜິດ' ຖ້າລາວອອກຈາກລະບົບ. ອື່ນໆ
ຕົວອັກສອນປະເມີນວ່າບໍ່ແມ່ນຄວາມຈິງຫຼືບໍ່ຖືກຕ້ອງ; ການສະແດງອອກທັງຫມົດແມ່ນ
ຍົກເວັ້ນໃນກໍລະນີນີ້.
ຖ້າຜົນໄດ້ຮັບແມ່ນ 'ຄວາມຈິງ', ຫຼັງຈາກນັ້ນ ຂໍ້ຄວາມທີ່ແທ້ຈິງ ຖືກຈັດຮູບແບບອີງຕາມການ
ກົດລະບຽບຂ້າງເທິງແລະພິມ, ແລະ ຂໍ້ຄວາມທີ່ບໍ່ຖືກຕ້ອງ ຖືກຂ້າມ. ຖ້າ 'ຜິດ', the
ຂໍ້ຄວາມທີ່ແທ້ຈິງ ແມ່ນຂ້າມແລະ ຂໍ້ຄວາມທີ່ບໍ່ຖືກຕ້ອງ ຖືກຈັດຮູບແບບແລະພິມ. ບໍ່ວ່າຈະ
ທັງສອງສາຂາອາດຈະຫວ່າງເປົ່າ, ແຕ່ທັງສອງແຍກຈະຕ້ອງຢູ່ໃນ
ກໍລະນີໃດກໍ່ຕາມ.
ຄຳສັບ
ບັນຊີລາຍຊື່ຂອງຕົວອັກສອນທີ່ບໍ່ແມ່ນຕົວເລກທີ່ເປັນຕົວເລກທີ່ຖືວ່າເປັນສ່ວນໜຶ່ງຂອງຄຳສັບໂດຍຕົວແກ້ໄຂແຖວ.
ZBEEP ຖ້າຕັ້ງ, ນີ້ຈະໃຫ້ສະຕຣິງຂອງຕົວອັກສອນ, ເຊິ່ງສາມາດນໍາໃຊ້ລະຫັດດຽວກັນທັງຫມົດ
bindkey ຄໍາສັ່ງດັ່ງທີ່ອະທິບາຍໃນການເຂົ້າໂມດູນ zsh/zle ໃນ zshmodules(1), ວ່າ
ຈະຖືກສົ່ງອອກໄປຫາ terminal ແທນທີ່ຈະເປັນ beeping. ອັນນີ້ອາດຈະເຫັນໄດ້ແທນ
ຂອງຜົນກະທົບທີ່ໄດ້ຍິນ; ຕົວຢ່າງ, string `\e[?5h\e[?5l'ຢູ່ໃນ vt100 ຫຼື xterm
ຈະມີຜົນກະທົບຂອງການກະພິບວິດີໂອ reverse ເປີດແລະປິດ (ຖ້າຫາກວ່າທ່ານປົກກະຕິແລ້ວການນໍາໃຊ້
ວິດີໂອປີ້ນກັບກັນ, ທ່ານຄວນໃຊ້ string `\e[?5l\e[?5ຊມ'ແທນ). ນີ້ໃຊ້ເວລາ
ເໜືອກວ່າ NOBEEP ທາງເລືອກ.
ZDOTDIR
ໄດເລກະທໍລີທີ່ຈະຄົ້ນຫາໄຟລ໌ shell startup (.zshrc, ແລະອື່ນໆ), ຖ້າບໍ່ແມ່ນ $ ບ້ານ.
zle_bracketed_paste
emulators terminal ຫຼາຍມີຄຸນນະສົມບັດທີ່ອະນຸຍາດໃຫ້ຄໍາຮ້ອງສະຫມັກທີ່ຈະກໍານົດເວລາ
ຂໍ້ຄວາມຖືກວາງລົງໃສ່ເຄື່ອງໃຊ້ແທນທີ່ຈະຖືກພິມຕາມປົກກະຕິ. ສໍາລັບ ZLE, ນີ້
ຫມາຍຄວາມວ່າຕົວອັກສອນພິເສດເຊັ່ນແຖບແລະແຖວໃຫມ່ສາມາດຖືກໃສ່ແທນ
ການເອີ້ນຄໍາສັ່ງບັນນາທິການ. ນອກຈາກນັ້ນ, ຂໍ້ຄວາມທີ່ວາງລົງກໍ່ເປັນເຫດການທີ່ບໍ່ໄດ້ເຮັດອັນດຽວ ແລະ
ຖ້າພາກພື້ນມີການເຄື່ອນໄຫວ, ຂໍ້ຄວາມທີ່ວາງໄວ້ຈະແທນທີ່ພາກພື້ນ.
array ສອງອົງປະກອບນີ້ປະກອບດ້ວຍລໍາດັບ escape terminal ສໍາລັບການເປີດແລະ
ປິດການໃຊ້ງານຄຸນສົມບັດ. ລໍາດັບການຫລົບຫນີເຫຼົ່ານີ້ຖືກນໍາໃຊ້ເພື່ອເປີດໃຊ້ການວາງວົງເລັບ
ເມື່ອ ZLE ເຄື່ອນໄຫວ ແລະປິດໃຊ້ງານມັນໃນເວລາອື່ນ. ການຍົກເລີກການຕັ້ງຄ່າຕົວກໍານົດການມີ
ຜົນກະທົບຂອງການຮັບປະກັນວ່າການວາງວົງເລັບຍັງປິດການໃຊ້ງານ.
zle_highlight
ອາເຣທີ່ອະທິບາຍບໍລິບົດທີ່ ZLE ຄວນເນັ້ນໃສ່ຂໍ້ຄວາມທີ່ປ້ອນເຂົ້າ. ເບິ່ງ
ລັກສະນະ ການເນັ້ນ in zshzle(1).
ZLE_LINE_ຍົກເລີກ
ພາລາມິເຕີນີ້ຖືກກໍານົດໂດຍຕົວແກ້ໄຂເສັ້ນເມື່ອມີຂໍ້ຜິດພາດເກີດຂື້ນ. ມັນປະກອບດ້ວຍ
ເສັ້ນທີ່ກໍາລັງຖືກແກ້ໄຂຢູ່ໃນຈຸດຂອງຄວາມຜິດພາດ. `ພິມ -zr --
$ZLE_LINE_ABORTED'ສາມາດຖືກນໍາໃຊ້ເພື່ອຟື້ນຕົວສາຍ. ພຽງແຕ່ສາຍຫລ້າສຸດຂອງ
ປະເພດນີ້ແມ່ນຈື່.
ZLE_REMOVE_SUFFIX_CHARS
ZLE_SPACE_SUFFIX_CHARS
ຕົວກໍານົດການເຫຼົ່ານີ້ຖືກນໍາໃຊ້ໂດຍບັນນາທິການເສັ້ນ. ໃນສະຖານະການສະເພາະໃດຫນຶ່ງ suffixes
(ໂດຍປົກກະຕິຊ່ອງ ຫຼື slash) ເພີ່ມໂດຍລະບົບການສໍາເລັດຈະຖືກລຶບອອກ
ອັດຕະໂນມັດ, ບໍ່ວ່າຈະເປັນຄໍາສັ່ງການແກ້ໄຂຕໍ່ໄປບໍ່ແມ່ນການແຊກ
ຕົວອັກສອນ, ຫຼືຍ້ອນວ່າຕົວອັກສອນຖືກໝາຍວ່າຕ້ອງການຄຳຕໍ່ທ້າຍ
ລົບອອກ.
ຕົວແປເຫຼົ່ານີ້ສາມາດບັນຈຸຊຸດຂອງຕົວອັກສອນທີ່ຈະເຮັດໃຫ້ເກີດການຕໍ່ທ້າຍ
ເອົາອອກ. ຖ້າ ZLE_REMOVE_SUFFIX_CHARS ຖືກກໍານົດ, ລັກສະນະເຫຼົ່ານັ້ນຈະເຮັດໃຫ້ເກີດການຕໍ່ທ້າຍ
ຈະຖືກໂຍກຍ້າຍ; ຖ້າ ZLE_SPACE_SUFFIX_CHARS ຖືກກໍານົດ, ລັກສະນະເຫຼົ່ານັ້ນຈະເຮັດໃຫ້ເກີດການ
suffix ທີ່ຈະເອົາອອກແລະທົດແທນໂດຍຊ່ອງ.
If ZLE_REMOVE_SUFFIX_CHARS ບໍ່ໄດ້ຕັ້ງ, ພຶດຕິກໍາເລີ່ມຕົ້ນແມ່ນເທົ່າກັບ:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
If ZLE_REMOVE_SUFFIX_CHARS ຖືກຕັ້ງແຕ່ຫວ່າງເປົ່າ, ບໍ່ມີຕົວລະຄອນໃດທີ່ມີພຶດຕິກໍານີ້.
ZLE_SPACE_SUFFIX_CHARS ມີຄວາມສຳຄັນກວ່າ, ດັ່ງນັ້ນສິ່ງຕໍ່ໄປນີ້:
ZLE_SPACE_SUFFIX_CHARS=$'&|'
ເຮັດໃຫ້ເກີດຕົວອັກສອນ `&' ແລະ `|'ເພື່ອເອົາຄຳຕໍ່ທ້າຍອອກ ແຕ່ແທນທີ່ດ້ວຍ a
space
ເພື່ອສະແດງໃຫ້ເຫັນຄວາມແຕກຕ່າງ, ສົມມຸດວ່າທາງເລືອກ AUTO_REMOVE_SLASH ແມ່ນຢູ່ໃນ
ຜົນກະທົບແລະລະບົບ DIR ໄດ້ຮັບການສໍາເລັດພຽງແຕ່, ມີການຕໍ່ທ້າຍ /, ປະຕິບັດຕາມ
ທີ່ຜູ້ໃຊ້ປະເພດ `&'. ຜົນໄດ້ຮັບເລີ່ມຕົ້ນແມ່ນ `DIR&'. ກັບ
ZLE_REMOVE_SUFFIX_CHARS ກໍານົດແຕ່ບໍ່ລວມເອົາ `&' ຜົນໄດ້ຮັບແມ່ນ 'DIR/&'. ກັບ
ZLE_SPACE_SUFFIX_CHARS ກໍານົດໃຫ້ປະກອບມີ `&' ຜົນໄດ້ຮັບແມ່ນ 'DIR &'.
ໃຫ້ສັງເກດວ່າການສໍາເລັດບາງຢ່າງອາດຈະສະຫນອງການໂຍກຍ້າຍອອກຫຼືການທົດແທນຂອງຕົນເອງ
ພຶດຕິກໍາທີ່ overrides ຄ່າທີ່ອະທິບາຍຢູ່ທີ່ນີ້. ເບິ່ງລະບົບການສໍາເລັດ
ເອກະສານໃນ zshcompsys(1).
ZLE_RPROMPT_INDENT
ຖ້າຕັ້ງ, ໃຊ້ເພື່ອໃຫ້ຫຍໍ້ຫນ້າລະຫວ່າງເບື້ອງຂວາຂອງເບື້ອງຂວາ
prompt ໃນບັນນາທິການເສັ້ນຕາມທີ່ໄດ້ຮັບໂດຍ RPS1 or ເຕືອນ ແລະເບື້ອງຂວາມືຂອງ
ຫນ້າຈໍ. ຖ້າບໍ່ໄດ້ຕັ້ງ, ຄ່າ 1 ຖືກໃຊ້.
ໂດຍປົກກະຕິແລ້ວ ອັນນີ້ຈະຖືກໃຊ້ເພື່ອກຳນົດຄ່າເປັນ 0 ເພື່ອໃຫ້ການເຕືອນປະກົດຂຶ້ນ
ກັບດ້ານຂວາມືຂອງຫນ້າຈໍ. ນີ້ບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນເທົ່າທີ່ຫຼາຍຈຸດ
ຢ່າຈັດການອັນນີ້ຢ່າງຖືກຕ້ອງ, ໂດຍສະເພາະໃນເວລາທີ່ການກະຕຸ້ນເຕືອນປາກົດຢູ່ໃນທີ່ສຸດ
ເບື້ອງຂວາລຸ່ມຂອງໜ້າຈໍ. terminals virtual ທີ່ຜ່ານມາມີແນວໂນ້ມທີ່ຈະຈັດການກັບ
ກໍລະນີນີ້ຢ່າງຖືກຕ້ອງ. ການທົດລອງບາງຢ່າງແມ່ນມີຄວາມຈໍາເປັນ.
ໃຊ້ zshparam ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net