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.