วิธีการขยายการใช้งานรั้งในลินุกซ์ทุบตีเชลล์

May 12, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock

การขยายตัวของ Brace เป็นเทคนิคที่มีประโยชน์ในการสร้างรายการของสตริงที่สามารถใช้ในสคริปต์และนามแฝงและบนบรรทัดคำสั่ง Linux ประหยัดเวลาและหลีกเลี่ยงข้อผิดพลาดโดยพิมพ์น้อยลง

การขยายตัวรั้ง

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

การขยายตัวของ Brace มีอยู่ในเปลือกหอยที่ทันสมัย ​​แต่อาจหายไปจากเปลือกเก่า หากคุณกำลังจะใช้การขยายการรั้งในสคริปต์ตรวจสอบให้แน่ใจว่าคุณเรียกใช้เชลล์ที่รองรับการขยายตัวของรั้งเช่น Bash:

เราจะใช้ Bash สำหรับตัวอย่างของเรา

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

การขยายตัวที่เรียบง่าย

การขยายตัวของรั้งมีอยู่ระหว่างการจัดฟันคู่ "{}" มันสามารถเป็นรายการของรายการที่คั่นด้วยเครื่องหมายจุลภาคหรือตัวระบุช่วง ไม่อนุญาตให้ใช้ช่องว่างภายในเครื่องมือจัดฟันเว้นแต่คุณจะปิดสตริงในเครื่องหมายอัญประกาศ " " "

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

 Echo {หนึ่งสอง, สาม, สี่} 

รายการสามารถเป็นคำหรือตัวเลข

 Echo {1,2,3,4} 

ลำดับขององค์ประกอบรายการเป็นไปตามอำเภอใจอย่างสิ้นเชิง

 Echo (4,2,3,1) 

ช่วงการขยายตัวมีตัวอักษรเริ่มต้นและตัวอักษรที่เชื่อมต่อกับสองช่วงเวลา " .. "ไม่มีช่องว่างใด ๆ องค์ประกอบรายการที่หายไปทั้งหมดจะได้รับโดยอัตโนมัติโดยการขยายเพื่อให้มีการสร้างช่วงทั้งหมดตั้งแต่ตัวละครเริ่มต้นจนถึงอักขระปลายทาง

สิ่งนี้จะพิมพ์ตัวเลขจาก 1 ถึง 10

 echo {1..10} 

การกำหนดหมายเลขเป็นไปตามอำเภอใจ มันไม่จำเป็นต้องเริ่มต้นที่หนึ่ง

 echo {3..12} 

ช่วงสามารถระบุได้เพื่อให้พวกเขาวิ่งย้อนกลับ สิ่งนี้จะสร้างรายการจากห้าลงไปที่หนึ่ง

 echo {5..1} 

ช่วงสามารถรวมถึงตัวเลขเชิงลบ

 echo {4 ..- 4} 

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

 echo {q..v} 

ตัวอักษรสามารถวิ่งย้อนหลังได้เช่นกัน

 echo {f..a} 

ใช้การขยายตัวแบบรั้งกับลูป

คุณสามารถใช้การขยายตัวแบบรั้งกับช่วงในลูปในสคริปต์

 สำหรับฉันใน {3..7}
ทำ
   echo $ i
ทำ 

ช่วงการขยายตัวของ Brace ให้คุณใช้ตัวละครเป็นตัวแปรลูป

 สำหรับฉันใน {m ..q}
ทำ
   echo $ i
ทำ 

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

 สำหรับฉันใน {3..7}; ทำ echo $ i; ทำ 

 สำหรับฉันใน {m ..q}; ทำ echo $ i; ทำ 

เชื่อมต่อและทำรัง

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

 echo {q..v} {1..3} 

การขยายยังสามารถซ้อนกันได้ การขยายตัวที่ซ้อนกันจะทำหน้าที่บนองค์ประกอบก่อนหน้านี้ทันที

 Echo {PORT-1, PART-2 {A, B, C, D}, PART-3} 

นอกจากนี้คุณยังสามารถทำรังขยายได้โดยการสร้างรายการการขยายระยะคั่นด้วยเครื่องหมายจุลภาค

 echo {{5..0}, {1..5}} 

preamble และ postscript

คุณสามารถวางข้อความก่อนและหลังการขยายรั้งเพื่อให้ข้อความนั้นรวมอยู่ในผลลัพธ์ของการขยายตัว ข้อความที่อยู่ด้านหน้าของการขยายตัวเรียกว่าคำนำในขณะที่ข้อความที่อยู่เบื้องหลังการขยายตัวรั้งเรียกว่า PostScript

คำสั่งนี้ใช้คำนำ

 echo บท {1..3} 

ตัวอย่างนี้ใช้ PostScript:

 echo {เนื้อหา, กระดาษ, bilbiography} .MD 

และคำสั่งนี้ใช้ทั้งสองอย่าง

 Echo Chapter- {1..4} .MD 

การขยายชื่อไฟล์และไดเรกทอรี

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

อย่างรวดเร็ว สร้างไฟล์บางไฟล์ , ใช้ สัมผัส :

 Touch File- {1..4}. TXT 
 ls * .txt 

หากคุณมีไฟล์จำนวนมากที่มีชื่อฐานเดียวกัน แต่ส่วนขยายไฟล์ที่แตกต่างกันและคุณต้องการดำเนินการกับชุดย่อยของพวกเขาการขยายการรั้งสามารถช่วยได้ ที่นี่เรากำลังบีบอัดไฟล์ย่อยที่มี "โปรแกรม" เป็นชื่อ Basename เป็นไฟล์ zip ที่เรียกว่า "แหล่งที่มา-Code.zip"

