Exec-Linux Command-Unix Command

exec - ເອີ້ນ subprocess (es)

Synopsis

exec ? switches ? arg ? arg ?

ລາຍລະອຽດ

ຄໍາສັ່ງນີ້ປະຕິບັດການໂຕ້ຖຽງຂອງຕົນເປັນຂໍ້ກໍານົດຂອງຫນຶ່ງຫລືຫຼາຍ subprocesses ທີ່ຈະປະຕິບັດ. ການໂຕ້ຖຽງໃຊ້ຮູບແບບຂອງທໍ່ແກັດມາດຕະຖານທີ່ແຕ່ລະ arg ຈະກາຍເປັນຄໍາສັບຂອງຄໍາສັ່ງແລະຄໍາສັ່ງທີ່ແຕກຕ່າງກັນຈະກາຍເປັນ subprocess.

ຖ້າການໂຕ້ຖຽງເບື້ອງຕົ້ນກັບ exec ເລີ່ມຕົ້ນດ້ວຍ - ຫຼັງຈາກນັ້ນພວກມັນຈະຖືກລຶບລ້າງການສະຫຼັບສາຍຄໍາສັ່ງແລະບໍ່ແມ່ນສ່ວນຫນຶ່ງຂອງຂໍ້ກໍານົດຂອງທໍ່. ສະຫນັບສະຫນູນຕໍ່ໄປນີ້ແມ່ນ:

-keepnewline

ເກັບຮັກສາເສັ້ນໃຫມ່ໃນເສັ້ນທາງອອກ. ຕາມປົກກະຕິແລ້ວເສັ້ນທາງທີ່ຕິດຕາມຈະຖືກລຶບຖິ້ມ.

-

ຫມາຍຈຸດສິ້ນສຸດຂອງຫຼັບ. ການໂຕ້ຖຽງຕໍ່ໄປນີ້ຈະຖືກປະຕິບັດເປັນການໂຕ້ຖຽງທໍາອິດເຖິງແມ່ນວ່າມັນຈະເລີ່ມຕົ້ນດ້ວຍ - .

