Ý nghĩa của giá trị trả lại 127 từ $ là gì? trong UNIX.
Trả lời
Giá trị 127 được trả về bởi /bin/sh
khi lệnh đã cho không được tìm thấy trong biến hệ thống PATH
của bạn và nó không phải là lệnh trình bao tích hợp sẵn. Nói cách khác, hệ thống không hiểu lệnh của bạn, bởi vì nó không biết nơi tìm nhị phân bạn đang cố gắng gọi.
Nó không có ý nghĩa đặc biệt, khác hơn so với quá trình cuối cùng để thoát đã làm như vậy với một trạng thái thoát của 127.
Tuy nhiên, nó cũng được sử dụng bởi bash (giả sử bạn đang sử dụng bash như một vỏ) để cho bạn biết rằng lệnh bạn đã thực thi không thể được thực thi (nghĩa là lệnh không thể tìm thấy). Rất tiếc là không thể ngay lập tức khấu trừ được, nếu quá trình này đã thoát với trạng thái 127 hoặc nếu không thể tìm thấy.
EDIT:
Không ngay lập tức khấu trừ, ngoại trừ đầu ra trên bàn điều khiển, nhưng đây là ngăn xếp tràn, vì vậy tôi cho rằng bạn đang thực hiện việc này trong tập lệnh.
Quy ước vỏ là thực thi thành công nên thoát với giá trị 0. Mọi thứ khác có thể được hiểu là lỗi của một số loại, trên một phần của bash hoặc tệp thực thi bạn vừa chạy. Xem thêm $ PIPESTATUS và EXIT TÌNH TRẠNG phần của trang bash người đàn ông:
For the shell’s purposes, a command which exits with a zero exit status has succeeded. An exit status of zero indicates success. A non-zero exit status indicates failure. When a command terminates on a fatal signal N, bash uses the value of 128+N as the exit status.
If a command is not found, the child process created to execute it returns a status of 127. If a com-
mand is found but is not executable, the return status is 126.
If a command fails because of an error during expansion or redirection, the exit status is greater than
zero.
Shell builtin commands return a status of 0 (true) if successful, and non-zero (false) if an error
occurs while they execute. All builtins return an exit status of 2 to indicate incorrect usage.
Bash itself returns the exit status of the last command executed, unless a syntax error occurs, in
which case it exits with a non-zero value. See also the exit builtin command below.
127 - command not found
dụ: $ caat Các thông báo lỗi sẽ
bash:
caat: command not found
bây giờ bạn kiểm tra sử dụng echo $?
ví dụ rất hay! – Victor
Nói chung nó có nghĩa là:
127 - command not found
nhưng nó cũng có thể có nghĩa là lệnh được tìm thấy,
nhưng một thư viện được yêu cầu bởi lệnh KHÔNG được tìm thấy.
Nếu bạn đang cố gắng chạy chương trình bằng ngôn ngữ kịch bản, bạn có thể cần bao gồm đường dẫn đầy đủ của ngôn ngữ kịch bản và tệp để thực thi. Ví dụ:
exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css');
Cảm ơn, điều này đã làm việc cho tôi. Vì vậy, tôi đã làm gs và sau đó sử dụng đường dẫn đầu ra trong kịch bản của tôi. Đã làm việc.. – Juan
Lỗi này đôi khi cũng bị lừa dối. Nó nói rằng tập tin không được tìm thấy mặc dù các tập tin thực sự là hiện tại. Có thể là do các ký tự đặc biệt không đọc được không hợp lệ có trong các tệp có thể do trình chỉnh sửa bạn đang sử dụng gây ra. Liên kết này có thể giúp bạn trong những trường hợp như vậy.
-bash: ./my_script: /bin/bash^M: bad interpreter: No such file or directory
Cách tốt nhất để tìm hiểu xem đó là vấn đề này là nơi đơn giản một echo tuyên bố trong toàn bộ tập tin và xác minh nếu lỗi tương tự được ném.
- 1. exec luôn trả về -1 (hoặc 127)
- 2. LoadLibrary() mã lỗi 127
- 3. Biên dịch vim từ nguồn trên Mac OSX và nhận lỗi 'shell trả về 127'?
- 4. lấy mã trả về từ lệnh plink?
- 5. Giá trị trả về từ mã Java
- 6. Xem bản pdf với vim latex-suite:! Bắt đầu Xem trước vỏ trả về 127
- 7. Lớp/mã iOS nào trả về từ Bắc?
- 8. Trả về mã lỗi từ CMD đến Powershell
- 9. Làm cách nào để nhận mã trả về từ CustomAction?
- 10. SQLite trả về mã lỗi 14
- 11. Component trả về mã lỗi: 0x80040111 (NS_ERROR_NOT_AVAILABLE)
- 12. Mã hóa trả về XML vận chuyển
- 13. LCID 127 là gì?
- 14. App Engine trả về JSON từ JsonProperty
- 15. VBScript Cách trả về ArrayList từ hàm
- 16. Tệp trả về từ máy chủ Resteasy
- 17. trả về lỗi Json từ ASP.NET MVC
- 18. Trả về char []/chuỗi từ hàm
- 19. Trả về chuỗi C từ một hàm
- 20. Cấu trúc trả về từ hàm (C)
- 21. trả về hai giá trị từ webservice
- 22. Trả về mảng 2d từ một hàm
- 23. getActivity trả về null từ đoạn
- 24. Trả về con trỏ từ hàm C
- 25. Từ điển trả về MySQL adbapi xoắn
- 26. Erlang: Trả về từ một hàm
- 27. Trả về đối tượng từ hàm
- 28. Trả về đối tượng từ CursorAdapter.get()
- 29. Bắt giá trị trả về từ Task.Run
- 30. Trả về sha1() băm từ couchdb
Điều này cũng xảy ra nếu tập lệnh bash không có chế độ "+ x" nhưng thực sự tồn tại. – MatthewKremer
Bạn có thể thử sử dụng 'which [program]' để xem hệ nhị phân nào đang sử dụng. Nếu nó xuất hiện trống, bước tiếp theo là kiểm tra bit thực thi và PATH. – cr125rider
@ cr125rider, 'which' không đặc biệt chính xác - nó không biết về bí danh, hàm shell, ghi nhớ tra cứu PATH hoặc các yếu tố khác bên trong trạng thái shell. Tốt hơn nhiều khi sử dụng 'type', một nội trang hệ vỏ mà biết về tất cả những thứ đó. –