为什么通过管道输入到 Bash 函数会阻止分配给本地 nameref 变量?

为什么通过管道输入到 Bash 函数会阻止分配给本地 nameref 变量?

给定 Bash 5.0.17 和函数

function assign_greeting {
  local -n output_var=$1
  output_var=$(cat)
}

为什么echo $GREETING

$ echo Hello | assign_greeting GREETING
$ echo $GREETING

$

打印一个空行而不是Hello?我如何更改该函数以便GREETING包含标准输入的内容?

相关内容