feh <(cat img.jpg);
以上命令不适用于错误feh: No loadable images specified.
。
cat img.jpg | feh -;
feh < <(cat img.jpg);
上面的命令工作正常。
echo <(cat img.jpg);
仅显示/dev/fd/63
。我不知道为什么feh
无法打开/dev/fd/63
。请帮助。
答案 0 :(得分:3)
您做得正确,但是jekyll
的错误/功能使其失败。
如果您查看source code,则可以看到这种情况。在不包含许多细节的伪代码中,它是这样的:
feh
这是一个用于递归查找文件的简单函数,它还处理URL和void add_file_to_filelist_recursively(path, is_first_level) {
if (is_first_level) {
if(path_is_url(path)) {
// Download
} else if(path == "-") {
// Read STDIN
}
}
if(is_directory(path)) {
for(file in path) {
add_file_to_filelist_recursively(file, false);
}
} else if(is_regular_file(path)) {
add(path);
}
}
,特别是在命令行中直接指定时(而不是当它们以文件名出现时)。
递归时,它将添加常规文件,并且将下降到目录中。其他所有内容都将被跳过。据推测这是因为尝试读取套接字,设备和fifo几乎没有意义。但是,作为副作用,由于它是fifo,因此也会忽略您的-
。
有人可能会争辩说/dev/fd/63
应该尝试读取用户明确指定的内容,这将是一个简单的解决方法。但是,实际上,无法使其直接与Bash的流程替换一起使用。