ວິທີການຂຽນແລະການ ນຳ ໃຊ້ຟັງຊັນຫອຍແລະຫໍສະ ໝຸດ ຕາມປະເພນີ
ໃນ Linux, ສະຄິບຫອຍຊ່ວຍໃຫ້ພວກເຮົາມີຫຼາຍວິທີທີ່ແຕກຕ່າງກັນລວມທັງການປະຕິບັດຫຼືແມ້ກະທັ້ງອັດຕະໂນມັດວຽກງານບໍລິຫານລະບົບບາງຢ່າງ, ການສ້າງເຄື່ອງມືສາຍ ຄຳ ສັ່ງງ່າຍໆແລະອີກຫຼາຍໆຢ່າງ.
ໃນຄູ່ມືນີ້, ພວກເຮົາຈະສະແດງໃຫ້ຜູ້ໃຊ້ Linux ໃໝ່ ຮູ້ບ່ອນເກັບຮັກສາຫອຍ shell ທີ່ ໜ້າ ເຊື່ອຖື, ອະທິບາຍວິທີການຂຽນຫນ້າທີ່ຫອຍແລະຫໍສະມຸດທີ່ໃຊ້ກັນ, ນຳ ໃຊ້ຟັງຊັນຈາກຫ້ອງສະຫມຸດໃນສະຄິບອື່ນ.
ບ່ອນທີ່ຈະເກັບ Shell Scripts
ເພື່ອ ດຳ ເນີນການສະຄິບຂອງທ່ານໂດຍບໍ່ຕ້ອງພິມເສັ້ນທາງເຕັມ/ຄົບຖ້ວນ, ພວກມັນຕ້ອງຖືກເກັບໄວ້ໃນບ່ອນ ໜຶ່ງ ໃນໄດເລກະທໍລີໃນຕົວແປ $PATH environment.
ເພື່ອກວດສອບ $PATH ຂອງທ່ານ, ອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
ໂດຍປົກກະຕິ, ຖ້າຖັງໄດເລກະທໍລີມີຢູ່ໃນລະບົບໂຮມຂອງຜູ້ໃຊ້, ມັນຈະຖືກລວມເຂົ້າໃນ $PATH ຂອງລາວໂດຍອັດຕະໂນມັດ. ທ່ານສາມາດເກັບສະຄິບແກະຂອງທ່ານຢູ່ບ່ອນນີ້.
ເພາະສະນັ້ນ, ສ້າງໄດເລກະທໍລີຖັງ (ເຊິ່ງອາດຈະເກັບສະຄິບ Perl, Awk ຫຼື Python ຫລືໂປແກຼມອື່ນໆ):
$ mkdir ~/bin
ຕໍ່ໄປ, ສ້າງໄດເລກະທໍລີທີ່ເອີ້ນວ່າ lib (ສັ້ນ ສຳ ລັບຫໍສະມຸດ) ບ່ອນທີ່ທ່ານຈະຮັກສາຫໍສະມຸດຂອງທ່ານເອງ. ທ່ານຍັງສາມາດເກັບຫໍສະ ໝຸດ ສຳ ລັບພາສາອື່ນໆເຊັ່ນ C, Python ແລະອື່ນໆ, ໃນນັ້ນ. ພາຍໃຕ້ມັນ, ສ້າງໄດເລກະທໍລີອື່ນທີ່ເອີ້ນວ່າ sh; ນີ້ໂດຍສະເພາະແມ່ນການເກັບຮັກສາຫ້ອງສະຫມຸດແກະທ່ານ:
$ mkdir -p ~/lib/sh
ສ້າງ ໜ້າ ທີ່ແລະຫ້ອງສະ ໝຸດ ຂອງທ່ານເອງ
ຟັງຊັນ shell ແມ່ນກຸ່ມ ຄຳ ສັ່ງທີ່ເຮັດ ໜ້າ ທີ່ພິເສດໃນສະຄິບ. ພວກເຂົາເຮັດວຽກຄ້າຍຄືກັນກັບຂັ້ນຕອນ, subroutines ແລະ ໜ້າ ທີ່ໃນພາສາການຂຽນໂປແກຼມອື່ນ.
syntax ສຳ ລັບການຂຽນຟັງຊັນແມ່ນ:
function_name() { list of commands }
ຍົກຕົວຢ່າງ, ທ່ານສາມາດຂຽນຟັງຊັນໃນ script ເພື່ອສະແດງວັນທີດັ່ງຕໍ່ໄປນີ້:
showDATE() {date;}
ທຸກໆຄັ້ງທີ່ທ່ານຕ້ອງການສະແດງວັນທີ, ພຽງແຕ່ຮ້ອງຂໍການເຮັດວຽກຂ້າງເທິງໂດຍໃຊ້ຊື່ຂອງມັນ:
$ showDATE
ຫໍສະ ໝຸດ ຫອຍເປັນພຽງ ໜັງ ສືແກະ, ຢ່າງໃດກໍ່ຕາມ, ທ່ານສາມາດຂຽນຫໍສະມຸດເພື່ອເກັບມ້ຽນ ໜ້າ ທີ່ຂອງທ່ານເທົ່ານັ້ນທີ່ທ່ານສາມາດໂທຈາກ ໜັງ ສືແກະອື່ນໆ.
ຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງຫ້ອງສະ ໝຸດ ທີ່ເອີ້ນວ່າ libMYFUNCS.sh ໃນ ~/lib/sh ຂອງຂ້ອຍທີ່ມີຕົວຢ່າງຫຼາຍ ໜ້າ ທີ່:
#!/bin/bash #Function to clearly list directories in PATH showPATH() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator for DIR in $PATH ; do echo $DIR ; done IFS="$oldifs" #restore old internal field separator } #Function to show logged user showUSERS() { echo -e “Below are the user logged on the system:\n” w } #Print a user’s details printUSERDETS() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator read -p "Enter user name to be searched:" uname #read username echo "" #read and store from a here string values into variables using : as a field delimiter read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator }
ບັນທຶກເອກະສານແລະເຮັດໃຫ້ສະຄິບ ດຳ ເນີນການໄດ້.
ວິທີການເອີ້ນເອົາຟັງຊັນຕ່າງໆຈາກຫໍສະມຸດ
ເພື່ອໃຊ້ ໜ້າ ທີ່ໃນ lib, ກ່ອນອື່ນ ໝົດ ທ່ານຕ້ອງການລວມເອົາ lib ໃນ script shell ເຊິ່ງ ໜ້າ ທີ່ຈະຖືກ ນຳ ໃຊ້, ໃນແບບຟອມລຸ່ມນີ້:
$ ./path/to/lib OR $ source /path/to/lib
ສະນັ້ນທ່ານອາດຈະໃຊ້ printUSERDETS ຟັງຊັນຈາກ lib ~/lib/sh/libMYFUNCS.sh ໃນສະຄິບອື່ນຕາມຮູບຂ້າງລຸ່ມນີ້.
ທ່ານບໍ່ ຈຳ ເປັນຕ້ອງຂຽນລະຫັດອື່ນໃນຄິບນີ້ເພື່ອພິມລາຍລະອຽດຂອງຜູ້ໃຊ້ສະເພາະ, ພຽງແຕ່ໂທຫາຟັງຊັນທີ່ມີຢູ່ແລ້ວ.
ເປີດເອກະສານ ໃໝ່ ທີ່ມີຊື່ test.sh:
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
ບັນທຶກມັນໄວ້, ຫຼັງຈາກນັ້ນເຮັດໃຫ້ສະຄິບທີ່ປະຕິບັດໄດ້ແລະ ດຳ ເນີນການ:
$ chmod 755 test.sh $ ./test.sh
ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ສະແດງໃຫ້ທ່ານຮູ້ບ່ອນເກັບມ້ຽນຫອຍທີ່ເຊື່ອຖືໄດ້, ວິທີການຂຽນ ໜ້າ ທີ່ແລະຫ້ອງສະ ໝຸດ ຂອງທ່ານເອງ, ຂໍຮ້ອງ ໜ້າ ທີ່ຈາກຫ້ອງສະ ໝຸດ ໃນສະຄິບແກະປົກກະຕິ.
ຕໍ່ໄປ, ພວກເຮົາຈະອະທິບາຍວິທີການຕັ້ງຄ່າທີ່ຖືກຕ້ອງຂອງ Vim ເປັນ IDE ສຳ ລັບການຂຽນອັກສອນ Bash. ຈົນກ່ວານັ້ນ, ສະເຫມີຕິດຕໍ່ກັບ TecMint ແລະຍັງແບ່ງປັນຄວາມຄິດຂອງທ່ານກ່ຽວກັບຄູ່ມືນີ້ຜ່ານແບບຟອມ ຄຳ ຄິດເຫັນຂ້າງລຸ່ມນີ້.