微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在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.jb51.cc/bash/389827.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