如何在Bash中使用read命令?

前端之家收集整理的这篇文章主要介绍了如何在Bash中使用read命令?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试在Bash中使用read命令,像这样:
echo hello | read str
echo $str

没有回音,而我认为str应该包含字符串你好。任何人都可以帮助我理解这种行为吗?

在你的脚本命令中读取正常。但是,您在管道中执行它,这意味着它在一个subshel​​l中,因此,它读取的变量在父shell中不可见。你可以

>在subshel​​l中移动脚本的其余部分:

echo hello | { read str
  echo $str
}

>或使用命令替换来获取变量的值从子shell

str=$(echo hello)
echo $str

或一个稍微复杂的例子

str=$(ls | { read a; read a; echo $a; })
echo $str
原文链接:https://www.f2er.com/bash/389827.html

猜你在找的Bash相关文章