Echo如何用
如何用echo
列印“-n”?
我不知道如何使用超過 30 年的命令列印字元串“-n”
echo
。我試過這些:
Michaels:Scripts$ echo -n Michaels:Scripts$ echo "-n" Michaels:Scripts$ echo -e "-n" Michaels:Scripts$ echo -- -n -- -n Michaels:Script$ echo -- "-n" -- -n Michaels:Script$ echo "\-n" \-n
我使用 Mac OS X ML。我認為這種行為非常奇怪和出乎意料。
如果你不想使用
prinf
你有幾個選項,至少根據這個 SO Q&A,標題為:echo “-n” will not print -n? .這似乎是您最好的選擇:
$ echo "x-n" | cut -c 2- -n
或一些變化:
$ echo -- '-n'|cut -d" " -f2 -n
列印
printf
沒有這個問題:$ printf "%s\n" -n -n
為什麼要使用
echo
?使用printf
:printf -- '-n\n'
或者:
printf '%s\n' -n
與
echo
:echo -n
將以
-n<LF>
符合 UNIX 的echo
.
bash
,dash
, GNU 或zsh
echo (在大多數係統上的預設配置中)可以使用:echo -en '-n\n'
或者(在基於 ASCII 的系統上):
echo -e '\055n'
Zsh
echo
可以這樣做:echo - -n
或者(假設
bsdecho
未啟用該選項):echo '\u002Dn'
魚
echo
有:echo -- -n
Ksh 和 Zsh
print - -n
或者:
print -- -n
bash
(但不是zsh
),假設posix
和xpg_echo
都沒有啟用:echo -n -; echo n
有趣的是,不可能以 POSIX 方式單獨輸出
-n
withecho
(也就是說,或多或少地,可跨 Unices 和 Unix-likes 移植),因為如果第一個參數是-n
或任何參數包含反斜杠字元的行為是未指定的。