Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม BASH

ท่องโลกของลินุกซ์ BASH Scripting – ตอนที่ III

บทความก่อนหน้านี้ของ ‘Shell Scripting ' ซีรีส์ได้รับความนิยมอย่างสูง ฉันจึงเขียนบทความนี้เพื่อขยายกระบวนการเรียนรู้ที่ไม่สิ้นสุด

ท่องโลกของลินุกซ์ BASH Scripting – ตอนที่ III
  1. ทำความเข้าใจเคล็ดลับภาษาสคริปต์ Linux Shell ขั้นพื้นฐาน – ตอนที่ 1
  2. 5 เชลล์สคริปต์สำหรับมือใหม่ Linux เพื่อเรียนรู้การเขียนโปรแกรมเชลล์ – ตอนที่ II
ทุบตีคีย์เวิร์ด

คำหลัก เป็นคำหรือสัญลักษณ์ที่มีความหมายพิเศษในภาษาคอมพิวเตอร์ สัญลักษณ์และคำต่อไปนี้มีความหมายพิเศษในการ ทุบตี เมื่อไม่มีเครื่องหมายคำพูดและคำแรกของคำสั่ง

<ก่อน>! esac select } case fi จากนั้น [[ do for until ]] ทำหน้าที่เสร็จแล้วในขณะที่ elifif เวลาอื่นใน {

ต่างจากภาษาคอมพิวเตอร์ส่วนใหญ่ Bash อนุญาตให้ใช้คำหลักเป็น ชื่อตัวแปร แม้ว่าสิ่งนี้จะทำให้สคริปต์อ่านยาก เพื่อให้เข้าใจสคริปต์ได้ ไม่ควรใช้คำสำคัญสำหรับชื่อตัวแปร

คำสั่งถูกนำมาใช้ในเชลล์เป็น $ (สั่งการ). คุณอาจต้องรวมเส้นทางคำสั่งแบบเต็ม เช่น $(/bin/date) เพื่อการดำเนินการที่ถูกต้อง

คุณอาจทราบเส้นทางของโปรแกรมเฉพาะโดยใช้ 'whereis ' สั่งการ. เช่น วันที่

[admin@wsxdn.com /]# โดยที่ datedate:/bin/date /usr/share/man/man1/date.1.gz

ก็เพียงพอแล้วสำหรับตอนนี้ เราจะไม่พูดถึงทฤษฎีเหล่านี้มากนัก มาถึงสคริปต์

ย้ายไดเรกทอรีการทำงานปัจจุบัน

ย้ายจากไดเร็กทอรีการทำงานปัจจุบันไปยังระดับใดก็ได้โดยเพียงแค่ระบุค่าตัวเลขที่ส่วนท้ายของสคริปต์ขณะดำเนินการ

#! /bin/bash LEVEL=$1 สำหรับ ((i =1; i <=LEVEL; i++)) ทำ CDIR=../$CDIR done cd $CDIR echo "คุณอยู่ใน:"$PWD exec /bin/bash 

บันทึกรหัสข้างต้นเป็น “up.sh “ บนเดสก์ท็อปของคุณ ทำให้ปฏิบัติการได้ (chmod 755 up.sh ). วิ่ง:

./up.sh 2 (จะย้ายไดเร็กทอรีการทำงานปัจจุบันขึ้นไปสองระดับ)
./up.sh 4 (จะย้ายไดเร็กทอรีการทำงานปัจจุบันขึ้นไปสี่ระดับ)

การใช้งานและขอบเขตการใช้งาน

ในสคริปต์ขนาดใหญ่ซึ่งมีโฟลเดอร์ภายในโฟลเดอร์ภายใน... มี ไลบรารี , ไบนารี , ไอคอน , ปฏิบัติการ ฯลฯ ในตำแหน่งอื่น คุณในฐานะนักพัฒนาสามารถใช้สคริปต์นี้เพื่อย้ายไปยังตำแหน่งที่ต้องการได้โดยอัตโนมัติ

หมายเหตุ :For เป็นลูปในสคริปต์ด้านบนและจะทำงานต่อไปจนกว่าค่าจะเป็นจริงสำหรับลูป

ตัวอย่างผลลัพธ์
[admin@wsxdn.com /]# chmod 755 up[admin@wsxdn.com /]# ./up.sh 2คุณอยู่ใน:/[admin@wsxdn.com /]# ./up.sh 4 คุณ อยู่ใน:/ [admin@wsxdn.com /]#

ดาวน์โหลด up.sh

สร้างไฟล์หรือโฟลเดอร์สุ่ม

สร้างไฟล์สุ่ม (โฟลเดอร์) โดยไม่มีโอกาสทำซ้ำ

#! /bin/bashecho "สวัสดี $USER";echo "$(uptime)">> "$(date)".txtecho "ไฟล์ของคุณกำลังถูกบันทึกไปที่ $(pwd)"

นี่เป็นสคริปต์แบบง่าย แต่ใช้งานได้ไม่ง่ายนัก

  1. ก้อง ' :พิมพ์ทุกอย่างที่เขียนในเครื่องหมายคำพูด
  2. $ ' :เป็นตัวแปรเชลล์
  3. >> ' :เอาต์พุตถูกเปลี่ยนเส้นทางไปยังเอาต์พุตของ date คำสั่งตามด้วย txt นามสกุล.

เราทราบผลลัพธ์ของ วันที่ คำสั่งคือ วันที่ และ เวลา ใน ชั่วโมง , นาที, วินาที พร้อมกับปี . ดังนั้นเราจึงสามารถส่งออกชื่อไฟล์ที่มีการจัดระเบียบได้โดยไม่ทำให้เกิดการซ้ำซ้อนของชื่อไฟล์ อาจมีประโยชน์มากเมื่อผู้ใช้ต้องการไฟล์ที่สร้างด้วย ประทับเวลา เพื่อใช้อ้างอิงในอนาคต

ตัวอย่างผลลัพธ์
[admin@wsxdn.com /]# ./randomfile.sh สวัสดีเซิฟเวอร์ ไฟล์ของคุณกำลังถูกบันทึกไปที่ /home/server/Desktop

คุณสามารถดูไฟล์ที่สร้างขึ้นบนเดสก์ท็อปด้วยวันที่และเวลาปัจจุบันของวันนี้

[admin@wsxdn.com /]# 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 เซิฟเวอร์

ดาวน์โหลด randomfile.sh

สคริปต์เพื่อรวบรวมข้อมูลเครือข่าย

รวบรวมข้อมูลเครือข่ายบน Linux เซิร์ฟเวอร์ สคริปต์มีขนาดใหญ่เกินไป และไม่สามารถโพสต์โค้ดทั้งหมดและเอาต์พุตของสคริปต์ได้ที่นี่ ดังนั้น คุณควรดาวน์โหลดสคริปต์โดยใช้ลิงก์ดาวน์โหลดด้านล่างและทดสอบด้วยตัวเอง

หมายเหตุ :คุณอาจต้องติดตั้ง lsb-core แพ็คเกจและแพ็คเกจและการพึ่งพาอื่น ๆ ที่จำเป็น ฉลาด หรือ ยำ แพ็คเกจที่จำเป็น แน่นอนว่าคุณต้อง รูท เพื่อเรียกใช้สคริปต์เนื่องจากคำสั่งส่วนใหญ่ที่ใช้ในที่นี้ได้รับการกำหนดค่าให้เรียกใช้เป็น root .

ตัวอย่างผลลัพธ์
[admin@wsxdn.com /]# ./collectnetworkinfo.sh ข้อมูลการกำหนดค่าเครือข่ายที่เขียนถึง network.20-07-13.info.txt . โปรดส่งอีเมลไฟล์นี้ไปที่ admin@wsxdn.com_provider.com . ktop

คุณสามารถเปลี่ยนที่อยู่อีเมลข้างต้นในสคริปต์เพื่อให้ส่งถึงคุณทางไปรษณีย์ ไฟล์ที่สร้างขึ้นโดยอัตโนมัติสามารถดูได้

ดาวน์โหลด collectnetworkinfo.sh

สคริปต์เพื่อแปลง UPPERCASE เป็นตัวพิมพ์เล็ก

สคริปต์ที่แปลง ตัวพิมพ์ใหญ่ ถึง ตัวพิมพ์เล็ก และเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ข้อความ “small.txt ” ซึ่งปรับเปลี่ยนได้ตามต้องการ

#!/bin/bash echo -n "Enter File Name :" อ่าน fileName if [ ! -f $fileName ]; จากนั้น echo "ไม่มีชื่อไฟล์ $fileName" exit 1 fi tr '[A-Z]' '[a-z]' <$fileName>> small.txt

สคริปต์ด้านบนนี้สามารถแปลงตัวพิมพ์ของไฟล์ที่มีความยาวเท่าใดก็ได้ด้วยการคลิกเพียงครั้งเดียวจาก ตัวพิมพ์ใหญ่ ถึง ตัวพิมพ์เล็ก และในทางกลับกัน หากจำเป็น โดยมีการดัดแปลงเล็กน้อย

ตัวอย่างผลลัพธ์
[admin@wsxdn.com /]# ./convertlowercase.sh Enter File Name :a.txt ไฟล์เริ่มต้น:ABCDEFGHIJK...

ไฟล์ใหม่ (small.txt ) เอาต์พุต:

abcdefghijk...

ดาวน์โหลด convertlowercase.sh

โปรแกรมเครื่องคิดเลขอย่างง่าย

#! /bin/bash clear sum=0 i="y" echo " Enter one no." อ่าน n1 echo "ป้อนหมายเลขที่สอง" อ่าน n2 ในขณะที่ [ $i ="y" ] ทำ echo "1.Addition" echo "2.Subtraction" echo "3.Multiplication" echo "4.Division" echo "Enter your choice" อ่านกรณี $ch ใน 1) sum=`expr $n1 + $n2` echo "Sum ="$sum;; 2) sum=`expr $n1 - $n2` echo "Sub ="$ ผลรวม;; 3) sum=`expr $n1 \* $n2` echo "Mul ="$ ผลรวม;; 4) sum=`expr $n1 / $n2` echo "Div ="$ ผลรวม;; *)echo "ตัวเลือกไม่ถูกต้อง";; esac echo "คุณต้องการดำเนินการต่อ (y/n)) หรือไม่" อ่าน i ถ้า [ $i !="y" ] จากนั้นออกจาก fi เสร็จแล้ว
ตัวอย่างผลลัพธ์
[admin@wsxdn.com /]# ./simplecalc.sh ป้อนหมายเลขหนึ่ง 12 ป้อนหมายเลขที่สอง 14 1.การบวก 2.การลบ 3.การคูณ 4.การแบ่ง ป้อนตัวเลือกของคุณ 1 ผลรวม =26 คุณต้องการทำต่อ (Y/n)) ? y1.การบวก 2.การลบ 3.การคูณ 4.การแบ่ง ป้อนตัวเลือกของคุณ 3 mul =14812คุณต้องการดำเนินการต่อ (y/n)) หรือไม่ n

ดาวน์โหลด simplecalc.sh

คุณเห็นไหมว่าการสร้างโปรแกรมที่ทรงพลังนั้นง่ายเพียงใดในการคำนวณด้วยวิธีง่ายๆ มันไม่ใช่จุดจบ เราจะรวบรวมบทความในชุดนี้อีกอย่างน้อยหนึ่งบทความ ซึ่งครอบคลุมมุมมองกว้างๆ จากมุมมองของฝ่ายบริหาร

นั่นคือทั้งหมดที่สำหรับตอนนี้. ในฐานะผู้อ่านและนักวิจารณ์ที่ดีที่สุด อย่าลืมบอกเราว่าคุณชอบอะไรและชอบอะไรในบทความนี้มากน้อยเพียงใด และสิ่งที่คุณต้องการเห็นในบทความต่อๆ ไป คำถามใด ๆ ยินดีต้อนรับอย่างมากในความคิดเห็น จนกว่าจะถึงตอนนั้น สุขภาพดี , ปลอดภัย และ ปรับแต่ง . ถูกใจ และ แบ่งปัน เราและช่วยให้เราแพร่กระจาย