Hầu hết các lệnh Linux mà bạn gặp không phụ thuộc vào các thao tác khác để người dùng có thể khai thác hết tiềm năng của chúng, nhưng vẫn tồn tại một tập hợp nhỏ các công cụ dòng lệnh mà bạn có thể nói là vô dụng khi sử dụng độc lập, nhưng lại trở thành công cụ phải có hoặc phải biết khi sử dụng với các thao tác dòng lệnh khác. Một trong những công cụ như vậy là yes, và trong hướng dẫn này, chúng ta sẽ thảo luận về lệnh này với một số ví dụ dễ hiểu.
Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ được cung cấp trong hướng dẫn này đã được thử nghiệm trên Ubuntu 16.04 LTS.
Và đây là những gì trang hướng dẫn nói về công cụ này:
Các ví dụ dạng Hỏi & Đáp sau đây sẽ giúp bạn hiểu rõ hơn về cách sử dụng yes.
Tôi chỉ có thể chụp phần cuối của đầu ra vì tần suất đầu ra quá nhanh, nhưng ảnh chụp màn hình sẽ giúp bạn hình dung được loại đầu ra mà công cụ tạo ra.
Bạn cũng có thể cung cấp chuỗi tùy chỉnh để lệnh yes sử dụng trong đầu ra. Ví dụ:
Ví dụ, hãy xem xét tình huống sau:
Bạn có thể thấy rằng người dùng phải nhập 'y' cho mỗi truy vấn. Trong những tình huống như thế này, yes có thể giúp ích. Đối với tình huống trên, bạn có thể sử dụng yes theo cách sau:
yes | rm -ri test
Vì vậy, lệnh đảm bảo rằng người dùng không phải viết 'y' mỗi lần khi rm yêu cầu. Tất nhiên, người ta sẽ lập luận rằng chúng ta có thể chỉ cần xóa tùy chọn '-i' khỏi lệnh rm. Đúng vậy, tôi lấy ví dụ này vì nó đủ đơn giản để mọi người hiểu được những tình huống mà câu trả lời "có" có thể hữu ích.
Một tình huống khác - và có lẽ liên quan hơn - là khi bạn sử dụng lệnh fsck và không muốn nhập 'y' mỗi lần hệ thống hỏi quyền của bạn trước khi sửa lỗi.
Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ được cung cấp trong hướng dẫn này đã được thử nghiệm trên Ubuntu 16.04 LTS.
Lệnh yes của Linux
Lệnh yes trong Linux sẽ xuất ra một chuỗi liên tục cho đến khi bị tắt. Sau đây là cú pháp của lệnh:
Mã:
yes [STRING]...
yes OPTION
Mã:
Lặp lại đầu ra một dòng với tất cả các STRING đã chỉ định hoặc 'y'.
Câu hỏi 1. Lệnh yes hoạt động như thế nào?
Như trang hướng dẫn nói, lệnh yes tạo ra đầu ra liên tục - 'y' theo mặc định hoặc bất kỳ chuỗi nào khác nếu người dùng chỉ định. Đây là ảnh chụp màn hình cho thấy lệnh yes đang hoạt động:Tôi chỉ có thể chụp phần cuối của đầu ra vì tần suất đầu ra quá nhanh, nhưng ảnh chụp màn hình sẽ giúp bạn hình dung được loại đầu ra mà công cụ tạo ra.
Bạn cũng có thể cung cấp chuỗi tùy chỉnh để lệnh yes sử dụng trong đầu ra. Ví dụ:
Mã:
yes HTF
Câu hỏi 2. Lệnh yes giúp ích gì cho người dùng?
Đó là một câu hỏi hợp lệ. Lý do là, từ những gì yes thực hiện, thật khó để hình dung ra tính hữu ích của công cụ này. Nhưng bạn sẽ ngạc nhiên khi biết rằng yes không chỉ tiết kiệm thời gian của bạn mà còn tự động hóa một số tác vụ thông thường.Ví dụ, hãy xem xét tình huống sau:
Bạn có thể thấy rằng người dùng phải nhập 'y' cho mỗi truy vấn. Trong những tình huống như thế này, yes có thể giúp ích. Đối với tình huống trên, bạn có thể sử dụng yes theo cách sau:
yes | rm -ri test
Vì vậy, lệnh đảm bảo rằng người dùng không phải viết 'y' mỗi lần khi rm yêu cầu. Tất nhiên, người ta sẽ lập luận rằng chúng ta có thể chỉ cần xóa tùy chọn '-i' khỏi lệnh rm. Đúng vậy, tôi lấy ví dụ này vì nó đủ đơn giản để mọi người hiểu được những tình huống mà câu trả lời "có" có thể hữu ích.
Một tình huống khác - và có lẽ liên quan hơn - là khi bạn sử dụng lệnh fsck và không muốn nhập 'y' mỗi lần hệ thống hỏi quyền của bạn trước khi sửa lỗi.