我有一个专有的二进制文件,它执拗地接受两个文件作为参数,第一个文件作为输入,第二个文件作为输出。我想要:
- 构建第一个参数而不创建临时文件
- 使二进制文件写入标准输出而不是输出文件(第二个参数)
我用 <(...)
解决了第一个问题,但对于第二个参数不确定。
我编写了以下脚本,看起来可以按预期完成所有操作:
FILE1=$1
FILE2=$2
# checking that the files exist and other stuff
mkfifo myfifo
ThatBinary <( ... ) myfifo &
cat myfifo
二进制文件的第一个参数是一个组合的 Bash 命令,用于构建第一个“文件”。第二个参数是必须写入的命名管道。由于写入到FIFO会阻塞,所有这一切都被发送到后台。最后,我将命名管道的输出打印到stdout,如所需。
有没有可能改善这个指令呢?是否存在任何隐藏的陷阱?我正在处理非常大的文件(数十万个文本行),希望确保我没有漏掉任何东西。