ไดเรกทอรีการพัฒนามีไฟล์จำนวนมากที่จะมีชื่อ Basename เช่นเดียวกับโปรแกรมหลักของคุณ โดยปกติแล้วคุณไม่ต้องการสำรองหรือแจกจ่ายไฟล์เช่นไฟล์วัตถุ ".o" นี่เป็นวิธีที่เรียบร้อยในการรวมถึงประเภทไฟล์ที่น่าสนใจเท่านั้น

 โปรแกรมรหัสซอร์สโค้ด {.c, .h, .css} 

คำสั่งนี้จะทำสำเนาของไฟล์และผนวก ".Bak" เพื่อทำสำเนาสำรองของไฟล์ต้นฉบับ จุดที่น่าสนใจที่จะทราบคือการขยายตัวของรั้งมีรายการที่คั่นด้วยเครื่องหมายจุลภาค แต่องค์ประกอบแรกว่างเปล่า หากเราไม่ได้รวมเครื่องหมายจุลภาคการขยายตัวจะไม่เกิดขึ้น

 CP รั้ง / ใหม่ / prog-1.c {,. bak} 
 LS รั้ง / ใหม่ / prog-1.c.bak 

ในการดำเนินการบางอย่างในสองไฟล์ในไดเรกทอรีที่แตกต่างกันเราสามารถใช้การขยายรั้งในพา ธ ไปยังไฟล์

ในตัวอย่างนี้ไดเรกทอรี "รั้ง" มีสองไดเรกทอรีย่อยหนึ่งเรียกว่า "ใหม่" และหนึ่งที่เรียกว่า "เก่า" พวกเขามีไฟล์ซอร์สโค้ดรุ่นเดียวกันที่แตกต่างกัน เราจะใช้ ประณาม โปรแกรมเพื่อดูความแตกต่างระหว่าง "prog-1.c" สองรุ่น

 รั้งแตกต่างกัน / {ใหม่เก่า} /prog-1.c 

[254 255]

หากคุณมีโครงกระดูกมาตรฐานของไดเรกทอรีที่คุณต้องสร้างในช่วงเริ่มต้นของโครงการคุณสามารถสร้างได้อย่างรวดเร็วโดยใช้การขยายตัวของ Brace NS mkdir -NS ตัวเลือก (ผู้ปกครอง) สร้างไดเรกทอรีผู้ปกครองที่ขาดหายไป เมื่อไดเรกทอรีลูกถูกสร้างขึ้น

 mkdir -p {ที่มา, สร้าง, ผู้ชาย, ช่วยเหลือ {/ หน้า, / yelp, / images}} 
 ต้นไม้ 

คุณสามารถใช้การขยายรั้งด้วย ปรับ ถึง ดาวน์โหลดหลายไฟล์ .

ในคำสั่งนี้เราจะดาวน์โหลดไฟล์จากสองไดเรกทอรีเรียกว่า "test1" และ "test2" แต่ละไดเรกทอรีถือสองไฟล์ที่เรียกว่า "picture1" และ "picture2"

 wget https://www.url-of-your-choice.com/test (1,2 )/picture (001,002) jpgk35]
  

การแสดงรายการไฟล์แสดงไฟล์ที่เรียกคืนและวิธีการ ปรับ เปลี่ยนชื่อไฟล์เพื่อหลีกเลี่ยงการปะทะกับไฟล์ที่มีไฟล์ที่มีอยู่

 รูปภาพ LS *. * 

โอบกอดรั้ง

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

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


Linux - บทความยอดนิยม

วิธีการประมวลผลไฟล์บรรทัดโดยบรรทัดในทุบตีสคริปต์ลินุกซ์

Linux Feb 3, 2025

Fatmawati Achmad Zaenuri / Shutterstock มันค่อนข้างง่ายที่จะอ่านเนื้อหาของไฟล์ข..


มีอะไรใหม่ใน Debian 11“เป้า”

Linux Jul 22, 2025

เดเบียน , กำเนิดของการแจกแจง Linux อื่น ๆ อีกมากมายได้ทำการเปิดตัว 11..


วิธีใช้คำสั่ง fsck บน Linux

Linux Aug 18, 2025

Pixza Studio / Shutterstock ข้อมูลสำคัญทั้งหมดของเราตั้งอยู่ในระบบไฟล์ข�..


มีอะไรใหม่ใน GNOME 41?

Linux Sep 16, 2025

สภาพแวดล้อม Desktop Linux ใจจดใจจ่อ 41 ได้รับการปล่อยตัวเมื่อวันที่ 22 กั�..


มีอะไรใหม่ใน Linux Kernel 5.14

Linux Sep 9, 2025

การถ่ายภาพ Sean Locke / Shutterstock เช่นเดียวกับ Linux อายุ 30 ปีเคอร์เนล 5.14 ได�..


มีอะไรใหม่ใน Ubuntu 21.10 ‘เจ้าเล่ห์ Indri’

Linux Oct 14, 2025

ตามบัญญัติ Ubuntu 21.10 "Impish Indri" เคยเป็น การเผยแพร่ เมื่อวันที่ 14 �..


วิธีการอัปเดต Fedora Linux

Linux Nov 10, 2024

ดังนั้นในที่สุดคุณก็ดาวน์โหลดและติดตั้ง Fedora Linux แต่ตอนนี้คุณอาจสงสั..


วิธีแสดงรายการบริการ Linux ด้วย SystemCTL

Linux Oct 18, 2025

คอมพิวเตอร์ Linux ของคุณอาศัยงานพื้นหลังจำนวนมากที่เรียกว่าบริการหรือ..


หมวดหมู่