Bash

如何將“-e”分配給bash中的變數

  • August 26, 2019

我正在嘗試分配-e給 Bash 4 中的變數。但該變數仍然為空。

例如:

$ var="-e" 
$ echo $var

$ var='-e' 
$ echo $var

$ var="-t" 
$ echo $var
-t

為什麼它可以工作-t,但不能-e

它可以工作,但執行echo -e不會在 Bash 中輸出任何內容,除非同時啟用posixxpg_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 vartypeset -p var在 ksh、zsh 和 yash(以及 bash)中)可用於告知變數的確切類型和內容。

請參閱:為什麼 printf 比 echo 更好?

引用自:https://unix.stackexchange.com/questions/537289