BASH - 在变量中存储标准输入引用 '&0'

标签 bash redirect stdin

尝试从文件或标准输入中读取,我想做这样的事情:

if [ "$1" == "-" ]
  then 
    INPUTFILE="&0"
fi

但如果我这样做

while read ROW
  do
    # ... something
done <$INPUTFILE

我得到了

&0: No such file or directory

从命令行

cat <&0

完美运行,有没有办法将标准输入引用存储在变量中?
PS:我知道可以通过一种简单的方式实现相同的结果......

最佳答案

有些情况下 cat 有它的用途,这可能是其中之一:

# Use cat so it works if $1 is just -
cat $1 |
while read ROW
do
    ...whatever
done

记录为什么你要像这样使用 cat;否则,它看起来像 UUOC(Useless Use of Cat)。

关于BASH - 在变量中存储标准输入引用 '&0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361000/

相关文章:

Bash 变量作用域

linux - bash——复制和更改文件名

python - python子进程的自定义标准输入

select - 读取 COBOL 中的 STDIN (SYSIN)

unix - Cron 作业 stderr 到电子邮件和日志文件?

linux - 从一个终端向另一个终端写入命令

python - 在不激活虚拟环境的情况下运行 Python 脚本

bash - 如何使用 ffmpeg 工作获取 bash 脚本以将 mp3 转换为 wav?

node.js - 表达 : how to redirect to a static file in the middle of an handler?

google-app-engine - 在 GoDaddy 上设置重定向 www 到裸域后出现 GAE 错误 404