Kết hợp hai hoặc nhiều lệnh trên dòng lệnh còn được gọi là "chuỗi lệnh". Chúng tôi sẽ chỉ cho bạn những cách khác nhau để bạn có thể kết hợp các lệnh trên dòng lệnh.
Tùy chọn một: Toán tử dấu chấm phẩy (;)
Toán tử dấu chấm phẩy (;) cho phép bạn thực hiện nhiều lệnh liên tiếp, bất kể lệnh trước đó có thành công hay không. Ví dụ, mở một cửa sổ Terminal (Ctrl + Alt + T trong Ubuntu và Linux Mint). Sau đó, nhập ba lệnh sau trên một dòng, được phân tách bằng dấu chấm phẩy và nhấn Enter. Điều này sẽ cung cấp cho bạn một danh sách các thư mục hiện hành (
ls
), tìm hiểu bạn hiện đang ở thư mục nào (
pwd
) và hiển thị tên đăng nhập của bạn (
whoami
) tất cả trong một.
ls; pwd; whoami
Bạn cũng không phải đặt dấu cách giữa dấu chấm phẩy và các lệnh. Bạn có thể nhập ba lệnh như
ls;pwd;whoami
. Tuy nhiên, các khoảng trống làm cho lệnh kết hợp dễ đọc hơn, điều này đặc biệt hữu ích nếu bạn đang đặt một lệnh kết hợp vào một kịch bản lệnh shell.
Tùy chọn hai: Toán tử hợp lý và toán tử (&&)
Nếu bạn muốn lệnh thứ hai chỉ chạy nếu lệnh đầu tiên thành công, hãy tách các lệnh bằng toán tử AND hợp lý, đó là hai ký hiệu (
&&
). Ví dụ, chúng ta muốn tạo một thư mục có tên MyFolder và sau đó thay đổi thư mục đó - miễn là nó được tạo thành công. Vì vậy, chúng ta gõ lệnh sau trên dòng lệnh và nhấn Enter.
mkdir MyFolder && cd MyFolder
Thư mục đã được tạo thành công, vì vậy
cd
lệnh đã được thực thi và chúng ta đang ở trong thư mục mới.
Chúng tôi khuyên bạn nên sử dụng toán tử logic AND thay vì toán tử dấu chấm phẩy hầu hết thời gian (
;
). Điều này đảm bảo rằng bạn không làm bất cứ điều gì tai hại. Ví dụ, nếu bạn chạy một lệnh để thay đổi một thư mục và sau đó buộc loại bỏ tất cả mọi thứ trong thư mục đó đệ quy (
cd /some_directory; rm -Rf *
), bạn có thể hủy hoại hệ thống của mình nếu thay đổi thư mục không xảy ra. Không phải chúng tôi khuyên bạn nên chạy lệnh để vô điều kiện xóa tất cả các tệp trong một thư mục cùng một lúc.
Tùy chọn ba: Toán tử logic hoặc toán tử (||)
Đôi khi bạn có thể muốn thực hiện lệnh thứ hai chỉ khi lệnh đầu tiên không phảithành công. Để làm điều này, chúng tôi sử dụng toán tử OR hợp lý hoặc hai thanh dọc (
||
). Ví dụ: chúng tôi muốn kiểm tra xem thư mục MyFolder có tồn tại hay không (
[ -d ~/MyFolder ]
) và tạo nó nếu nó không (
mkdir ~/MyFolder
). Vì vậy, chúng ta gõ lệnh sau tại dấu nhắc và nhấn Enter.
[ -d ~/MyFolder ] || mkdir ~/MyFolder
Đảm bảo có một dấu cách sau dấu ngoặc đầu tiên và trước dấu ngoặc thứ hai hoặc lệnh đầu tiên kiểm tra xem thư mục có tồn tại không hoạt động hay không.
Trong ví dụ của chúng ta, thư mục MyFolder không tồn tại, do đó lệnh thứ hai tạo thư mục.
Kết hợp nhiều nhà khai thác
Bạn cũng có thể kết hợp nhiều toán tử trên dòng lệnh. Ví dụ: trước tiên chúng tôi muốn kiểm tra xem tệp có tồn tại hay không (
[ -f ~/sample.txt ]
). Nếu có, chúng tôi sẽ in một thông báo trên màn hình để nói như vậy (
echo “File exists.”
). Nếu không, chúng tôi tạo tệp (
touch ~/sample.txt
). Vì vậy, chúng ta gõ lệnh sau tại dấu nhắc lệnh và nhấn Enter.
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
Trong ví dụ của chúng tôi, tệp không tồn tại, vì vậy tệp đã được tạo.
-
A; B
- Chạy A và sau đó B, bất kể thành công hay thất bại của A
-
A && B
- Chỉ chạy B nếu A thành công
-
A || B
- Chỉ chạy B nếu A thất bại
Tất cả các phương thức kết hợp các lệnh này cũng có thể được sử dụng trong các kịch bản lệnh shell trên cả Linux và Windows 10.
Bạn cũng có thể tự động sửa lỗi chính tả và lỗi chính tả khi sử dụng "cd" trên dòng lệnh trong Linux để tránh hậu quả nghiêm trọng khi kết hợp các lệnh.