บทความก่อนหน้านี้ของ ‘Shell Scripting ' ซีรีส์ได้รับความนิยมอย่างสูง ฉันจึงเขียนบทความนี้เพื่อขยายกระบวนการเรียนรู้ที่ไม่สิ้นสุด
- ทำความเข้าใจเคล็ดลับภาษาสคริปต์ Linux Shell ขั้นพื้นฐาน – ตอนที่ 1
- 5 เชลล์สคริปต์สำหรับมือใหม่ Linux เพื่อเรียนรู้การเขียนโปรแกรมเชลล์ – ตอนที่ II
ทุบตีคีย์เวิร์ด
คำหลัก เป็นคำหรือสัญลักษณ์ที่มีความหมายพิเศษในภาษาคอมพิวเตอร์ สัญลักษณ์และคำต่อไปนี้มีความหมายพิเศษในการ ทุบตี เมื่อไม่มีเครื่องหมายคำพูดและคำแรกของคำสั่ง
<ก่อน>! esac select } case fi จากนั้น [[ do for until ]] ทำหน้าที่เสร็จแล้วในขณะที่ elifif เวลาอื่นใน {ต่างจากภาษาคอมพิวเตอร์ส่วนใหญ่ Bash อนุญาตให้ใช้คำหลักเป็น ชื่อตัวแปร แม้ว่าสิ่งนี้จะทำให้สคริปต์อ่านยาก เพื่อให้เข้าใจสคริปต์ได้ ไม่ควรใช้คำสำคัญสำหรับชื่อตัวแปร
คำสั่งถูกนำมาใช้ในเชลล์เป็น $ (สั่งการ). คุณอาจต้องรวมเส้นทางคำสั่งแบบเต็ม เช่น $(/bin/date) เพื่อการดำเนินการที่ถูกต้อง
คุณอาจทราบเส้นทางของโปรแกรมเฉพาะโดยใช้ 'whereis ' สั่งการ. เช่น วันที่
[[email protected] /]# โดยที่ 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 เป็นลูปในสคริปต์ด้านบนและจะทำงานต่อไปจนกว่าค่าจะเป็นจริงสำหรับลูป
ตัวอย่างผลลัพธ์
[[email protected] /]# chmod 755 up[[email protected] /]# ./up.sh 2คุณอยู่ใน:/[[email protected] /]# ./up.sh 4 คุณ อยู่ใน:/ [[email protected] /]#ดาวน์โหลด up.sh
สร้างไฟล์หรือโฟลเดอร์สุ่ม
สร้างไฟล์สุ่ม (โฟลเดอร์) โดยไม่มีโอกาสทำซ้ำ
#! /bin/bashecho "สวัสดี $USER";echo "$(uptime)">> "$(date)".txtecho "ไฟล์ของคุณกำลังถูกบันทึกไปที่ $(pwd)"นี่เป็นสคริปต์แบบง่าย แต่ใช้งานได้ไม่ง่ายนัก
- ‘ก้อง ' :พิมพ์ทุกอย่างที่เขียนในเครื่องหมายคำพูด
- ‘$ ' :เป็นตัวแปรเชลล์
- ‘>> ' :เอาต์พุตถูกเปลี่ยนเส้นทางไปยังเอาต์พุตของ date คำสั่งตามด้วย txt นามสกุล.
เราทราบผลลัพธ์ของ วันที่ คำสั่งคือ วันที่ และ เวลา ใน ชั่วโมง , นาที, วินาที พร้อมกับปี . ดังนั้นเราจึงสามารถส่งออกชื่อไฟล์ที่มีการจัดระเบียบได้โดยไม่ทำให้เกิดการซ้ำซ้อนของชื่อไฟล์ อาจมีประโยชน์มากเมื่อผู้ใช้ต้องการไฟล์ที่สร้างด้วย ประทับเวลา เพื่อใช้อ้างอิงในอนาคต
ตัวอย่างผลลัพธ์
[[email protected] /]# ./randomfile.sh สวัสดีเซิฟเวอร์ ไฟล์ของคุณกำลังถูกบันทึกไปที่ /home/server/Desktopคุณสามารถดูไฟล์ที่สร้างขึ้นบนเดสก์ท็อปด้วยวันที่และเวลาปัจจุบันของวันนี้
[[email protected] /]# 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 .
ตัวอย่างผลลัพธ์
[[email protected] /]# ./collectnetworkinfo.sh ข้อมูลการกำหนดค่าเครือข่ายที่เขียนถึง network.20-07-13.info.txt . โปรดส่งอีเมลไฟล์นี้ไปที่ [email protected]_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สคริปต์ด้านบนนี้สามารถแปลงตัวพิมพ์ของไฟล์ที่มีความยาวเท่าใดก็ได้ด้วยการคลิกเพียงครั้งเดียวจาก ตัวพิมพ์ใหญ่ ถึง ตัวพิมพ์เล็ก และในทางกลับกัน หากจำเป็น โดยมีการดัดแปลงเล็กน้อย
ตัวอย่างผลลัพธ์
[[email protected] /]# ./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 เสร็จแล้วตัวอย่างผลลัพธ์
[[email protected] /]# ./simplecalc.sh ป้อนหมายเลขหนึ่ง 12 ป้อนหมายเลขที่สอง 14 1.การบวก 2.การลบ 3.การคูณ 4.การแบ่ง ป้อนตัวเลือกของคุณ 1 ผลรวม =26 คุณต้องการทำต่อ (Y/n)) ? y1.การบวก 2.การลบ 3.การคูณ 4.การแบ่ง ป้อนตัวเลือกของคุณ 3 mul =14812คุณต้องการดำเนินการต่อ (y/n)) หรือไม่ nดาวน์โหลด simplecalc.sh
คุณเห็นไหมว่าการสร้างโปรแกรมที่ทรงพลังนั้นง่ายเพียงใดในการคำนวณด้วยวิธีง่ายๆ มันไม่ใช่จุดจบ เราจะรวบรวมบทความในชุดนี้อีกอย่างน้อยหนึ่งบทความ ซึ่งครอบคลุมมุมมองกว้างๆ จากมุมมองของฝ่ายบริหาร
นั่นคือทั้งหมดที่สำหรับตอนนี้. ในฐานะผู้อ่านและนักวิจารณ์ที่ดีที่สุด อย่าลืมบอกเราว่าคุณชอบอะไรและชอบอะไรในบทความนี้มากน้อยเพียงใด และสิ่งที่คุณต้องการเห็นในบทความต่อๆ ไป คำถามใด ๆ ยินดีต้อนรับอย่างมากในความคิดเห็น จนกว่าจะถึงตอนนั้น สุขภาพดี , ปลอดภัย และ ปรับแต่ง . ถูกใจ และ แบ่งปัน เราและช่วยให้เราแพร่กระจาย