Tôi không thể cho bạn biết lý do tại sao nó không hỗ trợ lập luận đó (bạn có thể phải hỏi các lập trình viên về điều đó). Tôi chỉ biết rằng trên hộp linux của tôi, tôi nhận được điều này:
$ /bin/echo --help
Usage: /bin/echo [SHORT-OPTION]... [STRING]...
or: /bin/echo LONG-OPTION
Echo the STRING(s) to standard output.
-n do not output the trailing newline
-e enable interpretation of backslash escapes
-E disable interpretation of backslash escapes (default)
--help display this help and exit
--version output version information and exit
If -e is in effect, the following sequences are recognized:
*emphasized text*
\0NNN the character whose ASCII code is NNN (octal)
\\ backslash
\a alert (BEL)
\b backspace
\c produce no further output
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
NOTE: your shell may have its own version of echo, which usually supersedes
the version described here. Please refer to your shell's documentation
for details about the options it supports.
Report echo bugs to bug-coreutils@gnu.org
GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
General help using GNU software: <http://www.gnu.org/gethelp/>
Report echo translation bugs to <http://translationproject.org/team/>
- điều này không đề cập đến việc
\e
trốn thoát
- Nó nói rằng đó là
/bin/echo
từ coreutils gnu. Khi apple thay đổi nguồn của các thành phần hệ thống unix của chúng theo thời gian (ví dụ: chuyển từ zsh sang bash), hãy kiểm tra xem có sự thay đổi nào /bin/echo
giữa Leopard và Snow Leopard không. Nếu đó là gnu, bạn có thể hỏi mọi người tại gnu.org tại sao họ chọn không bao gồm các chuỗi đó.
Đối với cách giải quyết (điều đó thú vị hơn): Không sử dụng /bin/echo
, nhưng nội dung dựng sẵn của bash echo
hoạt động trên các hộp linux. Nếu chúng thay đổi thành bash mà không có tiếng vang dựng sẵn (hoặc một cái gì đó thậm chí còn khó hiểu hơn), bạn cũng có thể thử tính năng không được biết đến rộng rãi này của vỏ của bạn (hoạt động ít nhất là trong bash và zsh):
$ echo $'\e[34m''COLORS'
Đây là phần phù hợp của trang web của bash:
Words of the form $'string' are treated specially. The word expands to string, with
backslash-escaped characters replaced as specified by the ANSI C standard. Backslash
escape sequences, if present, are decoded as follows:
\a alert (bell)
\b backspace
\e an escape character
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\' single quote
\nnn the eight-bit character whose value is the octal value nnn (one to three
digits)
\xHH the eight-bit character whose value is the hexadecimal value HH (one or
two hex digits)
\cx a control-x character
The expanded result is single-quoted, as if the dollar sign had not been present.
A double-quoted string preceded by a dollar sign ($) will cause the string to be trans‐
lated according to the current locale. If the current locale is C or POSIX, the dollar
sign is ignored. If the string is translated and replaced, the replacement is double-
quoted.