Làm thế nào để sử dụng Brace Expansion trong Bash Shell Linux

May 12, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock [số 8]

Nẹp mở rộng là một kỹ thuật hữu ích để tạo danh sách các chuỗi có thể được sử dụng trong các tập lệnh và bí danh và trên dòng lệnh linux. Tiết kiệm thời gian và tránh những sai lầm bằng cách gõ ít hơn.

Niềng răng mở rộng.

Trước vỏ bash thực thi một lệnh Trong một cửa sổ đầu cuối hoặc một dòng trong tập lệnh, nó sẽ kiểm tra xem nó có cần thực hiện bất kỳ sự thay thế nào trên lệnh hay không. Tên biến được thay thế bằng các giá trị của chúng, các bí danh sẽ được thay thế bằng các lệnh mà họ là tốc ký và bất kỳ sự mở rộng nào được thực hiện. Mở rộng nẹp là một dạng mở rộng được hỗ trợ bởi Bash.

Mở rộng nẹp có sẵn trong vỏ hiện đại, nhưng nó có thể bị thiếu từ một số vỏ cũ. Nếu bạn sẽ sử dụng sự mở rộng nẹp trong các tập lệnh, hãy đảm bảo rằng bạn gọi một shell hỗ trợ mở rộng nẹp, chẳng hạn như bash:

Chúng tôi sẽ sử dụng Bash cho các ví dụ của chúng tôi.

Tạo danh sách các chuỗi có vẻ có vẻ mới lạ hơn một lợi ích, nhưng nó cung cấp một số chức năng có thể tiết kiệm thời gian và tổ hợp phím. Thông thường, nó có thể cung cấp một giải pháp đơn giản và thanh lịch cho một vấn đề hoặc yêu cầu.

Mở rộng đơn giản

Việc mở rộng nẹp được chứa giữa một cặp niềng răng "{}". Nó có thể là một danh sách các vật phẩm được phân tách bằng dấu phẩy hoặc một công cụ xác định phạm vi. Không gian không được phép bên trong niềng răng trừ khi bạn kết thúc chuỗi trong dấu ngoặc kép " " . "

Đối với một danh sách được phân tách bằng dấu phẩy, quá trình mở rộng sẽ lấy từng phần tử lần lượt và chuyển nó sang lệnh gọi. Trong ví dụ này, nó là echo. đó đơn giản in chúng trong cửa sổ đầu cuối . Lưu ý rằng dấu phẩy bị bỏ qua.

 echo {một, hai, ba, bốn} 

Một danh sách có thể là từ hoặc chữ số.

 echo {1,2,3,4} 

Thứ tự của các yếu tố danh sách là hoàn toàn tùy ý.

 Echo (4,2,3,1) 

Phạm vi mở rộng có một sự khởi đầu và một ký tự kết thúc được kết nối với hai giai đoạn .. "Không có bất kỳ khoảng trắng nào. Tất cả các phần tử danh sách còn thiếu được cung cấp tự động bởi sự mở rộng để toàn bộ phạm vi từ ký tự bắt đầu đến ký tự kết thúc được tạo.

Điều này sẽ in các chữ số từ 1 đến 10.

 echo {1.10} 

Việc đánh số là tùy ý. Nó không phải bắt đầu tại một.

 echo {3.12} 

Phạm vi có thể được chỉ định để chúng chạy về phía sau. Điều này sẽ tạo một danh sách từ năm xuống một.

 echo {5..1} 

Phạm vi có thể bao gồm số âm.

 echo {4 ..- 4} 

Như chúng ta đã chỉ ra, một phạm vi có một sự khởi đầu và kết thúc tính cách . Nó không phải là một số. Nó có thể là một lá thư.

 echo {q....v} 

Các chữ cái có thể chạy về phía sau, quá.

 echo {f..đa} 

Sử dụng sự mở rộng nẹp với các vòng lặp

Bạn có thể sử dụng sự mở rộng nẹp với phạm vi trong các vòng lặp trong các tập lệnh.

 đối với tôi trong {3..7}
làm
   echo $ I.
thực hiện 

Phạm vi mở rộng nẹp cho phép bạn sử dụng các ký tự như biến vòng lặp.

 cho tôi trong {m..q}
