Thứ kết hợp phép thuật của bạn là một dấu chấm phẩy ... và dấu ngoặc nhọn:
{ cat wordlist.txt ; ls ~/folder/* ; } | wc -l
Các dấu ngoặc nhọn chỉ nhóm các lệnh lại với nhau, do đó dấu hiệu đường ống |
ảnh hưởng đến đầu ra kết hợp.
Bạn cũng có thể sử dụng dấu ngoặc đơn ()
xung quanh một nhóm lệnh, sẽ thực thi các lệnh trong một lớp con. Điều này có một tập hợp khác biệt tinh tế với dấu ngoặc nhọn, ví dụ: thử cách sau:
cd $HOME/Desktop ; (cd $HOME ; pwd) ; pwd
cd $HOME/Desktop ; { cd $HOME ; pwd ; } ; pwd
Bạn sẽ thấy rằng tất cả các biến môi trường, bao gồm thư mục làm việc hiện tại, được đặt lại sau khi thoát khỏi nhóm dấu ngoặc đơn, nhưng không phải sau khi thoát khỏi nhóm dấu ngoặc nhọn.
Đối với dấu chấm phẩy, các lựa chọn thay thế bao gồm &&
và ||
các dấu hiệu, sẽ chỉ thực hiện một cách có điều kiện lệnh thứ hai nếu lần đầu tiên thành công hoặc nếu không, ví dụ,
cd $HOME/project && make
ls $HOME/project || echo "Directory not found."