ນີ້ແມ່ນຄໍາສັ່ງ waitposix ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ລໍຖ້າ - ລໍຖ້າຂະບວນການສໍາເລັດ
ສະຫຼຸບສັງລວມ
ລໍຖ້າ [pid...]
ລາຍລະອຽດ
ເມື່ອບັນຊີລາຍຊື່ asynchronous (ເບິ່ງ ສ່ວນ 2.9.3.1, ຕົວຢ່າງ) ແມ່ນເລີ່ມຕົ້ນໂດຍແກະ, ໄດ້
ID ຂະບວນການຂອງຄໍາສັ່ງສຸດທ້າຍໃນແຕ່ລະອົງປະກອບຂອງບັນຊີລາຍຊື່ asynchronous ຈະກາຍເປັນທີ່ຮູ້ຈັກ
ໃນສະພາບແວດລ້ອມການປະຕິບັດ shell ໃນປັດຈຸບັນ; ເບິ່ງ ສ່ວນ 2.12, Shell ການບໍລິຫານ ສະພາບແວດລ້ອມ.
ຖ້າ ລໍຖ້າ utility ແມ່ນ invoked ໂດຍບໍ່ມີການ operands, ມັນຈະລໍຖ້າຈົນກ່ວາ ID ຂະບວນການທັງຫມົດຮູ້ຈັກ
ໄປຫາ shell ການເອີ້ນໄດ້ຢຸດເຊົາແລະອອກດ້ວຍສະຖານະສູນອອກ.
ຖ້າຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ pid operands ຖືກລະບຸໄວ້ທີ່ເປັນຕົວແທນຂອງ ID ຂະບວນການທີ່ຮູ້ຈັກ, the ລໍຖ້າ
ຜົນປະໂຫຍດຈະຕ້ອງລໍຖ້າຈົນກ່ວາພວກມັນທັງຫມົດໄດ້ສິ້ນສຸດລົງ. ຖ້າຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ pid ໂຕປະຕິບັດການແມ່ນ
ລະບຸໄວ້ວ່າເປັນຕົວແທນຂອງ ID ຂະບວນການທີ່ບໍ່ຮູ້ຈັກ, ລໍຖ້າ ຈະປະຕິບັດຕໍ່ພວກເຂົາເປັນຖ້າຫາກວ່າພວກເຂົາເຈົ້າໄດ້ຮູ້ຈັກ
IDs ຂະບວນການທີ່ອອກໂດຍສະຖານະທາງອອກ 127. ສະຖານະທາງອອກທີ່ສົ່ງຄືນໂດຍ ລໍຖ້າ ຜົນປະໂຫຍດ
ຈະເປັນສະຖານະການອອກຂອງຂະບວນການທີ່ຮ້ອງຂໍໂດຍສຸດທ້າຍ pid ປະຕິບັດການ.
IDs ຂະບວນການທີ່ຮູ້ຈັກແມ່ນໃຊ້ໄດ້ສໍາລັບການຮຽກຮ້ອງຂອງ ລໍຖ້າ ໃນ shell ໃນປັດຈຸບັນ
ສະພາບແວດລ້ອມການປະຕິບັດ.
OPTIONS
ບໍ່ມີ.
ດໍາເນີນງານ
operand ຕໍ່ໄປນີ້ຈະໄດ້ຮັບການສະຫນັບສະຫນູນ:
pid ໜຶ່ງ ໃນສິ່ງຕໍ່ໄປນີ້:
1. ID ຂະບວນການເລກທົດສະນິຍົມ unsigned ຂອງຄໍາສັ່ງ, ສໍາລັບການຜົນປະໂຫຍດ
ແມ່ນເພື່ອລໍຖ້າການຢຸດເຊົາ.
2. ລະຫັດວຽກຄວບຄຸມວຽກ (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008,
ສ່ວນ 3.204, ວຽກເຮັດງານທໍາ ການຄວບຄຸມ ວຽກເຮັດງານທໍາ ID) ທີ່ກໍານົດຂະບວນການພື້ນຖານ
ກຸ່ມທີ່ຈະລໍຖ້າສໍາລັບການ. ໝາຍເຫດ ID ວຽກຄວບຄຸມວຽກແມ່ນໃຊ້ໄດ້ເທົ່ານັ້ນ
ສໍາລັບການຮຽກຮ້ອງຂອງ ລໍຖ້າ ໃນສະພາບແວດລ້ອມການປະຕິບັດ shell ໃນປັດຈຸບັນ; ເບິ່ງ
ສ່ວນ 2.12, Shell ການບໍລິຫານ ສະພາບແວດລ້ອມ. ສະຖານະພາບທາງອອກຂອງ ລໍຖ້າ ຈະເປັນ
ກໍານົດໂດຍຄໍາສັ່ງສຸດທ້າຍໃນທໍ່.
ຫມາຍເຫດ: ປະເພດ ID ວຽກຂອງການຄວບຄຸມວຽກ pid ສາມາດໃຊ້ໄດ້ໃນລະບົບເທົ່ານັ້ນ
ສະຫນັບສະຫນູນທາງເລືອກ User Portability Utilities.
STDIN
ບໍ່ໄດ້ນໍາໃຊ້.
ປັດໄຈນໍາເຂົ້າ ເອກະສານ
ບໍ່ມີ.
ENVIRONMENT ຄວາມຮັບຜິດຊອບ
ຕົວແປສະພາບແວດລ້ອມຕໍ່ໄປນີ້ຈະສົ່ງຜົນກະທົບຕໍ່ການປະຕິບັດ ລໍຖ້າ:
ພາສາ ໃຫ້ຄ່າເລີ່ມຕົ້ນສໍາລັບຕົວແປສາກົນທີ່ບໍ່ໄດ້ຕັ້ງ ຫຼື
null. (ເບິ່ງປະລິມານຄໍານິຍາມພື້ນຖານຂອງ POSIX.1-2008, ສ່ວນ 8.2,
Internationalization Variables ເພື່ອຄວາມກ້າວໜ້າຂອງການຫັນເປັນສາກົນ
ຕົວແປທີ່ໃຊ້ເພື່ອກໍານົດຄ່າຂອງປະເພດທ້ອງຖິ່ນ.)
LC_ALL ຖ້າຕັ້ງເປັນຄ່າສະຕຣິງທີ່ບໍ່ຫວ່າງເປົ່າ, ລົບລ້າງຄ່າຂອງອັນອື່ນທັງໝົດ
ຕົວແປສາກົນ.
LC_CTYPE ກໍານົດທ້ອງຖິ່ນສໍາລັບການຕີຄວາມລໍາດັບຂອງ bytes ຂອງຂໍ້ມູນຂໍ້ຄວາມ
ເປັນຕົວອັກສອນ (ຕົວຢ່າງ, single-byte ກົງກັນຂ້າມກັບ multi-byte ຕົວອັກສອນໃນ
ການໂຕ້ຖຽງ).
LC_MESSAGES
ກໍານົດທ້ອງຖິ່ນທີ່ຄວນຈະຖືກນໍາໃຊ້ເພື່ອຜົນກະທົບຕໍ່ຮູບແບບແລະເນື້ອໃນຂອງ
ຂໍ້ຄວາມການວິນິໄສທີ່ຂຽນເປັນຄວາມຜິດພາດມາດຕະຖານ.
NLSPATH ກໍານົດສະຖານທີ່ຂອງລາຍການຂໍ້ຄວາມສໍາລັບການປະມວນຜົນຂອງ LC_MESSAGES.
ASYNCHRONOUS ເຫດການ
ເລີ່ມຕົ້ນ.
STDOUT
ບໍ່ໄດ້ນໍາໃຊ້.
ສະດຸດ
ຄວາມຜິດພາດມາດຕະຖານຈະຖືກນໍາໃຊ້ສໍາລັບຂໍ້ຄວາມວິນິດໄສເທົ່ານັ້ນ.
OUTPUT ເອກະສານ
ບໍ່ມີ.
ອະທິບາຍ ລາຍລະອຽດ
ບໍ່ມີ.
ອອກ STATUS
ຖ້າຕົວປະຕິບັດການຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນຖືກກໍານົດ, ພວກມັນທັງຫມົດໄດ້ຢຸດເຊົາຫຼືບໍ່ຮູ້ຈັກໂດຍ
ແກະທີ່ຮຽກຮ້ອງ, ແລະສະຖານະພາບຂອງການປະຕິບັດສຸດທ້າຍທີ່ລະບຸໄວ້ແມ່ນເປັນທີ່ຮູ້ຈັກ, ຫຼັງຈາກນັ້ນການອອກ
ສະຖານະພາບຂອງ ລໍຖ້າ ຈະເປັນຂໍ້ມູນສະຖານະການອອກຂອງຄໍາສັ່ງທີ່ຊີ້ບອກໂດຍສຸດທ້າຍ
operand ລະບຸ. ຖ້າຂະບວນການຢຸດເຊົາຜິດປົກກະຕິຍ້ອນການໄດ້ຮັບສັນຍານ,
ສະຖານະພາບທາງອອກຈະໃຫຍ່ກວ່າ 128 ແລະຈະແຕກຕ່າງຈາກສະຖານະພາບທາງອອກ
ສ້າງຂຶ້ນໂດຍສັນຍານອື່ນໆ, ແຕ່ຄ່າທີ່ແນ່ນອນແມ່ນບໍ່ໄດ້ລະບຸ. (ເບິ່ງ ຂ້າ −l ທາງເລືອກ.)
ຖ້າບໍ່ດັ່ງນັ້ນ, ໄດ້ ລໍຖ້າ utility ຈະອອກຈາກຫນຶ່ງຂອງຄ່າດັ່ງຕໍ່ໄປນີ້:
0 The ລໍຖ້າ ຜົນປະໂຫຍດໄດ້ຖືກເອີ້ນໂດຍບໍ່ມີຕົວປະຕິບັດການແລະ ID ຂະບວນການທັງຫມົດທີ່ຮູ້ຈັກໂດຍ
ການຮຽກຮ້ອງ shell ໄດ້ສິ້ນສຸດລົງ.
1–126 ທ ລໍຖ້າ utility ກວດພົບຄວາມຜິດພາດ.
127 ຄໍາສັ່ງກໍານົດໂດຍສຸດທ້າຍ pid operand ລະບຸບໍ່ຮູ້ຈັກ.
ຂໍ້ສັງເກດ OF ຄວາມຜິດພາດ
ເລີ່ມຕົ້ນ.
ໄດ້ ດັ່ງຕໍ່ໄປນີ້ ພາກສ່ວນ ມີ ຂໍ້ມູນ.
ຄໍາຮ້ອງສະຫມັກ ການນໍາໃຊ້
ກ່ຽວກັບການຈັດຕັ້ງປະຕິບັດສ່ວນໃຫຍ່, ລໍຖ້າ ເປັນ shell ກໍ່ສ້າງໃນ. ຖ້າຫາກວ່າມັນຖືກເອີ້ນວ່າໃນ subshell ຫຼື
ສະພາບແວດລ້ອມການປະຕິບັດຜົນປະໂຫຍດແຍກຕ່າງຫາກ, ເຊັ່ນ: ຫນຶ່ງໃນດັ່ງຕໍ່ໄປນີ້:
(ລໍຖ້າ)
ບໍ່ມີຫຍັງ ລໍຖ້າ ...
ຊອກຫາ . -exec ລໍຖ້າ ... \;
ມັນກັບຄືນມາທັນທີເພາະວ່າບໍ່ມີ ID ຂະບວນການທີ່ຮູ້ຈັກທີ່ຈະລໍຖ້າຢູ່ໃນນັ້ນ
ສະພາບແວດລ້ອມ.
ການປະຕິບັດປະຫວັດສາດຂອງແກະແບບໂຕ້ຕອບໄດ້ຍົກເລີກສະຖານະການອອກຈາກ
ສິ້ນສຸດຂະບວນການພື້ນຫລັງກ່ອນທີ່ແຕ່ລະ shell prompt. ເພາະສະນັ້ນ, ສະຖານະພາບຂອງ
ປົກກະຕິແລ້ວຂະບວນການພື້ນຫລັງແມ່ນສູນເສຍເວັ້ນເສຍແຕ່ວ່າມັນຢຸດເຊົາໃນຂະນະທີ່ ລໍຖ້າ ໄດ້ລໍຖ້າມັນ.
ນີ້ອາດຈະເປັນບັນຫາທີ່ຮ້າຍແຮງເມື່ອວຽກທີ່ຄາດວ່າຈະດໍາເນີນການເປັນເວລາດົນນານ
ຕົວຈິງແລ້ວຢຸດເຊົາຢ່າງໄວວາດ້ວຍ syntax ຫຼືຄວາມຜິດພາດເບື້ອງຕົ້ນເນື່ອງຈາກວ່າສະຖານະການອອກ
ໂດຍປົກກະຕິຈະສົ່ງຄືນເປັນສູນຖ້າ ID ຂະບວນການທີ່ຮ້ອງຂໍບໍ່ພົບ. ປະລິມານນີ້
POSIX.1-2008 ຮຽກຮ້ອງໃຫ້ມີການປະຕິບັດເພື່ອຮັກສາສະຖານະຂອງວຽກທີ່ຖືກຍົກເລີກ
ຈົນກ່ວາສະຖານະໄດ້ຖືກຮ້ອງຂໍ, ດັ່ງນັ້ນສະຄິບເຊັ່ນ:
j1&
p1=$!
j2&
ລໍຖ້າ $p1
echo ວຽກເຮັດງານທໍາ 1 ອອກໄປ ກັບ ສະຖານະພາບ $?
ລໍຖ້າ $!
echo ວຽກເຮັດງານທໍາ 2 ອອກໄປ ກັບ ສະຖານະພາບ $?
ເຮັດວຽກໂດຍບໍ່ມີການສູນເສຍສະຖານະພາບໃນການເຮັດວຽກໃດໆ. ແກະໄດ້ຖືກອະນຸຍາດໃຫ້ຍົກເລີກສະຖານະພາບ
ຂອງຂະບວນການໃດໆຖ້າມັນກໍານົດວ່າແອັບພລິເຄຊັນບໍ່ສາມາດໄດ້ຮັບ ID ຂະບວນການສໍາລັບການນັ້ນ
ຂະບວນການຈາກແກະ. ມັນຍັງຈໍາເປັນຕ້ອງຈື່ຈໍາພຽງແຕ່ຈໍານວນ {CHILD_MAX} ຂອງ
ຂະບວນການໃນວິທີການນີ້. ນັບຕັ້ງແຕ່ວິທີດຽວທີ່ຈະໄດ້ຮັບ ID ຂະບວນການຈາກແກະແມ່ນໂດຍໃຊ້
ໄດ້ '!' ຕົວກໍານົດການ shell, ແກະໄດ້ຖືກອະນຸຍາດໃຫ້ຍົກເລີກສະຖານະຂອງ asynchronous
ບັນຊີລາຍຊື່ຖ້າຫາກວ່າ "$!" ບໍ່ໄດ້ອ້າງອີງກ່ອນທີ່ລາຍຊື່ອະຊິງໂຄນອັສອື່ນຈະເລີ່ມຂຶ້ນ. (ນີ້ຫມາຍຄວາມວ່າ
ວ່າ shell ພຽງແຕ່ມີເພື່ອຮັກສາສະຖານະພາບຂອງບັນຊີລາຍຊື່ asynchronous ສຸດທ້າຍເລີ່ມຕົ້ນຖ້າຫາກວ່າ
ຄໍາຮ້ອງສະຫມັກບໍ່ໄດ້ອ້າງອີງ "$!". ຖ້າຫາກວ່າການປະຕິບັດຂອງແກະແມ່ນ smart ພຽງພໍທີ່ຈະ
ກໍານົດທີ່ອ້າງອີງເຖິງ "$!" ບໍ່ໄດ້ບັນທຶກໄວ້ທຸກບ່ອນທີ່ແອັບພລິເຄຊັນສາມາດເຮັດໄດ້
ດຶງຂໍ້ມູນໃນພາຍຫຼັງ, ມັນສາມາດໃຊ້ຂໍ້ມູນນີ້ເພື່ອຕັດລາຍຊື່ຂໍ້ມູນທີ່ບັນທຶກໄວ້. ຫມາຍເຫດ
ຍັງວ່າການໂທຫາສົບຜົນສໍາເລັດ ລໍຖ້າ ໂດຍບໍ່ມີການ operands ຍົກເລີກສະຖານະການອອກຂອງທັງຫມົດ
ບັນຊີລາຍຊື່ asynchronous.)
ຖ້າຫາກວ່າສະຖານະການອອກຂອງ ລໍຖ້າ ແມ່ນໃຫຍ່ກວ່າ 128, ບໍ່ມີທາງສໍາລັບຄໍາຮ້ອງສະຫມັກທີ່ຈະ
ຮູ້ວ່າຂະບວນການລໍຖ້າອອກມາດ້ວຍຄ່ານັ້ນຫຼືຖືກຂ້າໂດຍສັນຍານ. ນັບຕັ້ງແຕ່
ຜົນປະໂຫຍດສ່ວນໃຫຍ່ອອກຈາກມູນຄ່າຂະຫນາດນ້ອຍ, ບໍ່ຄ່ອຍມີຄວາມບໍ່ແນ່ນອນ. ແມ້ແຕ່ຢູ່ໃນ
ກໍລະນີທີ່ບໍ່ຊັດເຈນ, ຄໍາຮ້ອງສະຫມັກສ່ວນໃຫຍ່ພຽງແຕ່ຕ້ອງການຮູ້ວ່າວຽກ asynchronous ລົ້ມເຫລວ; ມັນ
ບໍ່ສໍາຄັນວ່າມັນກວດພົບຄວາມຜິດພາດແລະລົ້ມເຫລວຫຼືຖືກຂ້າຕາຍແລະບໍ່ສໍາເລັດ
ວຽກງານຂອງຕົນເປັນປົກກະຕິ.
ຕົວຢ່າງ
ເຖິງແມ່ນວ່າຄ່າທີ່ແນ່ນອນທີ່ໃຊ້ໃນເວລາທີ່ຂະບວນການຖືກຢຸດໂດຍສັນຍານແມ່ນບໍ່ໄດ້ລະບຸ, ຖ້າ
ມັນເປັນທີ່ຮູ້ຈັກວ່າສັນຍານຢຸດຂະບວນການ, script ຍັງສາມາດກໍານົດທີ່ເຊື່ອຖືໄດ້
ສັນຍານໂດຍການນໍາໃຊ້ ຂ້າ ດັ່ງທີ່ສະແດງໂດຍສະຄິບຕໍ່ໄປນີ້:
ນອນ 1000 &
pid=$!
ຂ້າ - ຂ້າ $pid
ລໍຖ້າ $pid
echo $pid ແມ່ນ ສິ້ນສຸດລົງ by a SIG$(ຂ້າ −l $?) signal
ຖ້າລໍາດັບຂອງຄໍາສັ່ງຕໍ່ໄປນີ້ຖືກດໍາເນີນການໃນເວລາຫນ້ອຍກວ່າ 31 ວິນາທີ:
ນອນ 257 | ນອນ 31 &
ວຽກເຮັດງານທໍາ −l %%
ຄຳສັ່ງອັນໃດອັນໜຶ່ງຕໍ່ໄປນີ້ສົ່ງຄືນສະຖານະອອກຂອງທີສອງ ນອນ ໃນ
ທໍ່:
ລໍຖ້າ <pid of ນອນ 31>
ລໍຖ້າ %%
ສະຖານທີ່
ຄໍາອະທິບາຍຂອງ ລໍຖ້າ ບໍ່ໄດ້ອ້າງເຖິງ ລໍຄອຍ() ຟັງຊັນຈາກລະບົບ
ປະລິມານສ່ວນຕິດຕໍ່ຂອງ POSIX.1-2008 ເພາະວ່າອັນນັ້ນອາດຈະລະບຸເກີນຄວາມຈໍາເປັນນີ້
ການໂຕ້ຕອບ. ຢ່າງໃດກໍຕາມ, ຄໍາສັບຕ່າງໆຫມາຍຄວາມວ່າ ລໍຖ້າ ຈໍາເປັນຕ້ອງລໍຖ້າຢ່າງຈະແຈ້ງ
ຂະບວນການໃນເວລາທີ່ມັນໄດ້ຮັບການໂຕ້ຖຽງເພື່ອໃຫ້ຂໍ້ມູນສະຖານະພາບຂອງຂະບວນການອື່ນໆແມ່ນ
ບໍ່ໄດ້ບໍລິໂພກ. ການປະຕິບັດປະຫວັດສາດນໍາໃຊ້ ລໍຖ້າ() ຫນ້າທີ່ກໍານົດໄວ້ໃນລະບົບ
ປະລິມານການໂຕ້ຕອບຂອງ POSIX.1-2008 ຈົນກ່ວາ ລໍຖ້າ() ສົ່ງຄືນ ID ຂະບວນການທີ່ຮ້ອງຂໍຫຼືຊອກຫາ
ວ່າຂະບວນການທີ່ຮ້ອງຂໍບໍ່ມີ. ເນື່ອງຈາກວ່ານີ້ຫມາຍຄວາມວ່າ script shell ສາມາດ
ບໍ່ໄດ້ຮັບສະຖານະພາບຂອງເດັກນ້ອຍພື້ນຖານທັງຫມົດຖ້າມີວຽກພື້ນຖານທີສອງ
ເລີ່ມຕົ້ນກ່ອນທີ່ຈະເຮັດວຽກທໍາອິດສໍາເລັດ, ມັນແນະນໍາໃຫ້ ລໍຖ້າ ການນໍາໃຊ້ a
ວິທີການເຊັ່ນ: ຫນ້າທີ່ສະຫນອງໃຫ້ໂດຍ ລໍຄອຍ() ຫນ້າທີ່.
ຄວາມສາມາດໃນການລໍຖ້າຫຼາຍ pid operands ໄດ້ຮັບຮອງເອົາຈາກ KornShell.
ຟັງຊັນໃຫມ່ນີ້ໄດ້ຖືກເພີ່ມເພາະວ່າມັນຈໍາເປັນຕ້ອງກໍານົດສະຖານະການອອກຂອງໃດໆ
ບັນຊີລາຍຊື່ asynchronous ຢ່າງຖືກຕ້ອງ. ບັນຫາຄວາມເຂົ້າກັນໄດ້ພຽງແຕ່ວ່າການປ່ຽນແປງນີ້ສ້າງແມ່ນ
ສໍາລັບ script ຄື
ໃນຂະນະທີ່ ນອນ 60 do
ວຽກ& echo ວຽກເຮັດງານທໍາ ເລີ່ມຕົ້ນ $(ວັນທີ) as $! ເຮັດ
ເຊິ່ງເຮັດໃຫ້ Shell ຕິດຕາມວຽກທັງໝົດເລີ່ມຕົ້ນຈົນກ່ວາ script ຢຸດຕິ ຫຼື
ໝົດຄວາມຊົງຈຳ. ນີ້ຈະບໍ່ເປັນບັນຫາຖ້າຫາກວ່າ loop ບໍ່ໄດ້ອ້າງອີງ "$!" ຫຼືຖ້າ
ສະຄຣິບຈະເປັນບາງຄັ້ງຄາວ ລໍຖ້າ ສໍາລັບວຽກທີ່ມັນເລີ່ມຕົ້ນ.
ອະນາຄົດ DIRECTIONS
ບໍ່ມີ.
ໃຊ້ waitposix ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net