ວິທີການຂຽນແລະການ ນຳ ໃຊ້ຟັງຊັນຫອຍແລະຫໍສະ ໝຸດ ຕາມປະເພນີ


ໃນ 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 ແລະຍັງແບ່ງປັນຄວາມຄິດຂອງທ່ານກ່ຽວກັບຄູ່ມືນີ້ຜ່ານແບບຟອມ ຄຳ ຄິດເຫັນຂ້າງລຸ່ມນີ້.