Bash:如何将输入文件内容作为命令参数传递

Aur*_*ien 1 bash

我有一个command将输入文件作为参数的命令。有没有办法在command不实际创建文件的情况下调用?

我想实现以下行为

$ echo "content" > tempfile
$ command tempfile
$ rm tempfile
Run Code Online (Sandbox Code Playgroud)

如果可能的话:

  • 作为单线,
  • 无需创建文件,
  • 使用 bash(或 sh)功能或“众所周知的”命令(作为标准xargs

感觉必须有一个简单的方法来做到这一点,但我找不到。

koj*_*iro 6

只需使用流程替换即可

command <(echo "content")
Run Code Online (Sandbox Code Playgroud)

Bash 将在 /dev 中创建一个 FIFO 或其他类型的临时文件,用于过程中发生的任何事情的标准输出。例如:

$ echo <(echo hi)
/dev/fd/63
Run Code Online (Sandbox Code Playgroud)