ນີ້ແມ່ນຄໍາສັ່ງ lksh ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
lksh - ແກະ Korn ມໍລະດົກທີ່ສ້າງຂຶ້ນໃນ mksh
ສະຫຼຸບສັງລວມ
lksh [-+abCefhiklmnprUuvXx] [-+o ເລືອກ] [-c string | -s | ເອກະສານ [ໂຕ້ຖຽງ ...]]
ລາຍລະອຽດ
lksh ເປັນນາຍພາສາຄໍາສັ່ງທີ່ມີຈຸດປະສົງສະເພາະສໍາລັບການແລ່ນສະຄິບ shell ເກົ່າ. ມັນແມ່ນ
ການກໍ່ສ້າງໃນ mksh; ອ້າງອີງໃສ່ໜ້າຄູ່ມືຂອງມັນສຳລັບລາຍລະອຽດກ່ຽວກັບພາສາສະຄຣິບ. ມັນແມ່ນ
ແນະນໍາໃຫ້ພອດສະຄຣິບໄປຫາ mksh ແທນທີ່ຈະອີງໃສ່ມໍລະດົກຫຼື POSIX idiotic ບັງຄັບ
ພຶດຕິກໍາ, ນັບຕັ້ງແຕ່ພາສາຂຽນ MirBSD Korn Shell ແມ່ນສອດຄ່ອງຫຼາຍ.
ໃຫ້ສັງເກດວ່າມັນແນະນໍາໃຫ້ຮຽກຮ້ອງຢ່າງແຂງແຮງ lksh ຢ່າງຫນ້ອຍ -o ບວກ ທາງເລືອກ, ຖ້າບໍ່ແມ່ນ
ທັງນັ້ນ ແລະ -o sh, ເພື່ອໃຫ້ໄດ້ຢ່າງເຕັມສ່ວນຄວາມເຂົ້າກັນໄດ້ດີກວ່າມາດຕະຖານ POSIX (ເຊິ່ງແມ່ນ
ອາດຈະເປັນວ່າເປັນຫຍັງທ່ານໃຊ້ lksh ໃນໄລຍະ mksh ໃນສະຖານທີ່ທໍາອິດ) ຫຼື scripts ມໍລະດົກ, ຕາມລໍາດັບ.
LEGACY MODE
lksh ໃນປັດຈຸບັນມີຄວາມແຕກຕ່າງດັ່ງຕໍ່ໄປນີ້ຈາກ mksh:
· ບໍ່ມີການສະຫນັບສະຫນູນຢ່າງຊັດເຈນສໍາລັບການນໍາໃຊ້ການໂຕ້ຕອບ, ຫຼືການແກ້ໄຂບັນດາຄໍາສັ່ງຫຼື
ລະຫັດປະຫວັດສາດ. ດັ່ງນັ້ນ, lksh ບໍ່ເຫມາະສົມເປັນແກະເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຊ້, ບໍ່ວ່າຈະ; ໃຊ້ mksh
ແທນທີ່ຈະເປັນ.
· ສະຕຣິງ KSH_VERSION ກໍານົດ lksh ເປັນ “LEGACY KSH” ແທນ “MIRBSD KSH”. ຫມາຍເຫດ
ວ່າສ່ວນທີ່ເຫຼືອຂອງສະຕຣິງຮຸ່ນແມ່ນຄືກັນລະຫວ່າງສອງລົດຊາດຂອງແກະ, ແລະ
ພຶດຕິກໍາແລະຄວາມແຕກຕ່າງສາມາດປ່ຽນແປງລະຫວ່າງສະບັບ; ເບິ່ງໜ້າຄູ່ມືທີ່ມາພ້ອມກັບ
mksh(1) ສໍາລັບສະບັບທີ່ເອກະສານນີ້ໃຊ້ກັບ.
· lksh ໃຊ້ POSIX arithmetics, ເຊິ່ງມີຜົນກະທົບຫຼາຍ: ປະເພດຂໍ້ມູນສໍາລັບ
ເລກຄະນິດສາດເປັນເຈົ້າພາບ ISO C ຍາວ ປະເພດຂໍ້ມູນ. ການລົງລາຍເຊັນ integer wraparound ແມ່ນບໍ່ໄດ້ກໍານົດ
ພຶດຕິກຳ; ນີ້ຫມາຍຄວາມວ່າ ...
$ echo $((2147483647 + 1))
... ແມ່ນອະນຸຍາດໃຫ້, ເຊັ່ນ: ລຶບໄຟລ໌ທັງຫມົດໃນລະບົບຂອງທ່ານ (ຮູບທີ່ແຕກຕ່າງກັນສໍາລັບການ
ລະບົບທີ່ບໍ່ແມ່ນ 32-bit, ກົດລະບຽບບໍ່ໄດ້). ສັນຍານຂອງຜົນໄດ້ຮັບຂອງການດໍາເນີນງານຂອງໂມດູໂລ
ມີ operand ລົບຢ່າງໜ້ອຍໜຶ່ງອັນແມ່ນບໍ່ໄດ້ລະບຸ. Shift ການດໍາເນີນການກ່ຽວກັບຕົວເລກລົບ
ບໍ່ໄດ້ລະບຸ. ການແບ່ງຕົວເລກລົບທີ່ໃຫຍ່ທີ່ສຸດໂດຍ -1 ແມ່ນພຶດຕິກໍາທີ່ບໍ່ໄດ້ກໍານົດ.
compiler ໄດ້ຖືກອະນຸຍາດໃຫ້ລຶບຂໍ້ມູນທັງຫມົດແລະ crash ລະບົບຖ້າຫາກວ່າ Undefined Behavior
ເກີດຂຶ້ນ (ເບິ່ງຂ້າງເທິງສໍາລັບຕົວຢ່າງ).
· lksh ພຽງແຕ່ສະເຫນີຕົວອະທິບາຍໄຟລ໌ແບບດັ້ງເດີມສິບກັບສະຄິບ.
· ໂຕປະຕິບັດການເລກເລກຫມຸນບໍ່ສາມາດໃຊ້ໄດ້.
· ຕົວປະຕິບັດການເລກຄະນິດທີ່ປ່ຽນຈະເອົາບິດທັງໝົດຂອງຕົວປະຕິບັດການທີສອງເຂົ້າໃນບັນຊີ; ຖ້າພວກເຂົາ
ເກີນຄວາມແມ່ນຍໍາທີ່ອະນຸຍາດ, ຜົນໄດ້ຮັບແມ່ນບໍ່ຖືກກໍານົດ.
· GNU bash extension &> ເພື່ອປ່ຽນເສັ້ນທາງ stdout ແລະ stderr ໃນຫນຶ່ງໄປບໍ່ໄດ້ຖືກວິເຄາະ.
· ໄດ້ mksh ທາງເລືອກແຖວຄໍາສັ່ງ -T ແມ່ນບໍ່ມີ.
· ເວັ້ນເສຍແຕ່ວ່າ ທີ່ກໍານົດໄວ້ -o ບວກ ມີການເຄື່ອນໄຫວ, lksh ໃຊ້ໂຫມດແບບດັ້ງເດີມສະເຫມີສໍາລັບການກໍ່ສ້າງເຊັ່ນ:
$ set -- $(get ab:c "$@")
$ echo $?
POSIX ບັງຄັບໃຫ້ສະແດງ 0, ແຕ່ໂຫມດແບບດັ້ງເດີມຜ່ານລະດັບຄວາມຜິດພາດຈາກ
ໄດ້ getopt(1) ຄໍາສັ່ງ.
· ແຕກຕ່າງຈາກ AT&T UNIX ksh, mksh in -o ບວກ or -o sh ຮູບແບບແລະ lksh ບໍ່ເກັບໄຟລ໌
ຕົວອະທິບາຍ > 2 ສ່ວນຕົວຈາກຂະບວນການຍ່ອຍ.
· ຫນ້າທີ່ກໍານົດດ້ວຍ ຫນ້າທີ່ ຄໍາທີ່ສະຫງວນໄວ້ແບ່ງປັນທາງເລືອກຂອງແກະ (ທີ່ກໍານົດໄວ້ -o)
ແທນທີ່ຈະກໍານົດຂອບເຂດໃຫ້ເຂົາເຈົ້າ.
ໃຊ້ lksh ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net