ຖ້າ arg (ຫລືຄູ່ຂອງ arg 's) ມີຫນຶ່ງໃນຮູບແບບທີ່ອະທິບາຍໄວ້ຂ້າງລຸ່ມນີ້ມັນຈະຖືກນໍາໃຊ້ໂດຍ exec ເພື່ອຄວບຄຸມການໄຫຼເຂົ້າຂອງ input ແລະ output ໃນ subprocess (es). ການໂຕ້ຖຽງດັ່ງກ່າວຈະບໍ່ຖືກສົ່ງໄປຫາ subprocess (es). ໃນແບບຟອມເຊັ່ນ: `` < fileName > ' ໄຟລ໌ ອາດຈະຢູ່ໃນຄໍາສັ່ງແຍກຕ່າງຫາກຈາກ `` <' 'ຫຼືໃນການໂຕ້ຖຽງດຽວກັນກັບບໍ່ມີຊ່ອງຫວ່າງ (ເຊັ່ນ `` <ຊື່ ໄຟລ໌ >).

|

ແຍກຄໍາສັ່ງທີ່ແຕກຕ່າງກັນໃນທໍ່. ຜະລິດຕະພັນມາດຕະຖານຂອງຄໍາສັ່ງຂ້າງເທິງຈະຖືກທໍ່ເຂົ້າສູ່ມາດຕະຖານຂອງຄໍາສັ່ງຕໍ່ໄປ.

| &

ແຍກຄໍາສັ່ງທີ່ແຕກຕ່າງກັນໃນທໍ່. ທັງຜົນຜະລິດມາດຕະຖານແລະຂໍ້ຜິດພາດມາດຕະຖານຂອງຄໍາສັ່ງຂ້າງຕົ້ນຈະຖືກທໍ່ເຂົ້າໄປໃນມາດຕະຖານຂອງຄໍາສັ່ງຕໍ່ໄປ. ແບບຟອມການປ່ຽນເສັ້ນທາງນີ້ແທນທີ່ຮູບແບບເຊັ່ນ: 2> ແລະ> &.

< fileName

ໄຟລ໌ທີ່ມີຊື່ໂດຍໄຟລ໌ແມ່ນເປີດແລະນໍາໃຊ້ເປັນຂໍ້ມູນປະກອບມາດຕະຖານສໍາລັບຄໍາສັ່ງທໍາອິດໃນທໍ່.

<@ fileId

FileId ຕ້ອງເປັນຕົວລະບຸສໍາລັບໄຟລ໌ເປີດ, ເຊັ່ນ: ມູນຄ່າຜົນຕອບແທນຈາກການເອີ້ນກ່ອນຫນ້າທີ່ຈະ ເປີດ . ມັນຖືກນໍາໃຊ້ເປັນຈຸດປະສົງມາດຕະຖານສໍາລັບຄໍາສັ່ງທໍາອິດໃນທໍ່. FileId ຕ້ອງໄດ້ເປີດສໍາລັບການອ່ານ.

<< value

ມູນຄ່າ ແມ່ນຖືກສົ່ງໄປຫາຄໍາສັ່ງທໍາອິດເປັນການໃສ່ຂໍ້ມູນມາດຕະຖານ.

> fileName

ຜະລິດຕະພັນມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍແມ່ນຖືກໂອນໄປຫາໄຟລ໌ທີ່ມີຊື່ fileName , overwriting ເນື້ອໃນກ່ອນຫນ້ານີ້.

2> fileName

ຂໍ້ຜິດພາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດທີ່ຢູ່ໃນທໍ່ແມ່ນຖືກໂອນໄປຫາໄຟລ໌ຊື່ fileName , overwriting ເນື້ອໃນກ່ອນຫນ້ານີ້.

> & fileName

ທັງຜົນຜະລິດມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍແລະຂໍ້ຜິດພາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດຖືກນໍາໄປຫາໄຟລ໌ທີ່ມີຊື່ fileName , overwriting ເນື້ອຫາກ່ອນຫນ້ານີ້.

>> fileName

ຜະລິດຕະພັນມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍແມ່ນຖືກສົ່ງກັບໄຟລ໌ທີ່ມີຊື່ຊື່ FileName , ຕິດກັບມັນແທນທີ່ຈະ overwriting ມັນ.

2 >> fileName

ຂໍ້ຜິດພາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດໃນທໍ່ແມ່ນຖືກສົ່ງກັບໄຟລ໌ທີ່ມີຊື່ຊື່ FileName , ຕິດກັບມັນແທນທີ່ຈະ overwriting ມັນ.

>> & fileName

ຜົນຜະລິດມາດຕະຖານທັງສອງຈາກຄໍາສັ່ງສຸດທ້າຍແລະຂໍ້ຜິດພາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດແມ່ນຖືກສົ່ງກັບໄຟລ໌ທີ່ມີຊື່ຊື່ FileName , ຕິດກັບມັນແທນທີ່ຈະ overwriting ມັນ.

> @ fileId

FileId ຕ້ອງເປັນຕົວລະບຸສໍາລັບໄຟລ໌ເປີດ, ເຊັ່ນ: ມູນຄ່າຜົນຕອບແທນຈາກການເອີ້ນກ່ອນຫນ້າທີ່ຈະ ເປີດ . ຜະລິດມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍຈະຖືກສົ່ງກັບແຟ້ມຂອງ FileId ຊຶ່ງຕ້ອງໄດ້ເປີດສໍາຫລັບການຂຽນ

2> @ fileId

FileId ຕ້ອງເປັນຕົວລະບຸສໍາລັບໄຟລ໌ເປີດ, ເຊັ່ນ: ມູນຄ່າຜົນຕອບແທນຈາກການເອີ້ນກ່ອນຫນ້າທີ່ຈະ ເປີດ . ຂໍ້ຜິດພະລາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດໃນທໍ່ຈະຖືກໂອນໄປຍັງແຟ້ມ fileId ໄຟລ໌ຕ້ອງໄດ້ຖືກເປີດສໍາລັບການຂຽນ.

> & @ fileId

FileId ຕ້ອງເປັນຕົວລະບຸສໍາລັບໄຟລ໌ເປີດ, ເຊັ່ນ: ມູນຄ່າຜົນຕອບແທນຈາກການເອີ້ນກ່ອນຫນ້າທີ່ຈະ ເປີດ . ທັງຜົນຜະລິດມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍແລະຂໍ້ຜິດພາດມາດຕະຖານຈາກຄໍາສັ່ງທັງຫມົດຖືກສົ່ງກັບໄຟລ໌ຂອງ FileId. ໄຟລ໌ຕ້ອງໄດ້ຖືກເປີດສໍາລັບການຂຽນ.

ຖ້າຜົນຜະລິດມາດຕະຖານບໍ່ໄດ້ຖືກໂອນແລ້ວຄໍາສັ່ງ exec ຈະສົ່ງຜົນຜະລິດມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍໃນທໍ່. ຖ້າມີຄໍາສັ່ງໃດໆໃນການອອກຈາກທາງຜິດຜິດປົກກະຕິຫຼືຖືກຂ້າຕາຍຫຼືຖືກໂຈະ, ຫຼັງຈາກນັ້ນ exec ຈະສົ່ງຂໍ້ຜິດພາດແລະຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະປະກອບຜົນຜະລິດຂອງທໍ່ຕາມຂໍ້ຄວາມຜິດພາດທີ່ອະທິບາຍເຖິງການສິ້ນສຸດຜິດປົກກະຕິ; ຕົວແປ errorCode ຈະມີຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການສິ້ນສຸດຜິດປົກກະຕິທີ່ຜ່ານມາພົບ. ຖ້າມີຄໍາສັ່ງໃດໆຂຽນກັບໄຟລ໌ຂໍ້ຜິດພາດມາດຕະຖານແລະຂໍ້ຜິດພາດມາດຕະຖານບໍ່ໄດ້ຖືກໂອນ, ຫຼັງຈາກນັ້ນ exec ຈະສົ່ງຂໍ້ຜິດພາດຄືນໃຫມ່; ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະປະກອບດ້ວຍການອອກມາດຕະຖານຂອງທໍ່, ຕິດຕາມຂໍ້ຄວາມກ່ຽວກັບການສິ້ນສຸດຜິດປົກກະຕິ (ຖ້າມີ), ປະຕິບັດຕາມຄວາມຜິດພາດມາດຕະຖານ.

ຖ້າຕົວອັກສອນສຸດທ້າຍຂອງຜົນໄດ້ຮັບຫຼືຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດເປັນເສັ້ນໃຫມ່, ຫຼັງຈາກນັ້ນລັກສະນະທີ່ຖືກລຶບອອກຈາກຜົນໄດ້ຮັບຫຼືຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດ. ນີ້ແມ່ນສອດຄ່ອງກັບມູນຄ່າ Tcl ອື່ນໆ, ເຊິ່ງບໍ່ໄດ້ສິ້ນສຸດລົງດ້ວຍ newlines. ຢ່າງໃດກໍຕາມ, ຖ້າ - keepnewline ຖືກກໍານົດແລ້ວເສັ້ນທາງທີ່ຕິດຕາມແມ່ນເກັບຮັກສາໄວ້.

ຖ້າການປ້ອນຂໍ້ມູນມາດຕະຖານບໍ່ໄດ້ຖືກໂອນກັບ `` <'' ຫຼື `` << '' ຫຼື `` <@ '' ຫຼັງຈາກນັ້ນ, ການນໍາໃຊ້ມາດຕະຖານສໍາລັບຄໍາສັ່ງທໍາອິດໃນທໍ່ແມ່ນຖືກນໍາໃຊ້ຈາກຂໍ້ມູນມາດຕະຖານໃນປະຈຸບັນຂອງແອັບພລິເຄຊັນ.

ຖ້າຄໍາໂຕສຸດທ້າຍແມ່ນ `` & '' ຫຼັງຈາກນັ້ນ, ທໍ່ຈະຖືກປະຕິບັດຢູ່ໃນພື້ນຫລັງ. ໃນກໍລະນີນີ້ຄໍາສັ່ງ exec ຈະກັບຄືນລາຍຊື່ທີ່ມີອົງປະກອບເປັນຕົວກໍານົດການຂະບວນການສໍາລັບທຸກ subprocesses ໃນທໍ່. ຜົນຜະລິດມາດຕະຖານຈາກຄໍາສັ່ງສຸດທ້າຍໃນທໍ່ຈະໄປຫາຜົນຜະລິດມາດຕະຖານຂອງແອັບພລິເຄຊັນຖ້າມັນບໍ່ໄດ້ຖືກໂອນ, ແລະການສົ່ງຂໍ້ຜິດພາດຈາກຄໍາສັ່ງທັງຫມົດທີ່ຢູ່ໃນໂປແກຼມຈະໄປຫາເອກະສານຂໍ້ຜິດພາດມາດຕະຖານຂອງເວບທີ່ບໍ່ໄດ້ຖືກໂອນ.

ຄໍາທໍາອິດໃນແຕ່ລະຄໍາສັ່ງຖືກນໍາມາເປັນຊື່ຄໍາສັ່ງ; tilde-substitution ຖືກປະຕິບັດໃນມັນແລະຖ້າຜົນໄດ້ຮັບບໍ່ມີ slashes ຫຼັງຈາກນັ້ນລາຍຊື່ໃນ variable environment PATH ຈະຖືກຄົ້ນຫາສໍາລັບ executable ໂດຍຊື່ທີ່ໄດ້ຮັບ. ຖ້າຊື່ມີຂໍ້ຂັດຂວາງຫຼັງຈາກນັ້ນມັນຕ້ອງອ້າງເຖິງການປະຕິບັດງານສາມາດບັນລຸໄດ້ຈາກໄດເລກະທໍລີປະຈຸບັນ. ບໍ່ມີການຂະຫຍາຍຕົວ `` glob '' ຫຼືການທົດແທນຄ້າຍຄືກັນອື່ນໆທີ່ຖືກປະຕິບັດໃນການໂຕ້ຖຽງກັບຄໍາສັ່ງ.

Portable Issues

Windows (ທຸກຮຸ່ນ)

ການອ່ານຫຼືການຂຽນເຂົ້າກັບເຕົ້າຮັບ, ການນໍາໃຊ້ `` @ fileId '', ບໍ່ໄດ້ເຮັດວຽກ. ໃນເວລາທີ່ອ່ານຈາກເຕົ້າຮັບ, ຄໍາຮ້ອງສະຫມັກ DOS 16 ບິດຈະວາງສາຍແລະຄໍາຮ້ອງສະຫມັກ 32 ບິດຈະກັບຄືນມາທັນທີກັບທ້າຍເອກະສານ. ເມື່ອປະເພດຂອງຄໍາຮ້ອງສະຫມັກປະເພດໃດຫນຶ່ງຂຽນກັບເຕົ້າຮັບ, ຂໍ້ມູນແມ່ນແທນທີ່ຈະສົ່ງໄປ console, ຖ້າມີຢູ່, ຫຼືຖືກຍົກເລີກ.

widget ຂໍ້ຄວາມ console Tk ບໍ່ໄດ້ໃຫ້ຄວາມສາມາດ IO ມາດຕະຖານທີ່ແທ້ຈິງ. ພາຍໃຕ້ Tk, ໃນເວລາທີ່ການໂອນອອກຈາກການປ້ອນຂໍ້ມູນມາດຕະຖານ, ທຸກຄໍາຮ້ອງສະຫມັກຈະເຫັນການສິ້ນສຸດຂອງແຟ້ມທັນທີ; ຂໍ້ມູນທີ່ຖືກສົ່ງກັບມາດຕະຖານຜົນຜະລິດຫຼືຂໍ້ຜິດພາດມາດຕະຖານຈະຖືກຍົກເລີກ.

ສະແດງຕໍ່ຫຼືຊ້າຍແມ່ນຖືກຍອມຮັບເປັນຕົວແຍກເສັ້ນທາງສໍາລັບການໂຕ້ຖຽງກັບຄໍາສັ່ງ Tcl. ໃນເວລາທີ່ປະຕິບັດຄໍາຮ້ອງສະຫມັກ, ຊື່ເສັ້ນທາງທີ່ລະບຸໄວ້ສໍາລັບແອັບພລິເຄຊັນອາດມີຂໍ້ສະຫຼຸບທາງຫນ້າຫຼືດ້ານຫລັງອີກດ້ວຍ. ຈົ່ງຈື່ໄວ້, ຢ່າງໃດກໍຕາມ, ວ່າຄໍາຮ້ອງສະຫມັກຂອງ Windows ສ່ວນໃຫຍ່ຍອມຮັບການໂຕ້ຖຽງກັບ slashes ກ້າວຫນ້າພຽງແຕ່ເປັນ delimiters ຕົວເລືອກແລະ backslashes ພຽງແຕ່ໃນເສັ້ນທາງ. ການໂຕ້ຖຽງໃດໆກັບແອັບພລິເຄຊັນທີ່ລະບຸຊື່ເສັ້ນທາງທີ່ມີ slashes ຕໍ່ໄປຈະບໍ່ຖືກປ່ຽນແປງໂດຍອັດຕະໂນມັດທີ່ຈະໃຊ້ຕົວອັກສອນກັບຄືນໄປບ່ອນ. ຖ້າມີການໂຕ້ແຍ້ງມີ slashes ກ້າວຫນ້າເປັນເສັ້ນທາງແຍກ, ມັນອາດຈະຫລືບໍ່ໄດ້ຮັບການຍອມຮັບວ່າເປັນຊື່ເສັ້ນທາງ, ອີງຕາມໂຄງການ.

ນອກຈາກນັ້ນ, ໃນເວລາທີ່ໂທຫາຄໍາຮ້ອງສະຫມັກ DOS ຫຼື Windows 3.X 16 ບິດ, ຊື່ເສັ້ນທາງທັງຫມົດຕ້ອງໃຊ້ຮູບແບບເສັ້ນທາງທີ່ສັ້ນ, ຂັດຂວາງ, (ເຊັ່ນການນໍາໃຊ້ `` applba ~ 1.def '' ແທນ <`applbakery.default '' )

ສອງຫຼືຫຼາຍກວ່າແຖວຊ້າຍຫຼືແຖບຊ້າຍໃນແຖວໃນເສັ້ນທາງເປັນເສັ້ນທາງເຄືອຂ່າຍ. ຕົວຢ່າງເຊັ່ນການເຊື່ອມໂຍງແບບງ່າຍໆຂອງລະບົບຮາກຖານ c: / ກັບລະບົບຍ່ອຍ / ປ່ອງຢ້ຽມ / ລະບົບ ຈະໃຫ້ c: // windows / system (ສອງ slashes together) ເຊິ່ງຫມາຍເຖິງຈຸດທີ່ mount ທີ່ເອີ້ນວ່າ ລະບົບ ໃນເຄື່ອງທີ່ເອີ້ນວ່າ windows (ແລະ c: / ແມ່ນຖືກລະເລີຍ), ແລະບໍ່ແມ່ນກັບ c: / windows / system , ເຊິ່ງອະທິບາຍໄດເລກະທໍລີໃນຄອມພິວເຕີປະຈຸບັນ. ຄໍາສັ່ງ ເຂົ້າຮ່ວມຂອງໄຟລ໌ ຄວນຖືກນໍາໃຊ້ເພື່ອເຊື່ອມໂຍງອົງປະກອບເສັ້ນທາງ.

Windows NT

ໃນເວລາທີ່ພະຍາຍາມທີ່ຈະປະຕິບັດຄໍາຮ້ອງສະຫມັກ, exec ທໍາອິດຊອກຫາຊື່ຕາມທີ່ໄດ້ກໍານົດ. ຫຼັງຈາກນັ້ນ, ໃນຄໍາສັ່ງ, .com , .exe , ແລະ .bat ແມ່ນເພີ່ມເຕີມຢູ່ໃນຕອນທ້າຍຂອງຊື່ທີ່ລະບຸໄວ້ແລະມັນຊອກຫາຊື່ທີ່ຍາວກວ່າ. ຖ້າຊື່ໂດເມນບໍ່ໄດ້ລະບຸໄວ້ເປັນສ່ວນຫນຶ່ງຂອງຊື່ຂອງແອັບພລິເຄຊັນ, ລາຍຊື່ຕໍ່ໄປນີ້ຈະຖືກຄົ້ນຫາໂດຍອັດຕະໂນມັດໃນເວລາທີ່ພະຍາຍາມຊອກຫາແອັບພລິເຄຊັນ:

ໄດເລກະທໍລີທີ່ໄດ້ຮັບການຕິດຕັ້ງ Tcl
ໄດເລກະທໍລີປັດຈຸບັນ
ລະບົບລະບົບ Windows NT 32-bit.
ລະບົບລະບົບ Windows NT 16-bit.
ໄດເລກະທໍລີບ້ານ Windows NT.
ໄດເລກະທໍລີທີ່ລະບຸໄວ້ໃນເສັ້ນທາງ.

ໃນຄໍາສັ່ງເພື່ອປະຕິບັດຄໍາສັ່ງ builtin shell ເຊັ່ນ dir ແລະ ສໍາເນົາ , ຜູ້ໂທຕ້ອງໄດ້ prepend ` cmd.exe / c 'ກັບຄໍາສັ່ງທີ່ຕ້ອງການ.

Windows 95

ໃນເວລາທີ່ພະຍາຍາມທີ່ຈະປະຕິບັດຄໍາຮ້ອງສະຫມັກ, exec ທໍາອິດຊອກຫາຊື່ຕາມທີ່ໄດ້ກໍານົດ. ຫຼັງຈາກນັ້ນ, ໃນຄໍາສັ່ງ, .com , .exe , ແລະ .bat ແມ່ນເພີ່ມເຕີມຢູ່ໃນຕອນທ້າຍຂອງຊື່ທີ່ລະບຸໄວ້ແລະມັນຊອກຫາຊື່ທີ່ຍາວກວ່າ. ຖ້າຊື່ໂດເມນບໍ່ໄດ້ລະບຸໄວ້ເປັນສ່ວນຫນຶ່ງຂອງຊື່ຂອງແອັບພລິເຄຊັນ, ລາຍຊື່ຕໍ່ໄປນີ້ຈະຖືກຄົ້ນຫາໂດຍອັດຕະໂນມັດໃນເວລາທີ່ພະຍາຍາມຊອກຫາແອັບພລິເຄຊັນ:

ໄດເລກະທໍລີທີ່ໄດ້ຮັບການຕິດຕັ້ງ Tcl
ໄດເລກະທໍລີປັດຈຸບັນ
ໄດເລກະທໍລີລະບົບ Windows 95
ປື້ມທີ່ຢູ່ຂອງ Windows 95.
ໄດເລກະທໍລີທີ່ລະບຸໄວ້ໃນເສັ້ນທາງ.

ໃນຄໍາສັ່ງເພື່ອປະຕິບັດຄໍາສັ່ງ buildin shell ເຊັ່ນ dir ແລະ copy , caller ຕ້ອງໄດ້ prepend ` command.com / c 'ກັບຄໍາສັ່ງທີ່ຕ້ອງການ.

ເມື່ອໃດທີ່ຄໍາຮ້ອງສະຫມັກ DOS 16 ບິດໄດ້ອ່ານຂໍ້ມູນປະກອບມາດຕະຖານຈາກ console ແລະຫຼັງຈາກນັ້ນອອກ, ທັງຫມົດຫຼັງຈາກນັ້ນດໍາເນີນການຄໍາຮ້ອງສະຫມັກ DOS 16 bits ຈະເຫັນ input ຂໍ້ມູນທີ່ໄດ້ປິດແລ້ວ. ຄໍາຮ້ອງສະຫມັກ 32 bit ບໍ່ມີບັນຫານີ້ແລະຈະເຮັດວຽກຢ່າງຖືກຕ້ອງ, ເຖິງແມ່ນວ່າພາຍຫຼັງທີ່ແອັບພລິເຄຊັນ DOS 16 ບິດຄິດວ່າປະໂຫຍດມາດຕະຖານຖືກປິດແລ້ວ. ບໍ່ມີການແກ້ໄຂບັນຫານີ້ສໍາລັບ bug ນີ້ໃນເວລານີ້.

ການເຊື່ອມຕໍ່ລະຫວ່າງ NUL: ອຸປະກອນແລະແອັບພລິເຄຊັນ 16 ບິດບໍ່ສະເຫມີໄປ. ເມື່ອໂອນຈາກ NUL:, ບາງຄໍາຮ້ອງສະຫມັກອາດຈະຄ້າງ, ຄົນອື່ນຈະໄດ້ຮັບສາຍທີ່ນິລັນດອນຂອງ `` 0x01 '' bytes, ແລະບາງຢ່າງກໍ່ຈະໄດ້ຮັບການເອົາໃຈໃສ່ຢ່າງໃກ້ຊິດໃນຕອນທ້າຍຂອງໄຟ; ພຶດຕິກໍາທີ່ເບິ່ງຄືວ່າຈະຂຶ້ນກັບບາງສິ່ງບາງຢ່າງທີ່ລວບລວມເຂົ້າໄປໃນຄໍາຮ້ອງສະຫມັກຕົວຈິງ. ເມື່ອສົ່ງເສັ້ນທາງໃຫມ່ກວ່າ 4K ກັບ NUL:, ບາງຄໍາຮ້ອງສະຫມັກຈະວາງສາຍ. ບັນຫາຂ້າງເທິງບໍ່ເກີດຂຶ້ນກັບການນໍາໃຊ້ 32 ບິດ.

ທຸກຄໍາຮ້ອງສະຫມັກ 16-bit DOS ແມ່ນເຮັດວຽກຢ່າງສົມບູນ. ທຸກປະເພດມາດຕະຖານຈາກທໍ່ໄປຫາຄໍາຮ້ອງສະຫມັກ DOS 16 ບິດຖືກເກັບເປັນເອກະສານຊົ່ວຄາວ; ປາຍທາງທໍ່ອື່ນໆຕ້ອງປິດກ່ອນທີ່ຈະໃຊ້ຄໍາຮ້ອງສະຫມັກ DOS 16bit. ທັງຫມົດມາດຕະຖານຜົນຜະລິດຫຼືຄວາມຜິດພາດຈາກການນໍາໃຊ້ DOS 16 bits ກັບທໍ່ແມ່ນເກັບກໍາເຂົ້າໄປໃນໄຟລ໌ຊົ່ວຄາວ; ຄໍາຮ້ອງສະຫມັກຕ້ອງຢຸດເຊົາກ່ອນທີ່ໄຟລ໌ຊົ່ວຄາວຈະຖືກນໍາໄປສູ່ຂັ້ນຕອນຕໍ່ໄປຂອງທໍ່. ນີ້ແມ່ນຍ້ອນການແກ້ໄຂຂໍ້ຜິດພາດສໍາລັບ Windows 95 bug ໃນການປະຕິບັດທໍ່, ແລະເປັນວິທີການມາດຕະຖານ Windows 95 DOS ແກະຈັດການທໍ່ເອງ.

ບາງຄໍາຮ້ອງສະຫມັກ, ເຊັ່ນ: command.com , ບໍ່ຄວນຈະຖືກປະຕິບັດການພົວພັນ. ຄໍາຮ້ອງສະຫມັກທີ່ເຂົ້າເຖິງປ່ອງຢ້ຽມ console ໂດຍກົງ, ແທນທີ່ຈະອ່ານຈາກຂໍ້ມູນເຂົ້າມາດຕະຖານຂອງເຂົາເຈົ້າແລະຂຽນໄປຍັງຜົນຜະລິດມາດຕະຖານຂອງເຂົາເຈົ້າອາດຈະລົ້ມເຫລວ, hang Tcl, ຫຼືວາງສາຍຖ້າລະບົບຂອງເຂົາເຈົ້າເອງບໍ່ມີໃຫ້ເຂົາເຈົ້າ.

Macintosh

ຄໍາສັ່ງ exec ບໍ່ໄດ້ຖືກປະຕິບັດແລະບໍ່ມີຢູ່ພາຍໃຕ້ Macintosh.

Unix

ຄໍາສັ່ງ exec ແມ່ນເຮັດວຽກຢ່າງເຕັມທີ່ແລະເຮັດວຽກຕາມທີ່ໄດ້ອະທິບາຍ.

ເບິ່ງຍັງ

error (n), open (n)

ຄໍາສໍາຄັນ

ດໍາເນີນ, pipeline, redirection, subprocess

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.