làm
   echo $ I.
thực hiện 

Vòng lặp thường được sử dụng trong các tập lệnh, nhưng không có gì để ngăn bạn gõ chúng vào dòng lệnh để xem điều gì sẽ xảy ra.

 đối với tôi trong {3..7}; Do echo $ i; thực hiện 

 cho tôi trong {m..q}; Do echo $ i; thực hiện 

Nối và làm tổ

Hai bản mở rộng liền kề không hành động độc lập lần lượt. Họ tương tác. Mỗi phần tử trong lần mở rộng đầu tiên được thực hiện bởi từng yếu tố trong lần mở rộng thứ hai.

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

Mở rộng cũng có thể được lồng nhau. Một sự mở rộng lồng nhau sẽ hoạt động trên phần tử ngay trước nó.

 echo {pc-1, part-2 {a, b, c, d}, phần 3} 

Bạn cũng có thể làm tổ mở rộng bằng cách tạo một danh sách các bản mở rộng phạm vi được phân tách bằng dấu phẩy.

 echo {{5...0}, {1.5}} 

Lời mở đầu và Postcript.

Bạn có thể đặt văn bản trước và sau khi mở rộng nẹp để có văn bản đó có trong kết quả mở rộng. Văn bản đặt trước sự mở rộng được gọi là lời mở đầu, trong khi văn bản được đặt phía sau sự mở rộng của nẹp được gọi là PostScript.

Lệnh này sử dụng một phần mở đầu.

 echo chương {1..3} 

Ví dụ này sử dụng PostScript:

 echo {nội dung, giấy, bilbiography} .md 

Và lệnh này sử dụng cả hai.

 echo chương- {1..4} .md 

Mở rộng tên tệp và thư mục

Như bạn có thể đoán bây giờ, một trong những cách sử dụng chính của việc mở rộng nẹp là tạo tên tệp và thư mục có thể được truyền cho các lệnh khác. Chúng tôi đã sử dụng echo. Là một cách thuận tiện để xem chính xác những gì xảy ra khi việc mở rộng được kích hoạt. Bạn có thể thay thế bất kỳ lệnh nào có tên tệp hoặc tên thư mục dưới dạng đầu vào và sử dụng sự mở rộng nẹp với nó.

Nhanh chóng Tạo một số tệp , sử dụng chạm vào :

 Chạm vào tệp- {1..4} .txt 
 ls * .txt 

Nếu bạn có nhiều tệp có cùng tên cơ sở nhưng các phần mở rộng tệp khác nhau và bạn muốn thực hiện thao tác trên một tập hợp con của chúng, việc mở rộng nẹp có thể giúp ích. Tại đây, chúng tôi đang nén một tập hợp con của các tệp có "chương trình" dưới dạng basename thành một tệp zip có tên là "nguồn-code.zip."

Các thư mục phát triển chứa nhiều tệp sẽ có cùng một basename như chương trình chính của bạn. Thông thường, bạn không muốn sao lưu hoặc phân phối các tệp như tệp đối tượng ".o". Đây là một cách gọn gàng để chỉ bao gồm các loại tiền lãi.

 Chương trình mã nguồn ZIP {.c, .h, .css} 

Lệnh này sẽ tạo một bản sao của một tệp và nối thêm ".bak" với nó, tạo một bản sao lưu của tệp gốc. Một điểm thú vị cần lưu ý là việc mở rộng nẹp chứa danh sách được phân tách bằng dấu phẩy, nhưng phần tử đầu tiên trống. Nếu chúng tôi không bao gồm dấu phẩy, việc mở rộng sẽ không diễn ra.

 cp nẹp / mới / prog-1.c {,. Bak} 
 ls nẹp / mới / prog-1.c.bak 

Để thực hiện một số hành động trên hai tệp trong các thư mục khác nhau, chúng ta có thể sử dụng mở rộng nẹp trên đường dẫn đến các tệp.

