Bash

而讀取循環在別名中不起作用

  • December 30, 2020

在 Bash 中,以下命令

echo foo | while read line; do echo $line; done

輸出foo;但是,以下

alias bar="echo foo | while read line; do echo $line; done"
bar

輸出一個\n(或空白)。是什麼導致了這種行為差異?

使用單引號來延遲變數擴展:

alias bar='echo foo | while read line; do echo $line; done'

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