首页 > 解决方案 > bash shell 内置“读取”没有按预期工作

问题描述

这些是命令:

$ echo $LINE

$ echo TEXT
TEXT
$ echo TEXT | read LINE
$ echo $LINE

$ 

我希望 "echo "$LINE" 返回 "TEXT",但它是空的。有什么想法吗?

标签: bash

解决方案


管道创建子shell,而子shell中创建的变量在主环境中不存在。

你可以做:

$ read line < <(echo 'my text')
$ echo "$line"
my text

推荐阅读