gpt4 book ai didi

linux - 将标准输入重定向到脚本中的临时文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:03 26 4
gpt4 key购买 nike

我想编写一个 bash 脚本,它通过管道接收文件列表,写入一个临时文件,然后使用该临时文件启动一个程序(qiv - 图像查看器)。

示例:

find . -atime 2 | piped_qiv

piped_qiv 看起来像这样:

#!/bin/bash
[receive file list through pipe] > /tmp/qiv_temp
qiv -fm -F /tmp/qiv_temp
rm /tmp/qiv_temp

我可能遗漏了一些关于 bash 脚本的非常基本的东西,但我无法在这边或谷歌上找到解决这个问题的合适方法。

旁注:我知道我也可以使用 qiv $(find . …) 但我觉得使用管道会更自然。

最佳答案

使用 xargs:

find . -atime 2 -print0 | xargs -0 my_command

-print0 将使 find 打印每个找到的文件,由 NUL (\0) 和 -0 分隔将使 xargs 读取由相同分隔的每一行。

如果你想传递一个文件,你可以使用 process substitution :

% echo <(ls)
/dev/fd/63

在你的情况下:

qiv -fm -F <(my_command)

或者从标准输入读取:

qiv -fm -F <(cat)

关于linux - 将标准输入重定向到脚本中的临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37620707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com