加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Bash中使用read命令?

发布时间:2020-12-15 09:19:27 所属栏目:安全 来源:网络整理
导读:当我尝试在Bash中使用read命令,像这样: echo hello | read strecho $str 没有回音,而我认为str应该包含字符串你好。任何人都可以帮助我理解这种行为吗? 在你的脚本命令中读取正常。但是,您在管道中执行它,这意味着它在一个subshel??l中,因此,它读取
当我尝试在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读