วิธีเรียกใช้หลายคำสั่งใน Linux

How Run Multiple Commands Linux



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

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







$ลส -NS | ห้องน้ำ โชคดี



อัฒภาค (;) ตัวดำเนินการ

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



$แมวmyfile.txt ;mkdirนิวดีร์;ซีดีเดสก์ทอป





ตัวดำเนินการตรรกะและ (&&)

คำสั่งที่รันโดย Logical AND (&&) สัมพันธ์กันเช่นคำสั่ง pipe (|) ดังนั้น หากคำสั่งก่อนหน้านี้ไม่สามารถดำเนินการได้สำเร็จ คำสั่งถัดไปจะไม่ทำงาน ในตัวอย่างต่อไปนี้ สองคำสั่ง mkdir และ rmdir รวมกันโดยตัวดำเนินการ && ดังนั้นคำสั่ง mkdir จึงไม่สามารถดำเนินการได้สำเร็จ คำสั่ง rmdir จะไม่ดำเนินการ ตามผลลัพธ์ของคำสั่ง ls ไดเร็กทอรี myDir มีอยู่แล้วในตำแหน่งปัจจุบัน ดังนั้นคำสั่งแรกจะไม่ดำเนินการและสำหรับคำสั่งที่สองนี้จะไม่ดำเนินการด้วย

$ลส
$mkdirmyDir&& rmdirอุณหภูมิ
$ลส



ตัวดำเนินการตรรกะ OR (||)

ตัวดำเนินการตรรกะ OR (||) อยู่ตรงข้ามกับตัวดำเนินการตรรกะ AND (&&) คำสั่งถัดไปจะทำงานหากคำสั่งก่อนหน้าล้มเหลวในการดำเนินการ คำสั่ง cat สามคำสั่งรวมกับตัวดำเนินการ OR (||) ในตัวอย่างต่อไปนี้ เมื่อคุณจะรันคำสั่ง อย่างแรกเลย มันจะพยายามแสดงเนื้อหาของไฟล์ cat.txt หากไม่มีไฟล์ดังกล่าวอยู่ในตำแหน่งปัจจุบัน ไฟล์นั้นจะพยายามรันคำสั่งถัดไป ตามผลลัพธ์ ไฟล์ bird.txt อยู่ในตำแหน่งปัจจุบันและเนื้อหาของไฟล์นี้จะปรากฏขึ้น

$ cat cat.txt || cat dog.txt || cat bird.txt

คำสั่งหลายคำสั่งพร้อมตัวดำเนินการหลายตัว

คุณสามารถใช้ตัวดำเนินการหลายตัวเพื่อเรียกใช้คำสั่งหลายคำสั่งพร้อมกัน ในตัวอย่างต่อไปนี้ สามคำสั่งจะถูกรวมเข้ากับตัวดำเนินการ OR (||) และ AND (&&) หลังจากรันคำสั่ง อันดับแรก จะเปลี่ยนไดเร็กทอรีปัจจุบันเป็น newdir ถ้ามีไดเร็กทอรีอยู่ หากคำสั่งนี้ล้มเหลว มันจะสร้างไดเร็กทอรีโดยรันคำสั่งที่สองและพิมพ์ข้อความ ไดเร็กทอรีจะถูกสร้างขึ้น ตามผลลัพธ์ ไดเร็กทอรี newdir ไม่มีอยู่ในตำแหน่งปัจจุบัน ดังนั้น ข้อความแสดงข้อผิดพลาดจะแสดงขึ้นและไดเร็กทอรีจะถูกสร้างขึ้นในภายหลัง

$ซีดีnewdir|| mkdirnewdir&& โยนออก 'ไดเร็กทอรีถูกสร้างขึ้น'

ตัวดำเนินการรวมกัน {}

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

$[ -NSอุณหภูมิ] || { mkdirอุณหภูมิ;โยนออกสร้างไดเร็กทอรี temp แล้ว;} && ลส

ตัวดำเนินการลำดับความสำคัญ ()

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

$(ซีดีอุณหภูมิ&& ลส-ถึง) || (mkdirอุณหภูมิ&& ลส)

บทสรุป

บทช่วยสอนนี้อธิบายโอเปอเรเตอร์ที่ใช้เป็นส่วนใหญ่สำหรับการรันหลายคำสั่งใน Linux แต่มีโอเปอเรเตอร์อื่นอีกมากมายใน bash ซึ่งใช้ในการรันคำสั่งตั้งแต่สองคำสั่งขึ้นไปพร้อมกัน สิ่งเหล่านี้คือเครื่องหมายและ (&) การเปลี่ยนเส้นทาง (,>>) ไม่ใช่ตรรกะ (!) ชุดค่าผสม ({}) เป็นต้น