为什么 echo 和 printf 不能输出仅包含空格字符的变量?

为什么 echo 和 printf 不能输出仅包含空格字符的变量?
var1=$(printf "\n\x0A\n")

var2=$(printf "\na\nb\nc")

使用 Android 终端,输出echo -e "$var1"(echo 和 printf 相同)什么都没有,甚至连 3 个新行也没有。但echo -e "$var2"echo "$var2"printf "$var2"输出:

a
b
c

为什么 $var2 的输出包含空格字符而不包含 $var1 ?

\n并且\x0A具有完全相同的行为。)

答案1

为什么要打印 printf 的结果?

var1="\n\x0A\n"
var2="\na\nb\nc"

printf $var1
printf $var2

那应该有效。

*nix 系统 - LF, 0x0A (dec 10)\n作为行结尾

windows 操作系统 - CR LF, 0x0D 0x0A (dec: 13 10)\r \n作为行结尾。

相关内容