在 Bash 中,执行以下命令
echo foo | while read line; do echo $line; done
输出foo
;然而,以下
alias bar="echo foo | while read line; do echo $line; done"
bar
输出 a \n
(或空白)。是什么导致了这种行为差异?
答案1
使用单引号推迟变量扩展:
alias bar='echo foo | while read line; do echo $line; done'