ການທ່ອງທ່ຽວທົ່ວໂລກຂອງ Linux BASH Scripting - ພາກທີ III


ບົດຂຽນຕໍ່ໄປນີ້ຂອງຊຸດ 'Shell Scripting' ໄດ້ຮັບການຕີລາຄາສູງແລະດ້ວຍເຫດນີ້ຂ້າພະເຈົ້າຈຶ່ງຂຽນບົດນີ້ເພື່ອຂະຫຍາຍຂະບວນການຮຽນທີ່ບໍ່ເຄີຍສິ້ນສຸດ.

<

  • ເຂົ້າໃຈ ຄຳ ແນະ ນຳ ກ່ຽວກັບການຂຽນພາສາ Linux Shell ຂັ້ນພື້ນຖານ - ສ່ວນທີ I
  • 5 ສະຄິບ Shell ສຳ ລັບ Linux ໃໝ່ ທີ່ຢາກຮຽນຮູ້ການຂຽນໂປແກຼມ Shell - ພາກທີ II
  • ຄຳ ສຳ ຄັນແມ່ນ ຄຳ ສັບຫລືສັນຍາລັກທີ່ມີຄວາມ ໝາຍ ພິເສດຕໍ່ພາສາຄອມພິວເຕີ. ສັນຍາລັກແລະ ຄຳ ຕໍ່ໄປນີ້ມີຄວາມ ໝາຍ ພິເສດຕໍ່ Bash ໃນເວລາທີ່ພວກເຂົາບໍ່ຖືກຄັດເລືອກແລະ ຄຳ ທຳ ອິດຂອງ ຄຳ ສັ່ງ.

    ! 			esac 			select 		} 
    case 			fi 			then 		[[ 
    do 			for 			until 		]] 
    done 			function 		while 		elif
    if 			time 			else 		in 		{

    ຕ່າງຈາກພາສາຄອມພິວເຕີສ່ວນຫຼາຍ, Bash ອະນຸຍາດໃຫ້ຄໍາທີ່ໃຊ້ເປັນຊື່ຕົວແປ, ເຖິງແມ່ນວ່າສິ່ງນີ້ສາມາດເຮັດໃຫ້ອັກສອນຍາກອ່ານ. ເພື່ອໃຫ້ສະຄິບເຂົ້າໃຈໄດ້, ຄຳ ສຳ ຄັນບໍ່ຄວນໃຊ້ ສຳ ລັບຊື່ທີ່ມີຕົວແປ.

    ຄຳ ສັ່ງຈະຖືກປະຕິບັດໃນແກະເປັນ $ (ຄຳ ສັ່ງ). ທ່ານອາດຈະຕ້ອງລວມເອົາເສັ້ນທາງທີ່ເຕັມໄປດ້ວຍ ຄຳ ສັ່ງ. ຕົວຢ່າງ:, & # 36 (/ ຖັງ/ວັນທີ), ສຳ ລັບການປະຕິບັດທີ່ຖືກຕ້ອງ.

    ທ່ານອາດຈະຮູ້ເສັ້ນທາງຂອງໂປແກຼມສະເພາະໂດຍໃຊ້ ຄຳ ສັ່ງ 'whereis'. ເຊັ່ນ: ວັນທີໃນຂະນະທີ່

     whereis date
    date: /bin/date /usr/share/man/man1/date.1.gz

    ດຽວນີ້ພໍແລ້ວ. ພວກເຮົາຈະບໍ່ເວົ້າຫຼາຍກ່ຽວກັບທິດສະດີເຫຼົ່ານີ້ດຽວນີ້. ມາຮອດ Scripts.

    ຍ້າຍປື້ມຄູ່ມືການເຮັດວຽກໃນປະຈຸບັນ

    ຍ້າຍຈາກໄດເລກະທໍລີເຮັດວຽກໃນປະຈຸບັນເຖິງລະດັບໃດ ໜຶ່ງ ໂດຍພຽງແຕ່ໃຫ້ຄ່າຕົວເລກໃນຕອນທ້າຍຂອງ script ໃນຂະນະທີ່ ດຳ ເນີນການ.

    #! /bin/bash 
    LEVEL=$1 
    for ((i = 1; i <= LEVEL; i++)) 
    do 
    CDIR=../$CDIR 
    done 
    cd $CDIR 
    echo "You are in: "$PWD 
    exec /bin/bash

    ບັນທຶກລະຫັດຂ້າງເທິງນີ້ວ່າ“ up.sh“, ຢູ່ເທິງ ໜ້າ ຈໍຂອງທ່ານ. ເຮັດໃຫ້ມັນສາມາດປະຕິບັດໄດ້ (chmod 755 up.sh). ແລ່ນ:

    ./up.sh 2 (ຈະຍ້າຍໄດເລກະທໍລີທີ່ເຮັດວຽກຢູ່ໃນສອງລະດັບຂື້ນມາ).
    ./up.sh 4 (ຈະຍ້າຍໄດເລກະທໍລີເຮັດວຽກຢູ່ໃນລະດັບ 4 ຂື້ນໄປ).

    ໃນສະຄິບທີ່ໃຫຍ່ກວ່າເຊິ່ງບັນຈຸແຟ້ມຢູ່ໃນໂຟນເດີພາຍໃນ…ມີຫ້ອງສະຫມຸດ, ໄບນາລີ, ຮູບສັນຍາລັກ, ການປະຕິບັດແລະອື່ນໆທີ່ຢູ່ຕ່າງກັນ, ທ່ານເປັນນັກພັດທະນາສາມາດປະຕິບັດສະຄິບນີ້ເພື່ອຍ້າຍໄປທີ່ທີ່ຕ້ອງການໃນແບບອັດຕະໂນມັດ.

    ໝາຍ ເຫດ: ສຳ ລັບແມ່ນ loop ໃນຄິບຂ້າງເທິງແລະມັນຈະ ດຳ ເນີນການຕໍ່ໄປຈົນກວ່າຄ່າຕ່າງໆຈະເປັນຄວາມຈິງ ສຳ ລັບ loop.

     chmod 755 up
     ./up.sh 2
    You are in: /
    
     ./up.sh 4 
    You are in: / 
    
    

    ສ້າງແຟ້ມ Random File ຫລື Folder

    ສ້າງໄຟລ໌ແບບສຸ່ມ (ໂຟນເດີ) ໂດຍບໍ່ມີໂອກາດຊໍ້າຊ້ອນ.

    #! /bin/bash
    
    echo "Hello $USER";
    echo "$(uptime)" >> "$(date)".txt
    echo "Your File is being saved to $(pwd)"

    ນີ້ແມ່ນສະຄິບ ທຳ ມະດາແຕ່ມັນເຮັດວຽກບໍ່ແມ່ນວ່າງ່າຍດາຍຫຼາຍ.

    <

  • ‘echo’: ພິມທຸກສິ່ງທຸກຢ່າງທີ່ຂຽນໄວ້ໃນວົງຢືມ.
  • ‘$ $: ແມ່ນຕົວແປຂອງຫອຍ.
  • <>>> <: ຜົນໄດ້ຮັບຖືກໂອນໄປຫາຜົນຜະລິດຂອງ ຄຳ ສັ່ງວັນທີຕາມດ້ວຍການຂະຫຍາຍ txt.
  • ພວກເຮົາຮູ້ວ່າຜົນຜະລິດຂອງ ຄຳ ສັ່ງວັນທີແມ່ນວັນທີ, ແລະເວລາເປັນຊົ່ວໂມງ, ນາທີ, ທີສອງພ້ອມກັບປີ. ດັ່ງນັ້ນພວກເຮົາສາມາດໄດ້ຮັບຜົນຜະລິດໃນຊື່ໄຟລ໌ທີ່ຖືກຈັດຕັ້ງໂດຍບໍ່ມີໂອກາດຂອງການຊໍ້າຊ້ອນຊື່ filename. ມັນອາດຈະເປັນປະໂຫຍດຫຼາຍເມື່ອຜູ້ໃຊ້ຕ້ອງການເອກະສານທີ່ຖືກສ້າງຂື້ນດ້ວຍບັດເວລາ ສຳ ລັບການອ້າງອີງໃນອະນາຄົດ.

     ./randomfile.sh  
    Hello server 
    Your File is being saved to /home/server/Desktop

    ທ່ານສາມາດເບິ່ງເອກະສານທີ່ຖືກສ້າງຂື້ນເທິງ ໜ້າ ຈໍດ້ວຍວັນເວລາຂອງມື້ນີ້ແລະເວລາປະຈຸບັນ.

     nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt 
    13:51:52 up  3:54,  1 user,  load average: 0.09, 0.12, 0.08

    ການປະຕິບັດລາຍລະອຽດເພີ່ມເຕີມຂອງບົດຂຽນຂ້າງເທິງແມ່ນໃຫ້ຢູ່ລຸ່ມນີ້, ເຊິ່ງເຮັດວຽກກ່ຽວກັບຫຼັກການຂ້າງເທິງແລະມີປະໂຫຍດຫຼາຍໃນການເກັບ ກຳ ຂໍ້ມູນເຄືອຂ່າຍຂອງເຄື່ອງແມ່ຂ່າຍ Linux.

    ສະຄິບເພື່ອເກັບ ກຳ ຂໍ້ມູນເຄືອຂ່າຍ

    ຮວບຮວມຂໍ້ມູນເຄືອຂ່າຍໃນ Linux server. ສະຄິບໃຫຍ່ເກີນໄປແລະບໍ່ສາມາດໂພດລະຫັດທັງ ໝົດ ແລະຜົນຜະລິດຂອງສະຄິບໄດ້ທີ່ນີ້. ດັ່ງນັ້ນ, ມັນດີກວ່າທ່ານສາມາດດາວໂຫລດສະຄິບໂດຍໃຊ້ລິ້ງດາວໂຫລດຂ້າງລຸ່ມນີ້ແລະທົດສອບຕົວທ່ານເອງ.

    ໝາຍ ເຫດ: ທ່ານອາດຈະຕ້ອງຕິດຕັ້ງ lsb-core package ແລະຊຸດອື່ນໆທີ່ຕ້ອງການແລະເພິ່ງພາອາໄສ. ເຫມາະສົມຫຼື Yum ຊຸດທີ່ຕ້ອງການ. ແນ່ນອນວ່າທ່ານ ຈຳ ເປັນຕ້ອງເປັນຮາກເພື່ອ ດຳ ເນີນການສະຄິບເພາະວ່າ ຄຳ ສັ່ງສ່ວນໃຫຍ່ທີ່ໃຊ້ຢູ່ນີ້ແມ່ນຖືກຕັ້ງຄ່າໃຫ້ໃຊ້ເປັນຮາກ.

     ./collectnetworkinfo.sh  
    
    The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to [email _provider.com. ktop

    ທ່ານສາມາດປ່ຽນທີ່ຢູ່ອີເມວຂ້າງເທິງນີ້ໃນສະຄິບຂອງທ່ານເພື່ອໃຫ້ມັນຖືກສົ່ງໃຫ້ທ່ານ. ເອກະສານທີ່ຜະລິດໂດຍອັດຕະໂນມັດສາມາດເບິ່ງໄດ້.

    ສະຄິບທີ່ຈະແປງ UPPERCASE ເປັນຕົວນ້ອຍ

    ຕົວອັກສອນທີ່ປ່ຽນ UPPERCASE ໃຫ້ເປັນຕົວນ້ອຍແລະປ່ຽນເສັ້ນທາງຜົນຜະລິດໄປເປັນເອກະສານຂໍ້ຄວາມ“ small.txt” ເຊິ່ງສາມາດແກ້ໄຂໄດ້ຕາມຄວາມຕ້ອງການ.

    #!/bin/bash 
    
    echo -n "Enter File Name : " 
    read fileName 
    
    if [ ! -f $fileName ]; then 
      echo "Filename $fileName does not exists" 
      exit 1 
    fi 
    
    tr '[A-Z]' '[a-z]' < $fileName >> small.txt

    ສະຄິບຂ້າງເທິງນີ້ສາມາດປ່ຽນກໍລະນີຂອງເອກະສານທີ່ມີຄວາມຍາວໃດໆດ້ວຍການກົດປຸ່ມດຽວຈາກ uppercase ເປັນໂຕນ້ອຍແລະໃນທາງກັບກັນຖ້າຕ້ອງການ, ໂດຍມີການດັດແປງເລັກນ້ອຍ.

     ./convertlowercase.sh  
    Enter File Name : a.txt 
    
    Initial File: 
    A
    B
    C
    D
    E
    F
    G
    H
    I
    J
    K
    ...

    ຜົນຜະລິດ File ໃໝ່ (small.txt):

    a
    b
    c
    d
    e
    f
    g
    h
    i
    j
    k
    ...

    ໂຄງການຄິດໄລ່ງ່າຍດາຍ

    #! /bin/bash 
    clear 
    sum=0 
    i="y" 
    
    echo " Enter one no." 
    read n1 
    echo "Enter second no." 
    read n2 
    while [ $i = "y" ] 
    do 
    echo "1.Addition" 
    echo "2.Subtraction" 
    echo "3.Multiplication" 
    echo "4.Division" 
    echo "Enter your choice" 
    read ch 
    case $ch in 
        1)sum=`expr $n1 + $n2` 
         echo "Sum ="$sum;; 
            2)sum=`expr $n1 - $n2` 
         echo "Sub = "$sum;; 
        3)sum=`expr $n1 \* $n2` 
         echo "Mul = "$sum;; 
        4)sum=`expr $n1 / $n2` 
         echo "Div = "$sum;; 
        *)echo "Invalid choice";; 
    esac 
    echo "Do u want to continue (y/n)) ?" 
    read i 
    if [ $i != "y" ] 
    then 
        exit 
    fi 
    done
     ./simplecalc.sh 
    
    Enter one no. 
    12 
    Enter second no. 
    14 
    1.Addition 
    2.Subtraction 
    3.Multiplication 
    4.Division 
    Enter your choice 
    1 
    Sum =26 
    Do u want to continue (y/n)) ? 
    y
    1.Addition 
    2.Subtraction 
    3.Multiplication 
    4.Division 
    Enter your choice 
    3 
    mul = 14812
    Do u want to continue (y/n)) ? 
    n

    ທ່ານໄດ້ເຫັນວ່າມັນງ່າຍປານໃດທີ່ຈະສ້າງໂປແກຼມທີ່ມີປະສິດທິພາບດີຄືກັບການ ຄຳ ນວນວິທີງ່າຍໆດັ່ງກ່າວ. ມັນບໍ່ແມ່ນຈຸດຈົບ. ພວກເຮົາຈະປະກອບບົດຂຽນຢ່າງ ໜ້ອຍ ໜຶ່ງ ບົດຂອງຊຸດນີ້, ເຊິ່ງກວມເອົາທັດສະນະທີ່ກວ້າງຂວາງຈາກມຸມມອງການບໍລິຫານ.

    ດຽວນີ້ ໝົດ ແລ້ວ. ໃນຖານະເປັນຜູ້ອ່ານແລະນັກວິຈານທີ່ດີທີ່ສຸດຢ່າລືມບອກພວກເຮົາວ່າທ່ານມັກຫຍັງຫຼາຍໃນບົດຄວາມນີ້ແລະສິ່ງທີ່ທ່ານຢາກເຫັນໃນບົດຂຽນໃນອະນາຄົດ. ມີ ຄຳ ຖາມໃດໆທີ່ຍິນດີຕ້ອນຮັບໃນ ຄຳ ເຫັນ. ຈົນກວ່າຈະມີສຸຂະພາບແຂງແຮງ, ປອດໄພແລະຕິດໃຈ. ມັກແລະແບ່ງປັນໃຫ້ພວກເຮົາແລະຊ່ວຍພວກເຮົາເຜີຍແຜ່.