我正在尝试将管道的输出转换为变量。我尝试了以下几件事:
echo foo | myvar=$(</dev/stdin)
echo foo | myvar=$(cat)
echo foo | myvar=$(tee)
Run Code Online (Sandbox Code Playgroud)
但是$myvar是空的。
我不想做:
myvar=$(echo foo)
Run Code Online (Sandbox Code Playgroud)
因为我不想生成子shell。
有任何想法吗?
编辑:我不想生成子shell,因为管道之前的命令需要编辑全局变量,而这在子shell中是做不到的。它可以?的echo东西只是为了简化。它更像是:
complex_function | myvar=$(</dev/stdin)
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么这不起作用。这例如:
complex_function | echo $(</dev/stdin)
Run Code Online (Sandbox Code Playgroud)