Lệnh vâng vâng có nghĩa là gì?


29

Tôi đã đưa ra một lệnh trong thiết bị đầu cuối Ubuntu yêu cầu tôi gõ có nhưng tôi phát hiện ra rằng nó chỉ hỏi tôi lần đầu tiên, nhưng tôi đã nhấn enter trước khi tôi nhận ra. Vì vậy, tôi mong đợi một thông báo "lệnh không tìm thấy" nhưng thay vào đó tôi nhận được một dòng "y" không bao giờ kết thúc. Đây dường như là điều duy nhất làm điều này, vì vậy tôi tự hỏi ý nghĩa của lệnh này là gì và tại sao nó lại xuất ra "y"? (Ubuntu 11.10)

Câu trả lời:


14

Từ wikipedia :

Chính nó, lệnh yes xuất ra 'y' hoặc bất cứ điều gì được chỉ định làm đối số, theo sau là một dòng mới liên tục cho đến khi người dùng dừng lại hoặc bị giết; khi được dẫn vào một lệnh, nó sẽ tiếp tục cho đến khi đường ống bị vỡ (nghĩa là chương trình hoàn thành việc thực hiện).

Nó cũng có thể được sử dụng để kiểm tra hệ thống xử lý tải tốt như thế nào, vì sử dụng có kết quả trong việc sử dụng bộ xử lý 100%, đối với các hệ thống có một bộ xử lý (đối với hệ thống đa bộ xử lý, phải chạy một quy trình cho mỗi bộ xử lý). Điều này, ví dụ, có thể hữu ích cho việc điều tra xem hệ thống làm mát của hệ thống có hiệu quả hay không khi bộ xử lý hoạt động ở mức 100%.


30

Cách đây rất lâu (SySV ngày trở về trước), fscklệnh không có -yhoặc có -ntùy chọn. Lệnh sẽ tương tác yêu cầu bạn thay đổi hàng trăm hoặc hàng nghìn mục, mong đợi một 'y' hoặc 'n'. Các yeslệnh được tạo ra để ống để fsck, và một số chương trình khác để có thể trả lời lặp đi lặp lại những câu hỏi tương tác (một lần nữa, đây là SysV ngày, rất lâu trước Tcl và mong đợi). Các yeschương trình phù hợp rất tốt với triết lý UNIX: chương trình nhỏ mà làm những việc cụ thể rất tốt và làm việc với các chương trình khác.


4

Dựa trên thông tin được cung cấp tại đây: http://linux.about.com/l Library / cmd / blcmdl1_yes.htm

Lệnh Linux / Unix: có

Thư viện chỉ huy

TÊN

có - xuất một chuỗi liên tục cho đến khi bị giết

TÓM TẮC

có [CHUINGI] ... có TÙY CHỌN

SỰ MIÊU TẢ

Lặp đi lặp lại một dòng với tất cả các CHUINGI được chỉ định hoặc `y '.

--help hiển thị trợ giúp này và thoát - chuyển đổi thông tin phiên bản đầu ra và thoát
XEM CSONG

Các tài liệu đầy đủ cho có được duy trì như một hướng dẫn Texinfo. Nếu thông tin và chương trình có được cài đặt đúng tại trang web của bạn, lệnh

info yes

sẽ cung cấp cho bạn quyền truy cập vào hướng dẫn đầy đủ.

Theo ý kiến ​​khiêm tốn của tôi, việc sử dụng lệnh "có" nghe có vẻ logic khi bạn phải liên tục ủy quyền một cái gì đó trong một quy trình / tập lệnh bằng cách nhấn phím "y". Mà có thể được kiểm soát bằng cách hủy bỏ thực hiện chương trình.

Dù sao, ai đó khác có thể có kinh nghiệm sử dụng lệnh này.


Tôi không có nhiều kinh nghiệm về Linux, làm thế nào để bạn có thể sử dụng lệnh "có" trong một quy trình / tập lệnh?
Greg Treleaven


1

Lệnh yes sẽ in đối số của nó hoặc "y" nếu trống, cho đến khi bạn kết thúc chương trình hoặc đường ống đầu ra của nó bị đóng. Nó có thể được sử dụng với các chương trình mong đợi một số đầu vào lặp lại, như rm -i.


1
Tại sao bạn sẽ làm một rm lặp nếu bạn sử dụng có để xóa mọi thứ?
từnaboo

@fromnaboo Đó là một ví dụ tồi, tôi biết. Nhưng đôi khi bạn không có quyền truy cập vào hoạt động nội bộ của một chương trình bạn phải sử dụng, và vì vậy, có thể giúp bạn tránh lặp lại vô tận cùng một đầu vào.
daniel kullmann

@fromnaboo Để tăng tính tích cực cho máy của bạn.
Walf
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.