管道在模拟文件的命令行?

use*_*511 5 bash command-line pipe

我以前见过这种技术,但不知道它叫什么,忘记确切的语法.假设我需要将文件传递给一个程序,例如:command <input-file.但是,我想直接将输入文件的这些行传递给没有中间输入文件的命令.它看起来像这样,但它不起作用:

command < $(file-line1; file-line2; file-line3)
Run Code Online (Sandbox Code Playgroud)

有人能告诉我这叫什么,怎么做?

Sie*_*geX 9

这就是所谓的 Process Substitution

command < <(printf "%s\n" "file-line1" "file-line2" "file-line3")
Run Code Online (Sandbox Code Playgroud)

有了上面的内容,command会认为它输入的文件名称很像/dev/fd/XX"XX"是一些数字.正如您所提到的,这是一个临时文件(实际上是文件描述符),但它将包含您传递给printf命令的3行.