【发布时间】:2019-12-30 08:55:15
【问题描述】:
我在玩文件描述符。一种常见的做法是使用文件描述符重定向 stdout 和 stderr,如下所示:
$ ls >files.txt 2>errors.txt
另一个例子可能是:
$ echo 'Hello there' > message.txt 2> errors.txt
但是以下方法不起作用:
$ echo 'Hello There' 0> input_message.txt > output_message.txt 2> errors.txt
似乎文件描述符 0 不起作用,因为 input_message.txt 为空,我希望找到短信 Hello There。
这是为什么呢?
【问题讨论】:
-
0是stdin。你到底想做什么? -
我想在文件中输入文本(即 Hello there),但我想即时执行此操作,这就是我传递标准输入而不是文件的原因。
-
请澄清您所说的即时是什么意思?你有例子吗?
-
@Harry
Hello there是一个参数,它通过execve调用而不是标准输入传递给echo。
标签: bash stdin file-descriptor