ShellCheck - ເຄື່ອງມືທີ່ສະແດງໃຫ້ເຫັນ ຄຳ ເຕືອນແລະ ຄຳ ແນະ ນຳ ສຳ ລັບ Shell Scripts
ShellCheck ແມ່ນເຄື່ອງມືການວິເຄາະທີ່ສະຖຽນລະພາບເຊິ່ງສະແດງໃຫ້ເຫັນ ຄຳ ເຕືອນແລະ ຄຳ ແນະ ນຳ ທີ່ກ່ຽວຂ້ອງກັບລະຫັດທີ່ບໍ່ດີໃນສະຄິບແກະ bash/sh. ມັນສາມາດຖືກ ນຳ ໃຊ້ໃນຫລາຍໆດ້ານ: ຈາກເວບໂດຍການຕິດສະຄິບແກະຂອງທ່ານໃນບັນນາທິການທາງອິນເຕີເນັດ (Ace - ບັນນາທິການລະຫັດແບບຢືນຢັນທີ່ຂຽນເປັນພາສາ JavaScript) ໃນ https://www.shellcheck.net (ມັນຖືກປັບແຕ່ງໃຫ້ສະ ເໝີ ກັບ git ລ້າສຸດ ຄໍາຫມັ້ນສັນຍາ, ແລະແມ່ນວິທີທີ່ງ່າຍທີ່ສຸດທີ່ຈະໃຫ້ ShellCheck ໄປ) ສໍາລັບການຕອບຮັບທັນທີ.
ອີກທາງເລືອກ ໜຶ່ງ, ທ່ານສາມາດຕິດຕັ້ງມັນຢູ່ໃນເຄື່ອງຂອງທ່ານແລະແລ່ນຈາກປາຍ, ລວມມັນກັບບັນນາທິການຕົວ ໜັງ ສືຂອງທ່ານເຊັ່ນດຽວກັນກັບຊຸດສ້າງຫຼືທົດສອບຂອງທ່ານ.
ມີສາມຢ່າງທີ່ ShellCheck ເຮັດເປັນຫລັກ:
- ມັນຊີ້ໃຫ້ເຫັນແລະອະທິບາຍບັນຫາ syntax ຂອງຜູ້ເລີ່ມຕົ້ນແບບ ທຳ ມະດາທີ່ເຮັດໃຫ້ຫອຍແຄງສົ່ງຂໍ້ຄວາມຜິດພາດຈາກ cryptic.
- ມັນຊີ້ໃຫ້ເຫັນແລະອະທິບາຍບັນຫາແບບ semantic ໃນລະດັບປົກກະຕິທີ່ເຮັດໃຫ້ຫອຍມີພຶດຕິ ກຳ ແປກແລະຕ້ານກັບຄວາມຕັ້ງໃຈ.
- ມັນຍັງຊີ້ໃຫ້ເຫັນບັນດາເຫດການທີ່ຫຍໍ້ທໍ້, ແຈແລະກໍລະນີທີ່ອາດຈະເຮັດໃຫ້ຂໍ້ສະ ເໜີ ຂອງຜູ້ໃຊ້ຂັ້ນສູງລົ້ມເຫຼວພາຍໃຕ້ສະຖານະການໃນອະນາຄົດ.
ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການຕິດຕັ້ງແລະ ນຳ ໃຊ້ ShellCheck ໃນຫລາຍໆດ້ານເພື່ອຊອກຫາຂໍ້ບົກພ່ອງຫລືລະຫັດທີ່ບໍ່ດີໃນສະຄິບແກະຂອງທ່ານໃນ Linux.
ວິທີການຕິດຕັ້ງແລະໃຊ້ ShellCheck ໃນ Linux
ShellCheck ສາມາດຕິດຕັ້ງຢູ່ໃນທ້ອງຖິ່ນໄດ້ງ່າຍໂດຍຜ່ານຜູ້ຈັດການຊຸດຂອງທ່ານດັ່ງທີ່ສະແດງໄວ້.
# apt-get install shellcheck
# yum -y install epel-release # yum install ShellCheck
# dnf install ShellCheck
ເມື່ອ ShellCheck ຕິດຕັ້ງແລ້ວ, ລອງເບິ່ງວິທີການໃຊ້ ShellCheck ໃນຫລາຍວິທີທີ່ພວກເຮົາໄດ້ກ່າວມາກ່ອນ.
ເຂົ້າໄປທີ່ https://www.shellcheck.net ແລະວາງສະຄິບຂອງທ່ານລົງໃນບັນນາທິການ Ace ທີ່ທ່ານໃຫ້, ທ່ານຈະເຫັນຜົນຜະລິດຢູ່ທາງລຸ່ມຂອງບັນນາທິການດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້.
ໃນຕົວຢ່າງຕໍ່ໄປນີ້, ສະຄິບຫອຍທົດສອບປະກອບດ້ວຍສາຍຕໍ່ໄປນີ້:
#!/bin/bash #declare variables MINARGS=2 E_NOTROOT=50 E_MINARGS=100 #echo values of variables echo $MINARGS echo $E_NONROOT exit 0;
ຈາກ ໜ້າ ຈໍຂ້າງເທິງ, ຕົວແປສອງຕົວ ທຳ ອິດ E_NOTROOT ແລະ E_MINARGS ໄດ້ຖືກປະກາດແຕ່ບໍ່ໄດ້ໃຊ້, ShellCheck ລາຍງານເຫຼົ່ານີ້ວ່າເປັນ "ຂໍ້ຜິດພາດທີ່ແນະ ນຳ":
SC2034: E_NOTROOT appears unused. Verify it or export it. SC2034: E_MINARGS appears unused. Verify it or export it.
ຫຼັງຈາກນັ້ນອັນທີສອງ, ຊື່ທີ່ບໍ່ຖືກຕ້ອງ (ໃນ ຄຳ ຖະແຫຼງ echo $E_NONROOT) ຖືກໃຊ້ເພື່ອແອັກໂກ້ E_NOTROOT ຕົວປ່ຽນແປງ, ນັ້ນແມ່ນເຫດຜົນທີ່ວ່າ ShellCheck ສະແດງຂໍ້ຜິດພາດ:
SC2153: Possible misspelling: E_NONROOT may not be assigned, but E_NOTROOT is
ອີກເທື່ອ ໜຶ່ງ ເມື່ອທ່ານເບິ່ງ ຄຳ ສັ່ງຂອງແອັກໂກ້, ຕົວແປຕ່າງໆບໍ່ໄດ້ຖືກອ້າງອີງສອງເທື່ອ (ຊ່ວຍປ້ອງກັນບໍ່ໃຫ້ເກີດການປັ່ນປ່ວນແລະການແຍກ ຄຳ ສັບ), ດັ່ງນັ້ນ Shell Check ຈຶ່ງສະແດງ ຄຳ ເຕືອນ:
SC2086: Double quote to prevent globbing and word splitting.
ນອກນັ້ນທ່ານຍັງສາມາດ ດຳ ເນີນການ ShellCheck ຈາກເສັ້ນ ຄຳ ສັ່ງ, ພວກເຮົາຈະໃຊ້ສະຄິບແກະທີ່ຢູ່ຂ້າງເທິງດັ່ງຕໍ່ໄປນີ້:
$ shellcheck test.sh
ທ່ານຍັງສາມາດເບິ່ງ ຄຳ ແນະ ນຳ ແລະ ຄຳ ເຕືອນຂອງ ShellCheck ໂດຍກົງໃນຫຼາຍໆບັນນາທິການ, ນີ້ອາດຈະເປັນວິທີການທີ່ມີປະສິດທິພາບຫຼາຍຂື້ນໃນການ ນຳ ໃຊ້ ShellCheck, ເມື່ອທ່ານເກັບແຟ້ມເອກະສານ, ມັນຈະສະແດງໃຫ້ທ່ານຮູ້ຂໍ້ຜິດພາດຕ່າງໆໃນລະຫັດ.
ໃນ Vim, ໃຫ້ໃຊ້ ALE ຫຼື Syntastic (ພວກເຮົາຈະໃຊ້ສິ່ງນີ້):
ເລີ່ມຕົ້ນໂດຍການຕິດຕັ້ງ Pathogen ເພື່ອໃຫ້ງ່າຍຕໍ່ການຕິດຕັ້ງ synthesis. ດໍາເນີນການຄໍາສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອໃຫ້ໄດ້ເອກະສານ pathogen.vim ແລະໄດເລກະທໍລີທີ່ມັນຕ້ອງການ:
# mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
ຈາກນັ້ນຕື່ມສິ່ງນີ້ໃສ່ໃນແຟ້ມ ~/.vimrc ຂອງທ່ານ:
execute pathogen#infect()
ເມື່ອທ່ານໄດ້ຕິດຕັ້ງເຊື້ອພະຍາດ, ແລະຕອນນີ້ທ່ານສາມາດໃສ່ synthesis ເຂົ້າໄປໃນ ~/.vim/bundle ດັ່ງຕໍ່ໄປນີ້:
# cd ~/.vim/bundle && git clone --depth=1 https://github.com/vim-syntastic/syntastic.git
ຕໍ່ໄປ, ປິດ vim ແລະເລີ່ມຕົ້ນມັນ ສຳ ຮອງເພື່ອໂຫລດມັນ, ຫຼັງຈາກນັ້ນພິມ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
:Helptags
ຖ້າທຸກຢ່າງດີ, ທ່ານຄວນມີ ShellCheck ປະສົມປະສານກັບ Vim, ພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້ສະແດງໃຫ້ເຫັນວ່າມັນໃຊ້ໄດ້ແນວໃດໂດຍໃຊ້ສະຄິບດຽວກັນຂ້າງເທິງ.
ໃນກໍລະນີທີ່ທ່ານມີຂໍ້ຜິດພາດຫລັງຈາກປະຕິບັດຕາມຂັ້ນຕອນຂ້າງເທິງ, ຫຼັງຈາກນັ້ນທ່ານອາດຈະບໍ່ຕິດຕັ້ງ Pathogen ຢ່າງຖືກຕ້ອງ. ເຮັດຂັ້ນຕອນ ໃໝ່ ແຕ່ສິ່ງນີ້ຮັບປະກັນວ່າທ່ານໄດ້ເຮັດດັ່ງຕໍ່ໄປນີ້:
- ສ້າງທັງໄດເລກະທໍລີ ~/.vim/autoload ແລະ ~/.vim/bundle.
- ເພີ່ມເສັ້ນປະຕິບັດການ # ຕິດເຊື້ອ() ໃສ່ແຟ້ມ ~/.vimrc ຂອງທ່ານ.
- ໄດ້ມີ clone git ຂອງການສະແດງພາຍໃນ ~/.vim/ມັດ.
- ໃຊ້ສິດອະນຸຍາດທີ່ ເໝາະ ສົມເພື່ອເຂົ້າເຖິງບັນດາໄດເລກະທໍລີຂ້າງເທິງທັງ ໝົດ.
ທ່ານຍັງສາມາດໃຊ້ບັນນາທິການຄົນອື່ນກວດເບິ່ງລະຫັດທີ່ບໍ່ດີໃນ shell shell ເຊັ່ນ:
- ໃນ Emacs, ໃຊ້ Flycheck.
- ໃນ Sublime, ຈ້າງ SublimeLinter.
- ໃນ Atom, ໃຊ້ Linter.
- ໃນບັນນາທິການດັດແກ້ອື່ນໆສ່ວນໃຫຍ່ແມ່ນໃຊ້ GCC ທີ່ເຂົ້າກັນໄດ້ຜິດພາດ.
ໝາຍ ເຫດ: ໃຊ້ຄັງຂອງລະຫັດທີ່ບໍ່ດີເພື່ອ ດຳ ເນີນການ ShellChecking ຫຼາຍ.
ບ່ອນເກັບມ້ຽນຂອງ ShellCheck Github: https://github.com/koalaman/shellcheck
ນັ້ນແມ່ນມັນ! ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕິດຕັ້ງແລະໃຊ້ ShellCheck ເພື່ອຊອກຫາຂໍ້ບົກພ່ອງຫລືລະຫັດທີ່ບໍ່ດີໃນສະຄິບແກະຂອງທ່ານໃນ Linux. ແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບພວກເຮົາຜ່ານພາກສະແດງຄວາມເຫັນຂ້າງລຸ່ມນີ້.
ທ່ານຮູ້ຈັກເຄື່ອງມືອື່ນໆທີ່ຄ້າຍຄືກັນນີ້ບໍ? ຖ້າແມ່ນ, ຫຼັງຈາກນັ້ນແບ່ງປັນຂໍ້ມູນກ່ຽວກັບພວກເຂົາໃນ ຄຳ ເຫັນເຊັ່ນກັນ.