ວິທີການປະຕິບັດ Syntax ການກວດສອບຮູບແບບການແກ້ໄຂໃນ Shell Scripts
ພວກເຮົາໄດ້ເລີ່ມຕົ້ນຊຸດ shell script debugging ໂດຍການອະທິບາຍຕົວເລືອກ debugging ທີ່ແຕກຕ່າງກັນແລະວິທີການເປີດໃຊ້ຮູບແບບ shell debugging.
ຫລັງຈາກຂຽນສະຄິບແກະຂອງທ່ານ, ພວກເຮົາແນະ ນຳ ໃຫ້ພວກເຮົາປະຕິບັດການກວດສອບ syntax ໃນສະຄິບກ່ອນທີ່ຈະ ດຳ ເນີນການ, ແທນທີ່ຈະເບິ່ງຜົນຜະລິດຂອງມັນເພື່ອຢືນຢັນວ່າພວກເຂົາເຮັດວຽກຖືກຕ້ອງ.
ໃນສ່ວນຂອງຊຸດນີ້, ພວກເຮົາຈະຜ່ານວິທີການ ນຳ ໃຊ້ ໂໝດ debugging ກວດສອບ syntax. ຈື່ໄວ້ວ່າພວກເຮົາໄດ້ອະທິບາຍຕົວເລືອກ debugging ທີ່ແຕກຕ່າງກັນໃນພາກ ທຳ ອິດຂອງຊຸດນີ້ແລະໃນທີ່ນີ້, ພວກເຮົາຈະໃຊ້ພວກມັນເພື່ອ ດຳ ເນີນການແກ້ໄຂ script.
ກ່ອນທີ່ພວກເຮົາຈະກ້າວໄປສູ່ຈຸດສຸມຫລັກຂອງ ຄຳ ແນະ ນຳ ນີ້, ໃຫ້ພວກເຮົາ ສຳ ຫຼວດແບບສັ້ນໆກ່ຽວກັບຮູບແບບການເວົ້າ. ມັນສາມາດໃຊ້ໄດ້ໂດຍຕົວເລືອກແກ້ໄຂບັນຫາ -v
ເຊິ່ງບອກໃຫ້ແກະສະແດງທຸກສາຍໃນສະຄິບໃນຂະນະທີ່ພວກເຂົາອ່ານຢູ່.
ເພື່ອສະແດງວິທີການເຮັດວຽກນີ້, ຕົວຢ່າງລຸ່ມນີ້ແມ່ນຕົວ ໜັງ ສືແກະສະຫຼັກເພື່ອແປງຮູບ PNG ເປັນຮູບແບບ JPG.
ພິມ (ຫລື ສຳ ເນົາແລະວາງ) ໃສ່ໃນແຟ້ມ.
#!/bin/bash #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" done exit 0
ຫຼັງຈາກນັ້ນບັນທຶກເອກະສານແລະເຮັດໃຫ້ສະຄິບ ດຳ ເນີນການໄດ້ໂດຍໃຊ້ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
$ chmod +x script.sh
ພວກເຮົາສາມາດເອີ້ນຕົວອັກສອນແລະສະແດງທຸກສາຍໃນມັນດັ່ງທີ່ພວກມັນຖືກອ່ານໂດຍແກະທີ່ຄ້າຍຄືດັ່ງນີ້:
$ bash -v script.sh
ກັບມາທີ່ຫົວຂໍ້ຂອງການເນັ້ນ ໜັກ ຂອງພວກເຮົາ, The -n
ເປີດໃຊ້ຮູບແບບການກວດສອບ syntax. ມັນແນະ ນຳ ໃຫ້ຫອຍສາມາດອ່ານ ຄຳ ສັ່ງທັງ ໝົດ ໂດຍພື້ນຖານ, ເຖິງຢ່າງໃດກໍ່ຕາມມັນຈະບໍ່ປະຕິບັດໃຫ້ມັນ, ມັນ (ແກະ) ພຽງແຕ່ກວດເບິ່ງ syntax ທີ່ໃຊ້.
ໃນກໍລະນີທີ່ມີຂໍ້ຜິດພາດໃນສະຄິບແກະຂອງທ່ານ, ຫອຍຈະສົ່ງຂໍ້ຜິດພາດຢູ່ປາຍ, ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຈະບໍ່ສະແດງຫຍັງເລີຍ.
syntax ສຳ ລັບການກວດສອບ syntax ທີ່ໃຊ້ໄດ້ແມ່ນມີດັ່ງນີ້:
$ bash -n script.sh
ເນື່ອງຈາກວ່າ syntax ໃນຄິບແມ່ນຖືກຕ້ອງ, ຄຳ ສັ່ງຂ້າງເທິງຈະບໍ່ສະແດງຜົນໃດໆ. ເພາະສະນັ້ນ, ໃຫ້ພວກເຮົາພະຍາຍາມເອົາ ຄຳ ທີ່ຖືກເຮັດແລ້ວ
ທີ່ປິດ ສຳ ລັບ loop ແລະເບິ່ງວ່າມັນສະແດງຂໍ້ຜິດພາດ:
ຂ້າງລຸ່ມນີ້ແມ່ນສະຄິບຫອຍທີ່ຖືກປັບປ່ຽນເພື່ອແບັກອັບຮູບພາບ png ເປັນຮູບແບບ jpg ທີ່ມີຂໍ້ບົກພ່ອງ.
#!/bin/bash #script with a bug #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" exit 0
ບັນທຶກເອກະສານ, ຫຼັງຈາກນັ້ນ ດຳ ເນີນການໃນຂະນະທີ່ ດຳ ເນີນການກວດສອບ syntax ໃນມັນ:
$ bash -n script.sh
ຈາກຜົນໄດ້ຮັບຂ້າງເທິງ, ພວກເຮົາສາມາດເຫັນໄດ້ວ່າມີບັນຫາກ່ຽວກັບ syntax ກັບອັກສອນຂອງພວກເຮົາ, ສຳ ລັບ loop ແມ່ນຂາດ ຄຳ ສັ່ງປິດ ເຮັດ
ແລະຫອຍໄດ້ຊອກຫາມັນຈົນເຖິງເອກະສານສິ້ນສຸດແລະເມື່ອມັນບໍ່ພົບ (ເຮັດແລ້ວ), ຫອຍນາງພິມຂໍ້ຜິດພາດຂອງ syntax:
script.sh: line 11: syntax error: unexpected end of file
ພວກເຮົາສາມາດປະສົມປະສານ ໂໝດ verbose ແລະ ໂໝດ ກວດສອບ syntax ພ້ອມກັນ:
$ bash -vn script.sh
ອີກທາງເລືອກ ໜຶ່ງ, ພວກເຮົາສາມາດເປີດໃຊ້ການກວດສອບ syntax ໂດຍການດັດແປງແຖວ ທຳ ອິດຂອງອັກສອນຂ້າງເທິງດັ່ງໃນຕົວຢ່າງຕໍ່ໄປ.
#!/bin/bash -n #altering the first line of a script to enable syntax checking #convert for image in *.png; do convert "$image" "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" exit 0
ຄືກັນກັບກ່ອນ, ປະຢັດເອກະສານແລະແລ່ນມັນໃນຂະນະທີ່ ດຳ ເນີນການກວດສອບ syntax:
$ ./script.sh script.sh: line 12: syntax error: unexpected end of file
ນອກ ເໜືອ ຈາກນີ້, ພວກເຮົາສາມາດຈ້າງ ຄຳ ສັ່ງທີ່ມີການຕິດຕັ້ງທີ່ໃຊ້ແກະເພື່ອເຮັດໃຫ້ຮູບແບບການ ກຳ ຈັດ debugging ໃນຄິບຂ້າງເທິງ.
ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ພວກເຮົາພຽງແຕ່ກວດເບິ່ງ syntax ຂອງ for for loop ໃນສະຄິບຂອງພວກເຮົາ.
#!/bin/bash #using set shell built-in command to enable debugging #convert #enable debugging set -n for image in *.png; do convert "$image" "${image%.png}.jpg" echo "image $image converted to ${image%.png}.jpg" #disable debugging set +n exit 0
ອີກເທື່ອ ໜຶ່ງ, ບັນທຶກເອກະສານແລະຂໍຂຽນສະຄິບ:
$ ./script.sh
ສະຫລຸບລວມແລ້ວ, ພວກເຮົາຄວນຮັບປະກັນສະ ເໝີ ວ່າພວກເຮົາກວດເບິ່ງຕົວ ໜັງ ສືແກະຂອງພວກເຮົາຢ່າງເປັນການເຄື່ອນໄຫວເພື່ອເກັບ ກຳ ຂໍ້ຜິດພາດໃດໆກ່ອນທີ່ຈະ ດຳ ເນີນການ.
ເພື່ອສົ່ງ ຄຳ ຖາມຫລື ຄຳ ຕິຊົມໃດໆກ່ຽວກັບ ຄຳ ແນະ ນຳ ນີ້ໃຫ້ພວກເຮົາ, ໃຊ້ແບບຟອມຕອບຮັບຂ້າງລຸ່ມນີ້. ໃນພາກທີສາມຂອງຊຸດນີ້, ພວກເຮົາຈະຍ້າຍໄປອະທິບາຍແລະ ນຳ ໃຊ້ຮູບແບບການ ກຳ ຈັດ debugging ແກະ.