ການທ່ອງທ່ຽວທົ່ວໂລກຂອງ Linux BASH Scripting - ພາກທີ III
ບົດຂຽນຕໍ່ໄປນີ້ຂອງຊຸດ 'Shell Scripting' ໄດ້ຮັບການຕີລາຄາສູງແລະດ້ວຍເຫດນີ້ຂ້າພະເຈົ້າຈຶ່ງຂຽນບົດນີ້ເພື່ອຂະຫຍາຍຂະບວນການຮຽນທີ່ບໍ່ເຄີຍສິ້ນສຸດ.
<
ຄຳ ສຳ ຄັນແມ່ນ ຄຳ ສັບຫລືສັນຍາລັກທີ່ມີຄວາມ ໝາຍ ພິເສດຕໍ່ພາສາຄອມພິວເຕີ. ສັນຍາລັກແລະ ຄຳ ຕໍ່ໄປນີ້ມີຄວາມ ໝາຍ ພິເສດຕໍ່ 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)"
ນີ້ແມ່ນສະຄິບ ທຳ ມະດາແຕ່ມັນເຮັດວຽກບໍ່ແມ່ນວ່າງ່າຍດາຍຫຼາຍ.
<
ພວກເຮົາຮູ້ວ່າຜົນຜະລິດຂອງ ຄຳ ສັ່ງວັນທີແມ່ນວັນທີ, ແລະເວລາເປັນຊົ່ວໂມງ, ນາທີ, ທີສອງພ້ອມກັບປີ. ດັ່ງນັ້ນພວກເຮົາສາມາດໄດ້ຮັບຜົນຜະລິດໃນຊື່ໄຟລ໌ທີ່ຖືກຈັດຕັ້ງໂດຍບໍ່ມີໂອກາດຂອງການຊໍ້າຊ້ອນຊື່ 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
ທ່ານໄດ້ເຫັນວ່າມັນງ່າຍປານໃດທີ່ຈະສ້າງໂປແກຼມທີ່ມີປະສິດທິພາບດີຄືກັບການ ຄຳ ນວນວິທີງ່າຍໆດັ່ງກ່າວ. ມັນບໍ່ແມ່ນຈຸດຈົບ. ພວກເຮົາຈະປະກອບບົດຂຽນຢ່າງ ໜ້ອຍ ໜຶ່ງ ບົດຂອງຊຸດນີ້, ເຊິ່ງກວມເອົາທັດສະນະທີ່ກວ້າງຂວາງຈາກມຸມມອງການບໍລິຫານ.
ດຽວນີ້ ໝົດ ແລ້ວ. ໃນຖານະເປັນຜູ້ອ່ານແລະນັກວິຈານທີ່ດີທີ່ສຸດຢ່າລືມບອກພວກເຮົາວ່າທ່ານມັກຫຍັງຫຼາຍໃນບົດຄວາມນີ້ແລະສິ່ງທີ່ທ່ານຢາກເຫັນໃນບົດຂຽນໃນອະນາຄົດ. ມີ ຄຳ ຖາມໃດໆທີ່ຍິນດີຕ້ອນຮັບໃນ ຄຳ ເຫັນ. ຈົນກວ່າຈະມີສຸຂະພາບແຂງແຮງ, ປອດໄພແລະຕິດໃຈ. ມັກແລະແບ່ງປັນໃຫ້ພວກເຮົາແລະຊ່ວຍພວກເຮົາເຜີຍແຜ່.