while 读取循环在别名内不起作用

while 读取循环在别名内不起作用

在 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'

相关内容