【发布时间】:2011-04-21 05:50:35
【问题描述】:
假设我有一个程序 P,它有一个文件名作为参数。例如
P file
读取文件“file”并对其进行处理。
现在有时“文件”的内容非常小,例如只有一条线。因此,不要使用该行创建文件 f 并调用
P f
我想直接将 line 的内容作为参数提供给 P。我不想为 P 编写包装器。
在 zsh 中可以做到这一点吗?语法如何?
【问题讨论】:
标签: linux bash shell syntax zsh
假设我有一个程序 P,它有一个文件名作为参数。例如
P file
读取文件“file”并对其进行处理。
现在有时“文件”的内容非常小,例如只有一条线。因此,不要使用该行创建文件 f 并调用
P f
我想直接将 line 的内容作为参数提供给 P。我不想为 P 编写包装器。
在 zsh 中可以做到这一点吗?语法如何?
【问题讨论】:
标签: linux bash shell syntax zsh
P <(echo "something something")
同样适用于 bash。
【讨论】:
如果您已经有文字字符串或变量,则无需使用进程替换。您可以使用here字符串(这是一个单行here文档)。
使用文字字符串:
P <<< "f"
或者,使用变量:
P <<< "$f"
如果不需要保留空格,可以省略引号。
这也适用于 Bash 和 ksh。
【讨论】:
cat <<<'foo' 有效,但 stat <<<'foo' 无效。 <<< 实际上在做什么?似乎没有将文件名传递给程序。