Bash
如何將“-e”分配給bash中的變數
我正在嘗試分配
-e
給 Bash 4 中的變數。但該變數仍然為空。例如:
$ var="-e" $ echo $var $ var='-e' $ echo $var $ var="-t" $ echo $var -t
為什麼它可以工作
-t
,但不能-e
?
它可以工作,但執行
echo -e
不會在 Bash 中輸出任何內容,除非同時啟用posix
和xpg_echo
選項,因為-e
然後將其解釋為選項:$ help echo echo: echo [-neE] [arg ...] Write arguments to the standard output. Display the ARGs, separated by a single space character and followed by a newline, on the standard output. Options: -n do not append a newline -e enable interpretation of the following backslash escapes -E explicitly suppress interpretation of backslash escapes
採用
printf "%s\n" "$var"
反而。
正如評論中的 cas 所指出的,Bash
declare -p var
(typeset -p var
在 ksh、zsh 和 yash(以及 bash)中)可用於告知變數的確切類型和內容。