สคริปต์ทุบตีสามารถใช้เพื่อวัตถุประสงค์ต่างๆ เช่น การเรียกใช้คำสั่งเชลล์ การเรียกใช้หลายคำสั่งร่วมกัน การปรับแต่งงานการดูแลระบบ การทำงานอัตโนมัติ เป็นต้น ดังนั้นความรู้เกี่ยวกับพื้นฐานการเขียนโปรแกรมทุบตีจึงมีความสำคัญสำหรับผู้ใช้ Linux ทุกคน บทความนี้จะช่วยให้คุณเข้าใจแนวคิดพื้นฐานเกี่ยวกับการเขียนโปรแกรมทุบตี การดำเนินการทั่วไปของสคริปต์ทุบตีส่วนใหญ่จะอธิบายด้วยตัวอย่างง่ายๆ ที่นี่
หัวข้อต่อไปนี้ของการเขียนโปรแกรม bash ครอบคลุมในบทความนี้
- สวัสดีชาวโลก
- คำสั่งก้อง
- ความคิดเห็น
- ความคิดเห็นหลายบรรทัด
- ในขณะที่ลูป
- สำหรับลูป
- รับข้อมูลผู้ใช้
- ถ้าคำสั่ง
- และเงื่อนไขถ้าคำสั่ง
- หรือเงื่อนไขถ้าคำสั่ง
- เงื่อนไขอื่นถ้าและอย่างอื่น
- กรณีเงื่อนไข
- รับข้อโต้แย้งจาก Command Line
- รับอาร์กิวเมนต์จากบรรทัดคำสั่งที่มีชื่อ
- รวมสองสตริงในตัวแปร
- รับสตริงย่อยของสตริง
- เพิ่มตัวเลข 2 ตัวลงในตัวแปร
- สร้างฟังก์ชัน
- ใช้พารามิเตอร์ของฟังก์ชัน
- ส่งคืนค่าจาก Script
- สร้างไดเรกทอรี
- สร้างไดเรกทอรีโดยตรวจสอบการมีอยู่
- อ่านไฟล์
- ลบไฟล์
- ต่อท้ายไฟล์
- ทดสอบว่าไฟล์มีอยู่หรือไม่
- ส่งอีเมล์ตัวอย่าง
- รับการแยกวิเคราะห์วันที่ปัจจุบัน
- รอคำสั่ง
- คำสั่งการนอนหลับ
สร้างและดำเนินการโปรแกรม BASH แรก:
คุณสามารถเรียกใช้สคริปต์ทุบตีจากเทอร์มินัลหรือโดยการเรียกใช้ไฟล์ทุบตีใดๆ รันคำสั่งต่อไปนี้จากเทอร์มินัลเพื่อรันคำสั่ง bash ที่ง่ายมาก ผลลัพธ์ของคำสั่งจะเป็น ' สวัสดีชาวโลก '.
$โยนออก 'สวัสดีชาวโลก'
เปิดตัวแก้ไขเพื่อสร้างไฟล์ทุบตี ที่นี่, นาโน ตัวแก้ไขใช้ในการสร้างไฟล์และตั้งชื่อไฟล์เป็น ' เฟิร์ส.sh'
$นาโนFirst.sh
เพิ่มสคริปต์ทุบตีต่อไปนี้ลงในไฟล์และบันทึกไฟล์
#!/bin/bashโยนออก 'สวัสดีชาวโลก'
คุณสามารถเรียกใช้ไฟล์ bash ได้สองวิธี วิธีหนึ่งคือการใช้คำสั่ง bash และอีกวิธีหนึ่งคือการตั้งค่าสิทธิ์ในการดำเนินการให้กับไฟล์ bash และเรียกใช้ไฟล์ ทั้งสองวิธีแสดงไว้ที่นี่
$ทุบตีFirst.shหรือ,
$chmoda+x First.sh$./First.sh
การใช้คำสั่ง echo:
คุณสามารถใช้คำสั่ง echo พร้อมตัวเลือกต่างๆ ตัวเลือกที่มีประโยชน์บางตัวถูกกล่าวถึงในตัวอย่างต่อไปนี้ เมื่อคุณใช้ ' โยนออก ' คำสั่งที่ไม่มีตัวเลือกใด ๆ จากนั้นจะมีการขึ้นบรรทัดใหม่โดยค่าเริ่มต้น '-NS' ตัวเลือกใช้สำหรับพิมพ์ข้อความโดยไม่ต้องขึ้นบรรทัดใหม่ และ '-และ' ตัวเลือกใช้เพื่อลบอักขระแบ็กสแลชออกจากเอาต์พุต สร้างไฟล์ทุบตีใหม่ด้วยชื่อ ' echo_example.sh ’ และเพิ่มสคริปต์ต่อไปนี้
#!/bin/bashโยนออก 'การพิมพ์ข้อความด้วยการขึ้นบรรทัดใหม่'
โยนออก -NS 'การพิมพ์ข้อความโดยไม่ต้องขึ้นบรรทัดใหม่'
โยนออก -และ 'NSการถอดNSแบ็กสแลชNSตัวอักษรNS'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีecho_example.sh
การใช้ความคิดเห็น:
'#' สัญลักษณ์ใช้เพื่อเพิ่มความคิดเห็นบรรทัดเดียวในสคริปต์ทุบตี สร้างไฟล์ใหม่ชื่อ ' comment_example.sh' และเพิ่มสคริปต์ต่อไปนี้ด้วยความคิดเห็นบรรทัดเดียว
#!/bin/bash# เพิ่มค่าตัวเลขสองค่า
((ผลรวม=25+35))
#พิมพ์ผล
โยนออก $sum
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีcomment_example.sh
การใช้ความคิดเห็นหลายบรรทัด:
คุณสามารถใช้ความคิดเห็นหลายบรรทัดในการทุบตีได้หลายวิธี วิธีง่ายๆ แสดงในตัวอย่างต่อไปนี้ สร้างทุบตีใหม่ชื่อ 'ความคิดเห็นหลายบรรทัด.sh' และเพิ่มสคริปต์ต่อไปนี้ ที่นี่, ':' และ ' สัญลักษณ์ใช้เพื่อเพิ่มความคิดเห็นหลายบรรทัดในสคริปต์ทุบตี สคริปต์ต่อไปนี้จะคำนวณกำลังสองของ 5
#!/bin/bash:'
สคริปต์ต่อไปนี้คำนวณ
ค่ากำลังสองของตัวเลข 5
'
((พื้นที่=5*5))
โยนออก $พื้นที่
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีmultiline-comment.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้ความคิดเห็น bash
https://linuxhint.com/bash_comments/
ใช้ขณะวนซ้ำ:
สร้างไฟล์ทุบตีด้วยชื่อ 'while_example.sh', รู้จักการใช้ ในขณะที่ ห่วง ในตัวอย่าง ในขณะที่ ลูปจะวนซ้ำสำหรับ 5 ครั้ง คุณค่าของ นับ ตัวแปรจะเพิ่มขึ้นโดย 1 ในแต่ละขั้นตอน เมื่อค่าของ นับ ตัวแปรจะ 5 จากนั้น ในขณะที่ ลูปจะสิ้นสุดลง
#!/bin/bashถูกต้อง=จริง
นับ=1
ในขณะที่ [ $valid ]
ทำ
โยนออก $count
ถ้า [ $count -eq 5 ];
แล้ว
หยุดพัก
เป็น
((นับ++))
เสร็จแล้ว
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีwhile_example.sh
คุณสามารถตรวจสอบลิงค์ต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ while loop
https://linuxhint.com/bash-while-loop-examples/
ใช้สำหรับวนซ้ำ:
พื้นฐาน สำหรับ การประกาศวนซ้ำแสดงในตัวอย่างต่อไปนี้ สร้างไฟล์ชื่อ ' for_example.sh ’ และเพิ่มสคริปต์ต่อไปนี้โดยใช้ สำหรับ ห่วง ที่นี่, สำหรับ ลูปจะวนซ้ำสำหรับ 10 ครั้งและพิมพ์ค่าทั้งหมดของตัวแปร เคาน์เตอร์ ในบรรทัดเดียว
#!/bin/bashสำหรับ (( เคาน์เตอร์=10; เคาน์เตอร์>0; เคาน์เตอร์--))
ทำ
โยนออก -NS '$เคาน์เตอร์'
เสร็จแล้ว
printf 'NS'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีfor_example.sh
คุณสามารถใช้ for วนซ้ำเพื่อวัตถุประสงค์และวิธีต่างๆ ในสคริปต์ทุบตีของคุณ คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้ for วนซ้ำ
https://linuxhint.com/bash-for-loop-examples/
รับข้อมูลผู้ใช้:
' อ่าน ' คำสั่งใช้เพื่อรับข้อมูลจากผู้ใช้ใน bash สร้างไฟล์ชื่อ ' user_input.sh ’ และเพิ่มสคริปต์ต่อไปนี้เพื่อรับข้อมูลจากผู้ใช้ ที่นี่ ค่าสตริงหนึ่งค่าจะถูกนำมาจากผู้ใช้และแสดงค่าโดยการรวมค่าสตริงอื่นๆ
#!/bin/bashโยนออก 'ใส่ชื่อของคุณ'
อ่านชื่อ
โยนออก 'ยินดีต้อนรับ$nameไปยัง Linuxคำแนะนำ '
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีuser_input.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้ข้อมูลของผู้ใช้
https://linuxhint.com/bash-script-user-input/
การใช้คำสั่ง if:
คุณสามารถใช้ if เงื่อนไขที่มีเงื่อนไขเดียวหรือหลายเงื่อนไข บล็อกเริ่มต้นและสิ้นสุดของคำสั่งนี้กำหนดโดย 'ถ้า' และ 'เป็น' . สร้างไฟล์ชื่อ ' simple_if.sh ’ ด้วยสคริปต์ต่อไปนี้เพื่อทราบการใช้งาน ถ้า คำสั่งในทุบตี ที่นี่, 10 ถูกกำหนดให้กับตัวแปร NS . ถ้าค่าของ $n น้อยกว่า 10 แล้วผลลัพธ์จะเป็น เป็นตัวเลขหนึ่งหลัก มิฉะนั้นผลลัพธ์จะเป็น เป็นตัวเลขสองหลัก . สำหรับการเปรียบเทียบ '-Lt' ถูกใช้ที่นี่ สำหรับการเปรียบเทียบ คุณสามารถใช้ '-eq' สำหรับ ความเท่าเทียมกัน , '-เกิด' สำหรับ ไม่เท่าเทียมกัน และ '-gt' สำหรับ มากกว่า ในสคริปต์ทุบตี
#!/bin/bashNS=10
ถ้า [ $n -lt 10 ];
แล้ว
โยนออก 'มันเป็นตัวเลขหนึ่งหลัก'
อื่น
โยนออก 'มันเป็นตัวเลขสองหลัก'
เป็น
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีsimple_if.sh
การใช้คำสั่ง if กับตรรกะ AND:
เงื่อนไขตรรกะประเภทต่างๆ สามารถใช้ในคำสั่ง if ที่มีเงื่อนไขตั้งแต่สองเงื่อนไขขึ้นไป วิธีที่คุณสามารถกำหนดหลายเงื่อนไขในคำสั่ง if โดยใช้ และ ตรรกะแสดงในตัวอย่างต่อไปนี้ '&&' ใช้ในการสมัคร และ ตรรกะของ ถ้า คำแถลง. สร้างไฟล์ชื่อ 'if_with_AND.sh' เพื่อตรวจสอบรหัสต่อไปนี้ ที่นี่ค่าของ ชื่อผู้ใช้ และ รหัสผ่าน ตัวแปรจะถูกนำมาจากผู้ใช้และเปรียบเทียบกับ ' ผู้ดูแลระบบ ' และ ' ความลับ ’ หากทั้งสองค่าตรงกัน ผลลัพธ์จะเป็น ผู้ใช้ที่ถูกต้อง มิฉะนั้นผลลัพธ์จะเป็น ผู้ใช้ที่ไม่ถูกต้อง .
! /เป็น/ทุบตีโยนออก 'ป้อนชื่อผู้ใช้'
อ่านชื่อผู้ใช้
โยนออก 'ใส่รหัสผ่าน'
อ่านรหัสผ่าน
ถ้า [[ ( $ชื่อผู้ใช้=='ผู้ดูแลระบบ' && $รหัสผ่าน=='ความลับ' ) ]];แล้ว
โยนออก 'ผู้ใช้ที่ถูกต้อง'
อื่น
โยนออก 'ผู้ใช้ที่ไม่ถูกต้อง'
เป็น
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีif_with_AND.sh
การใช้คำสั่ง if กับตรรกะ OR:
' || ’ ใช้เพื่อกำหนด หรือ ตรรกะใน ถ้า สภาพ. สร้างไฟล์ชื่อ 'if_with_OR.sh' ด้วยรหัสต่อไปนี้เพื่อตรวจสอบการใช้งานของ หรือ ตรรกะของ ถ้า คำแถลง. ที่นี่ค่าของ NS จะถูกนำมาจากผู้ใช้ ถ้าค่าเท่ากับ สิบห้า หรือ สี่ห้า แล้วผลลัพธ์จะเป็น คุณชนะเกม มิฉะนั้นผลลัพธ์จะเป็น คุณแพ้เกม .
#!/bin/bashโยนออก 'ป้อนหมายเลขใด ๆ '
อ่านNS
ถ้า [[ ( $n -eq สิบห้า || $n -eq สี่ห้า ) ]]
แล้ว
โยนออก 'คุณชนะเกม'
อื่น
โยนออก 'คุณแพ้เกม'
เป็น
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีif_with_OR.sh
ใช้คำสั่ง else if:
การใช้ ถ้า เงื่อนไขนั้นแตกต่างกันเล็กน้อยใน bash เมื่อเทียบกับภาษาโปรแกรมอื่น ' เอลฟ์ ’ ใช้เพื่อกำหนด ถ้า เงื่อนไขในการทุบตี สร้างไฟล์ชื่อ ' elseif_example.sh ’ และเพิ่มสคริปต์ต่อไปนี้เพื่อตรวจสอบวิธีการ ถ้า ถูกกำหนดไว้ในสคริปต์ทุบตี
#!/bin/bashโยนออก 'ป้อนหมายเลขนำโชคของคุณ'
อ่านNS
ถ้า [ $n -eq 101 ];
แล้ว
โยนออก 'ได้รางวัลที่ 1'
เอลฟ์ [ $n -eq 510 ];
แล้ว
โยนออก 'ได้รางวัลที่ 2'
เอลฟ์ [ $n -eq 999 ];
แล้ว
โยนออก 'ได้รางวัลที่ 3'
อื่น
โยนออก 'ขอโทษนะ ไว้คราวหน้าลองใหม่นะ'
เป็น
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีelseif_example.sh
การใช้คำชี้แจงกรณี:
กรณี คำสั่งใช้แทน if-elseif-อื่น คำแถลง. บล็อกเริ่มต้นและสิ้นสุดของคำสั่งนี้ถูกกำหนดโดย ' กรณี ' และ ' esac ’ สร้างไฟล์ใหม่ชื่อ ' case_example.sh ’ และเพิ่มสคริปต์ต่อไปนี้ ผลลัพธ์ของสคริปต์ต่อไปนี้จะเหมือนกับก่อนหน้า ถ้า ตัวอย่าง.
#!/bin/bashโยนออก 'ป้อนหมายเลขนำโชคของคุณ'
อ่านNS
กรณี $n ใน
101)
โยนออก โยนออก 'ได้รางวัลที่ 1' ;;
510)
โยนออก 'ได้รางวัลที่ 2' ;;
999)
โยนออก 'ได้รางวัลที่ 3' ;;
*)
โยนออก 'ขอโทษนะ ไว้คราวหน้าลองใหม่นะ' ;;
esac
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีcase_example.sh
รับอาร์กิวเมนต์จาก Command Line:
สคริปต์ทุบตีสามารถอ่านอินพุตจากอาร์กิวเมนต์บรรทัดคำสั่งเหมือนกับภาษาโปรแกรมอื่นๆ ตัวอย่างเช่น, $ 1 และ $ 2 ตัวแปรใช้เพื่ออ่านอาร์กิวเมนต์บรรทัดคำสั่งแรกและที่สอง สร้างไฟล์ชื่อ command_line.sh และเพิ่มสคริปต์ต่อไปนี้ ค่าอาร์กิวเมนต์สองค่าที่อ่านโดยสคริปต์ต่อไปนี้ และพิมพ์จำนวนอาร์กิวเมนต์ทั้งหมดและค่าอาร์กิวเมนต์เป็นเอาต์พุต
#!/bin/bashโยนออก 'อาร์กิวเมนต์ทั้งหมด : $#'
โยนออก 'อาร์กิวเมนต์ที่ 1 = $1'
โยนออก 'อาร์กิวเมนต์ที่ 2 = $2'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีcommand_line.sh คำแนะนำสำหรับ Linux
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้อาร์กิวเมนต์บรรทัดคำสั่ง
https://linuxhint.com/command_line_arguments_bash_script/
รับอาร์กิวเมนต์จากบรรทัดคำสั่งพร้อมชื่อ:
วิธีอ่านอาร์กิวเมนต์บรรทัดคำสั่งพร้อมชื่อแสดงในสคริปต์ต่อไปนี้ สร้างไฟล์ชื่อ ' command_line_names.sh' และเพิ่มรหัสต่อไปนี้ ที่นี่สองอาร์กิวเมนต์ NS และ และ ถูกอ่านโดยสคริปต์นี้และพิมพ์ผลรวมของ X และ Y
#!/bin/bashสำหรับโกรธใน ' [ป้องกันอีเมล] '
ทำ
ดัชนี= $(โยนออก $ arg | ตัด -f1 -NS=)
ชั่วโมง= $(โยนออก $ arg | ตัด -f2 -NS=)
กรณี $index ใน
NS) NS=$ ชั่วโมง;;
และ) และ=$ ชั่วโมง;;
*)
esac
เสร็จแล้ว
((ผลลัพธ์= x + y))
โยนออก 'X + Y =$ผลลัพธ์'
เรียกใช้ไฟล์ด้วยคำสั่ง bash และอาร์กิวเมนต์บรรทัดคำสั่งสองรายการ
$ทุบตีcommand_line_namesNS=สี่ห้า และ=30
รวมตัวแปรสตริง:
คุณสามารถรวมตัวแปรสตริงใน bash ได้อย่างง่ายดาย สร้างไฟล์ชื่อ string_combine.sh และเพิ่มสคริปต์ต่อไปนี้เพื่อตรวจสอบว่าคุณสามารถรวมตัวแปรสตริงใน bash ได้อย่างไรโดยการวางตัวแปรเข้าด้วยกันหรือใช้ '+' โอเปอเรเตอร์
#!/bin/bashstring1='ลินุกซ์'
string2='คำใบ้'
โยนออก '$string1$string2'
string3=$string1+$string2
string3+=' เป็นไซต์บล็อกกวดวิชาที่ดี'
โยนออก $string3
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีstring_combine.sh
รับสตริงย่อยของสตริง:
เช่นเดียวกับภาษาการเขียนโปรแกรมอื่น bash ไม่มีฟังก์ชันในตัวที่จะตัดค่าจากข้อมูลสตริงใดๆ แต่คุณสามารถทำงานของสตริงย่อยได้ด้วยวิธีอื่นใน bash ที่แสดงในสคริปต์ต่อไปนี้ หากต้องการทดสอบสคริปต์ ให้สร้างไฟล์ชื่อ ' substring_example.sh ’ ด้วยรหัสต่อไปนี้ ที่นี่ค่า 6 ระบุจุดเริ่มต้นจากตำแหน่งที่สตริงย่อยจะเริ่มต้นและ 5 ระบุความยาวของสตริงย่อย
#!/bin/bashสตรัท='เรียนรู้ Linux จาก LinuxHint'
subStr=$ {Str: 6: 5}
โยนออก $subStr
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีsubstring_example.sh
เพิ่มสองตัวเลข:
คุณสามารถดำเนินการทางคณิตศาสตร์ใน bash ได้หลายวิธี วิธีที่คุณสามารถเพิ่มตัวเลขจำนวนเต็มสองตัวใน bash โดยใช้วงเล็บคู่จะแสดงในสคริปต์ต่อไปนี้ สร้างไฟล์ชื่อ ' add_numbers.sh ’ ด้วยรหัสต่อไปนี้ ค่าจำนวนเต็มสองค่าจะถูกนำออกจากผู้ใช้และพิมพ์ผลลัพธ์ของการบวก
#!/bin/bashโยนออก 'ป้อนหมายเลขแรก'
อ่านNS
โยนออก 'ป้อนหมายเลขที่สอง'
อ่านและ
(( ผลรวม= x + y))
โยนออก 'ผลลัพธ์ของการบวก=$sum'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีadd_numbers.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับ bash arithmetic
https://linuxhint.com/bash_arithmetic_operations/
สร้างฟังก์ชัน:
วิธีสร้างฟังก์ชันอย่างง่ายและการเรียกใช้ฟังก์ชันจะแสดงในสคริปต์ต่อไปนี้ สร้างไฟล์ชื่อ ' function_example.sh ’ และเพิ่มรหัสต่อไปนี้ คุณสามารถเรียกใช้ฟังก์ชันใดก็ได้โดยใช้ชื่อเท่านั้นโดยไม่ต้องใช้วงเล็บในสคริปต์ทุบตี
#!/bin/bashการทำงานF1()
{
โยนออก 'ฉันชอบการเขียนโปรแกรมทุบตี'
}
F1
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีfunction_example.sh
สร้างฟังก์ชันด้วยพารามิเตอร์:
Bash ไม่สามารถประกาศพารามิเตอร์หรืออาร์กิวเมนต์ของฟังก์ชันได้ในขณะที่ประกาศฟังก์ชัน แต่คุณสามารถใช้พารามิเตอร์ในฟังก์ชันได้โดยใช้ตัวแปรอื่น หากมีการส่งค่าสองค่าในขณะที่เรียกใช้ฟังก์ชัน ตัวแปร $1 และ $2 จะถูกใช้สำหรับอ่านค่า สร้างไฟล์ชื่อ ' ฟังก์ชัน|_parameter.sh ’ และเพิ่มรหัสต่อไปนี้ ที่นี่ฟังก์ชั่น ' สี่เหลี่ยมผืนผ้า_พื้นที่' จะคำนวณพื้นที่ของสี่เหลี่ยมตามค่าพารามิเตอร์
#!/bin/bashสี่เหลี่ยมผืนผ้า_พื้นที่() {
พื้นที่= $(($ 1 * $ 2))
โยนออก 'พื้นที่คือ:$พื้นที่'
}
สี่เหลี่ยมผืนผ้า_พื้นที่10 ยี่สิบ
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีfunction_parameter.sh
ส่งคืนค่าจากฟังก์ชัน:
ฟังก์ชัน Bash ส่งผ่านทั้งค่าตัวเลขและสตริง วิธีที่คุณสามารถส่งค่าสตริงจากฟังก์ชันได้ดังแสดงในตัวอย่างต่อไปนี้ สร้างไฟล์ชื่อ ' function_return.sh ’ และเพิ่มรหัสต่อไปนี้ ฟังก์ชั่น, การทักทาย() ส่งคืนค่าสตริงลงในตัวแปร ชั่วโมง ซึ่งพิมพ์ในภายหลังโดยรวมกับสตริงอื่นๆ
#!/bin/bashการทำงานการทักทาย() {
NS='สวัสดี,$name'
โยนออก $ str
}
โยนออก 'ใส่ชื่อของคุณ'
อ่านชื่อ
ชั่วโมง= $(การทักทาย)
โยนออก 'คืนค่าของฟังก์ชันคือ$ ชั่วโมง'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีfunction_return.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟังก์ชันทุบตี
https://linuxhint.com/return-string-bash-functions/
สร้างไดเรกทอรี:
Bash ใช้ ' mkdir ' คำสั่งสร้างไดเร็กทอรีใหม่ สร้างไฟล์ชื่อ ' make_directory.sh ’ และเพิ่มรหัสต่อไปนี้เพื่อรับชื่อไดเร็กทอรีใหม่จากผู้ใช้ หากไม่มีชื่อไดเร็กทอรีในตำแหน่งปัจจุบัน มันจะสร้างไดเร็กทอรี มิฉะนั้น โปรแกรมจะแสดงข้อผิดพลาด
#!/bin/bashโยนออก 'ป้อนชื่อไดเรกทอรี'
อ่านnewdir
``mkdir $ newdir``
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีmake_directory.sh
สร้างไดเรกทอรีโดยตรวจสอบการมีอยู่:
หากคุณต้องการตรวจสอบการมีอยู่ของไดเร็กทอรีในตำแหน่งปัจจุบันก่อนดำเนินการ ' mkdir ' จากนั้นคุณสามารถใช้รหัสต่อไปนี้ '-NS ’ ใช้สำหรับทดสอบไดเร็กทอรีเฉพาะว่ามีหรือไม่ สร้างไฟล์ชื่อ ' directory_exist.sh' และเพิ่มโค้ดต่อไปนี้เพื่อสร้างไดเร็กทอรีโดยตรวจสอบการมีอยู่
#!/bin/bashโยนออก 'ป้อนชื่อไดเรกทอรี'
อ่านndr
ถ้า [ -NS '$ndir' ]
แล้ว
โยนออก 'มีไดเรกทอรีอยู่'
อื่น
``mkdir $ndir``
โยนออก 'สร้างไดเร็กทอรี'
เป็น
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีdirectory_exist.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับการสร้างไดเรกทอรี
https://linuxhint.com/bash_mkdir_not_existent_path/
อ่านไฟล์:
คุณสามารถอ่านไฟล์ทีละบรรทัดใน bash โดยใช้ลูป สร้างไฟล์ชื่อ ' read_file.sh ' และเพิ่มรหัสต่อไปนี้เพื่ออ่านไฟล์ที่มีอยู่ชื่อ ' book.txt '.
#!/bin/bashไฟล์='book.txt'
ในขณะที่ อ่านไลน์;ทำ
โยนออก $line
เสร็จแล้ว < $ไฟล์
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีread_file.shเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบเนื้อหาต้นฉบับของ ' book.txt ' ไฟล์.
$แมวbook.txt
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบวิธีต่างๆ ในการอ่านไฟล์
https://linuxhint.com/read_file_line_by_line_bash/
ลบไฟล์:
' rm ' คำสั่ง ใช้ใน bash เพื่อลบไฟล์ใด ๆ สร้างไฟล์ชื่อ ' delete_file.sh ’ ด้วยรหัสต่อไปนี้เพื่อนำชื่อไฟล์จากผู้ใช้และลบออก ที่นี่, '-ผม' ใช้ตัวเลือกเพื่อขออนุญาตจากผู้ใช้ก่อนที่จะลบไฟล์
#!/bin/bashโยนออก 'ป้อนชื่อไฟล์ที่จะลบ'
อ่านfn
rm -ผม $fn
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ลส$ทุบตีdelete_file.sh
$ลส
ต่อท้ายไฟล์:
ข้อมูลใหม่สามารถเพิ่มลงในไฟล์ที่มีอยู่โดยใช้ '>>' โอเปอเรเตอร์ในทุบตี สร้างไฟล์ชื่อ 'append_file.sh ’ และเพิ่มรหัสต่อไปนี้เพื่อเพิ่มเนื้อหาใหม่ที่ส่วนท้ายของไฟล์ ที่นี่, ' การเรียนรู้ Laravel 5 ' จะถูกเพิ่มที่ ' book.txt' ไฟล์หลังจากรันสคริปต์
#!/bin/bashโยนออก 'ก่อนต่อท้ายไฟล์'
แมวbook.txt
โยนออก 'การเรียนรู้ Laravel 5'>>book.txt
โยนออก 'หลังจากต่อท้ายไฟล์'
แมวbook.txt
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีappend_file.sh
ทดสอบว่ามีไฟล์อยู่หรือไม่:
คุณสามารถตรวจสอบการมีอยู่ของไฟล์ใน bash โดยใช้ '-และ' หรือ '-NS' ตัวเลือก. '-NS' ตัวเลือกที่ใช้ในสคริปต์ต่อไปนี้เพื่อทดสอบการมีอยู่ของไฟล์ สร้างไฟล์ชื่อ ' file_exist.sh ’ และเพิ่มรหัสต่อไปนี้ ที่นี่ ชื่อไฟล์จะส่งผ่านจากบรรทัดคำสั่ง
#!/bin/bashชื่อไฟล์=$ 1
ถ้า [ -NS '$ชื่อไฟล์' ];แล้ว
โยนออก 'แฟ้มที่มีอยู่'
อื่น
โยนออก 'ไม่มีไฟล์'
เป็น
รันคำสั่งต่อไปนี้เพื่อตรวจสอบการมีอยู่ของไฟล์ ที่นี่, book.txt ไฟล์ที่มีอยู่และ book2.txt ไม่มีอยู่ในตำแหน่งปัจจุบัน
$ลส$ทุบตีfile_exist.sh book.txt
$ทุบตีfile_exist.sh book2.txt
ส่งอีเมล:
คุณสามารถส่งอีเมลโดยใช้ ' จดหมาย ' หรือ ' ส่งอีเมล์ ' สั่งการ. ก่อนใช้คำสั่งเหล่านี้ คุณต้องติดตั้งแพ็คเกจที่จำเป็นทั้งหมดก่อน สร้างไฟล์ชื่อ ' mail_example.sh ’ และเพิ่มรหัสต่อไปนี้เพื่อส่งอีเมล
#!/bin/bashผู้รับ=ผู้ดูแลระบบ@example.com
เรื่อง=ทักทาย
ข้อความ=ยินดีต้อนรับสู่เว็บไซต์ของเรา
``จดหมาย-NS $Subject $ผู้รับ <<< $ข้อความ``
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีmail_example.sh
รับวันที่ปัจจุบันแยกวิเคราะห์:
คุณสามารถรับค่าวันที่และเวลาของระบบปัจจุบันโดยใช้ ` วันที่ `คำสั่ง ทุกส่วนของค่าวันที่และเวลาสามารถแยกวิเคราะห์ได้โดยใช้ ' Y', 'm', 'd', 'H', 'M' และ ' NS' . สร้างไฟล์ใหม่ชื่อ ' date_parse.sh' และเพิ่มรหัสต่อไปนี้เพื่อแยกค่าวัน เดือน ปี ชั่วโมง นาที และวินาที
#!/bin/bashปี=``วันที่+%และ``
เดือน=``วันที่+%NS``
วัน=``วันที่+%NS``
ชั่วโมง=``วันที่+%ชม``
นาที=``วันที่+%NS``
ที่สอง=``วันที่+%NS``
โยนออก ``วันที่``
โยนออก 'วันที่ปัจจุบันคือ:$วัน-$เดือน-$Year'
โยนออก 'เวลาปัจจุบันคือ:$ชั่วโมง:$นาที:$วินาที'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีdate_parse.sh
รอคำสั่ง:
รอ เป็นคำสั่งในตัวของ Linux ที่รอดำเนินการกระบวนการทำงานใดๆ ให้เสร็จสิ้น รอ คำสั่งใช้กับ ID กระบวนการหรือรหัสงานเฉพาะ หากไม่ได้ระบุรหัสกระบวนการหรือรหัสงานด้วยคำสั่ง wait มันจะรอให้กระบวนการลูกปัจจุบันทั้งหมดเสร็จสิ้นและส่งคืนสถานะการออก สร้างไฟล์ชื่อ ' wait_example.sh' และเพิ่มสคริปต์ต่อไปนี้
#!/bin/bashโยนออก 'รอคำสั่ง' &
process_id=$!
รอ $process_id
โยนออก 'ออกจากสถานะ $?'
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีwait_example.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง wait
คำสั่งสลีป:
เมื่อคุณต้องการหยุดการทำงานของคำสั่งใดๆ ชั่วคราวในช่วงเวลาที่กำหนด คุณสามารถใช้ นอน สั่งการ. คุณสามารถกำหนดจำนวนการหน่วงเวลาโดย วินาที (s), นาที (m), ชั่วโมง (h) และวัน (d) สร้างไฟล์ชื่อ 'sleep_example.sh' และเพิ่มสคริปต์ต่อไปนี้ สคริปต์นี้จะรอเป็นเวลา 5 วินาทีหลังจากรัน
#!/bin/bashโยนออกรอสำหรับ 5วินาที
นอน 5
โยนออกสมบูรณ์
เรียกใช้ไฟล์ด้วยคำสั่ง bash
$ทุบตีsleep_example.sh
คุณสามารถตรวจสอบลิงก์ต่อไปนี้เพื่อทราบข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง sleep
https://linuxhint.com/sleep_command_linux/
หวังว่าหลังจากอ่านบทความนี้แล้ว คุณมีแนวคิดพื้นฐานเกี่ยวกับภาษาสคริปต์ทุบตีและคุณจะสามารถนำไปใช้ได้ตามความต้องการของคุณ