相关疑难解决方法(0)

/dev/stdin、/dev/stdout 和 /dev/stderr 的可移植性如何?

有时,我需要指定标准 IO 流 ( stdin, stdout, stderr)之一的“等效路径” 。因为我 99% 的时间都在使用 Linux,所以我只是/dev/在准备 get/dev/stdin等,而这“似乎做对了”。但是,一方面,我一直对这样的理由感到不安(因为,当然,“它似乎有效”,直到它没有为止)。此外,我对这种操作的便携性没有很好的了解。

所以我有几个问题:

  1. 在Linux中的情况下,它是安全(是/否)划上等号stdinstdout以及stderr/dev/stdin/dev/stdout/dev/stderr

  2. 更一般地说,这个等价物是否“足够便携”?

我找不到任何 POSIX 参考。

io file-descriptors posix portability

69
推荐指数
4
解决办法
2万
查看次数

在命令选项中使用从管道而不是从文件读取的数据

根据 man 定义,此命令从文件中获取输入。

$ command -r FILENAME
Run Code Online (Sandbox Code Playgroud)

假设这FILENAME是一个包含文件名列表的文件,因为它是使用ls > FILENAME.

相反,我如何ls直接将结果提供给命令?在我看来,这样的事情应该是可能的:

$ ls | command -r

但事实并非如此, 的输出ls不会作为参数被挂钩。输出:

Usage: command -r FILENAME
error: -r option requires an argument
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得想要的效果?

bash pipe

25
推荐指数
2
解决办法
2万
查看次数

标签 统计

bash ×1

file-descriptors ×1

io ×1

pipe ×1

portability ×1

posix ×1