bash脚本读取管道或参数

 不语皓月 发布于 2023-02-13 11:13

我希望我的脚本从stdin读取字符串,如果是管道,或者从参数读取.所以首先我想检查一些文本是否是管道,如果不是,它应该使用一个参数作为输入.我的代码看起来像这样:

value=$(cat) # read from stdin
if [ "$pipe" != "" ]; then #check if pipe is not empty
 #Do something with pipe string
else
 #Do something with argument string
fi

问题是当它没有管道时,脚本将停止并等待"ctrl d",我不想要那个.关于如何解决这个问题的任何建议?

提前致谢./托马斯

1 个回答
  • 先检查参数怎么样?

    if (($#)) ; then
         process "$1"
    else
         cat | process
    fi
    

    或者,只是利用相同的行为cat:

    cat "$@" | process
    

    2023-02-13 11:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有