Làm thế nào để kết hợp nhiều lệnh trong terminal?


25

Tôi có các lệnh sau.

cd import
zcat urls1.sql.gz | mysql -u root -p urls
cd /var/www/project1/
nano 1.php

Đến bây giờ tôi đang thực hiện từng cái một.

Có cách nào để kết hợp các lệnh đó trong một dòng không?


3
Bạn đã làm bất kỳ nghiên cứu cho câu hỏi này?
don.joey

Đó không phải là câu hỏi của tôi. Chỉ là nửa phút của Google sẽ cho bạn câu trả lời. Do đó, tôi đã tự hỏi những gì bạn đã tìm thấy, nếu có bất cứ điều gì.
don.joey

Điều gì làm cho bạn nghĩ rằng tôi đánh giá thấp câu hỏi của bạn? Tôi sẽ bỏ bê sự tức giận của bạn. Một lưu ý phụ, câu hỏi "cái nào tốt hơn: sử dụng ;hoặc &&thực thi nhiều lệnh trong một dòng" sẽ tốt hơn rất nhiều, có nhiều nghiên cứu hơn và có khả năng sẽ thu hút được rất nhiều sự ủng hộ.
don.joey

Có một biến thể chung hơn của câu hỏi này có sẵn tại askubfox.com/questions/334994/ . Nó giải quyết chính xác câu hỏi tôi đề cập trong bình luận trước.
don.joey

Đừng lo lắng Giri. Bản chất của câu hỏi là thú vị. Tôi đã nỗ lực để tạo ra một biến thể chung của nó.
don.joey

Câu trả lời:


33

Có, tách biệt với dấu chấm phẩy như vậy:

dir; ls -l

Hầu hết các lanugauges / shell sử dụng dấu chấm phẩy để biểu thị sự kết thúc của một lệnh và để bắt đầu mới trong khi đánh giá từ trái sang phải.

Hoặc như @RobieBasak khuyến nghị, hãy sử dụng && thay vì; để bảo vệ chống lại tai nạn mã hóa.

dir && ls -l

23
Đó là một ý tưởng tốt để sử dụng &&thay vì ;. Điều này đảm bảo rằng các lệnh tiếp theo chỉ được thực hiện nếu các lệnh trước đó không bị lỗi. Điều này tránh một số hậu quả khó xử. Ví dụ: cd /somewhere_else; rm -Rf *có thể làm điều gì đó tai hại nếu /somewhere_elsekhông tồn tại hoặc bạn đánh vần sai; cd /somewhere_else && rm -Rf *bảo vệ bạn khỏi điều này.
Robie Basak

2
Giải pháp '&&' rất tốt, nên là đề xuất đầu tiên trong câu trả lời này. Vui lòng chỉnh sửa câu trả lời của bạn và thúc đẩy câu trả lời tốt hơn đến vị trí đầu tiên.
Kerem Baydoğan

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.