Trong ví dụ này, thư mục "nẹp" chứa hai thư mục con, một tên gọi là "mới" và một cái gọi là "cũ". Chúng chứa các phiên bản khác nhau của cùng một tập hợp các tệp mã nguồn. Chúng tôi sẽ sử dụng. khác nhau chương trình để xem sự khác biệt giữa hai phiên bản của "prog-1.c".

 Nẹp khác nhau / {mới, cũ} / prog-1.c 

Nếu bạn có một bộ xương tiêu chuẩn của các thư mục mà bạn cần tạo khi bắt đầu một dự án, bạn có thể tạo chúng nhanh chóng bằng cách sử dụng brace expansion. Các mkdir. -P (phụ huynh) tùy chọn tạo bất kỳ thư mục cha mẹ bị mất khi một thư mục con được tạo ra.

 MKDIR -P {nguồn, xây dựng, man, trợ giúp {/ trang, / yelp, / hình ảnh}} 
 Cây 

Bạn có thể sử dụng mở rộng nẹp với wget. đến Tải xuống nhiều tệp .

Trong lệnh này, chúng ta sẽ tải xuống các tệp từ hai thư mục, được gọi là "Test1" và "Test2". Mỗi thư mục chứa hai tệp có tên là "Picture1" và "Ảnh2".

 wget https://www.url-of-your-choice.com/test {2,21/picture <001.0021.jpg

Liệt kê các tệp hiển thị cho bạn các tệp đã được lấy và cách wget. Đổi tên tệp để tránh tên xung đột với các tệp hiện có.

 ls hình ảnh *. * 

Ôm lấy nẹp.

Có vẻ như sự mở rộng của niềng răng là một trong những khác Những bí mật được giữ tốt nhất của Linux . Nhiều người nói với tôi rằng họ chưa bao giờ nghe nói về việc mở rộng nẹp, trong khi những người khác thông báo cho tôi rằng đó là một trong những thủ thuật dòng lệnh yêu thích của họ.

Hãy thử và nó chỉ có thể tìm đường vào các thủ thuật Go-Line-Line của bạn.


Linux - Các bài báo phổ biến nhất

Cách tiêu diệt các quy trình zombie trên Linux

Linux Nov 25, 2025

Fatmawati Achmad Zaenuri / Shutterstock [số 8] Các chương trình được viết kém hoặc thực hiện xấu có thể rời đi quy trình ..


6 xuất sắc nhất Lightweight Linux distro

Linux Jul 27, 2025

3dmi / shutterstock.com. [số 8] Nếu máy tính Windows hoặc Mac của bạn đã cũ và đang vật lộn để theo kịp, cài đặt Linux có th..


5 bản phân phối Linux chuyên dụng với các tính năng độc đáo

Linux Jul 20, 2025

Đọc qua danh sách dài hoạt hình của các bản phân phối Linux hiện tại, hương vị lặt vặt và các chồi off-chồi đều bắt đầu mờ với nhau. Để kh�..


Native Gaming trên Linux có thể chết, và đó là okay

Linux Sep 27, 2025

DC Studio / Shutterstock.com [số 8] Các Dàn Steam. , được công bố vào tháng 8 năm 2021, có các vòng tròn chơi game Linux nói..


KDE Connect là Cuối cùng Đến với iPhone

Linux Oct 26, 2025

Kde. [số 8] Nếu bạn đang tìm kiếm một cách dễ dàng để làm cho iPhone của bạn chơi đẹp với Máy tính để bàn KDE. , hôm..


Cách xử lý các không gian trong tên tệp trên Linux

Linux Dec 14, 2025

Giống như hầu hết các hệ điều hành, Linux hỗ trợ các tên tệp với không gian trong đó. Nhưng sử dụng các tên tệp này trên dòng lệnh không phải lúc n�..


Cách tích hợp các ứng dụng và tập lệnh vào máy tính để bàn Linux

Linux Oct 10, 2025

Trên Linux, một ứng dụng không có tệp máy tính để bàn giành được tích hợp với môi trường máy tính để bàn của bạn. Hầu hết các ứng dụng cung c�..


Cách liệt kê các biến môi trường trên Linux

Linux Oct 31, 2025

Trên Linux, các biến môi trường chứa các giá trị và cài đặt quan trọng. Các tập lệnh, ứng dụng và shells đọc các giá trị này, thường để tự cấu h..


Thể loại