read -p的输出

最近缺CSDN分下载一个文档,去问题区逛了下,不是专业开发也没啥分好赚的。看到shell里有个问题,提问者想要linux自动执行脚本和收集原本打印的结果,他现有的一个脚本需要输入参数进行交互,其实就是一个shell的交互问题,于是我给了一个回答:

sh xx.sh >>result.txt << EOF
2
3
EOF

我自己写了个小脚本read并且echo,运行正常。提问者回复我read命令的prompt部分没有打印出来。

调整脚本read后面加上-p,测试一下,果然-p的提示信息没有追加到文件中。

难道不在标准输出中,反而在标准错误中?

果断改成这样:

sh xx.sh >>result.txt 2>&1 << EOF
2
3
EOF

测试一下,好吧,还是没有。那这个-p后面的提示信息到底跑哪去了?

百度 read -p基本上没人关注这个提示信息到底放到哪了,又翻不了墙,最后在一篇文章中看到了如下描述:

-p 用 |& (管道,& 的记号名称)读取由 Korn shell 运行的进程的输出作为输入

试试:

sh xx.sh >>result.txt |&>&1 << EOF
2
3
EOF

OK!read -p的提示信息正确追加到result.txt中了!

原来read -p的提示信息放到|&里面了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值