Saya tidak bisa memberi tahu Anda mengapa itu tidak mendukung argumen itu (Anda mungkin harus bertanya kepada programmer tentang itu). Saya hanya tahu bahwa di kotak linux saya, saya mendapatkan ini:
$ /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/>
- ini tidak menyebutkan
\e
lolos
- dikatakan bahwa itu
/bin/echo
dari gnu coreutils. Saat apel mengubah sumber komponen sistem unix mereka dari waktu ke waktu (mis. Pindah dari zsh ke bash), periksa apakah ada perubahan /bin/echo
antara Leopard dan Snow Leopard. Jika itu adalah gnu, Anda dapat bertanya kepada orang-orang di gnu.org mengapa mereka memilih untuk tidak memasukkan urutan itu.
Adapun workarounds (itu lebih menarik): Tidak menggunakan /bin/echo
, tetapi builtin bash echo
bekerja pada kotak linux. Jika mereka berubah menjadi bash tanpa echo bawaan (atau sesuatu yang bahkan lebih tidak jelas), Anda juga bisa mencoba fitur shell yang tidak dikenal luas ini (setidaknya berfungsi dalam bash dan zsh):
$ echo $'\e[34m''COLORS'
Ini adalah bagian yang cocok dari halaman manual 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.