Shell 在UNIX中重定向read命令的输入
我想使用read命令初始化一个变量,该变量的值来自上一个命令的输出。我认为这是可行的:Shell 在UNIX中重定向read命令的输入,shell,Shell,我想使用read命令初始化一个变量,该变量的值来自上一个命令的输出。我认为这是可行的: echo some_text | read VAR 但是$VAR是空的。“读取从标准输入中读取一行。”手册页上说。管道将echo的输出发送到read的输入。我错在哪里 我的工作解决方案是 echo text > file ; read VAR < file echo text>文件;读取VAR
echo some_text | read VAR
但是$VAR是空的。“读取从标准输入中读取一行。”手册页上说。管道将echo的输出发送到read的输入。我错在哪里
我的工作解决方案是
echo text > file ; read VAR < file
echo text>文件;读取VAR<文件
但是它使用了一个文件…如何
VAR=$(命令)代码>?我假设您的shell是bash。当存在管道时,管道中的每个命令都在子shell中执行,父shell连接所有适当的文件描述符。因此,read命令获取它的stdin并设置VAR变量,然后它的子shell带着变量退出
你可以用这里的文件
read VAR << END
text
END
读取变量可能重复的
read VAR <<< "text"
read VAR < <(echo text)