首页 > 解决方案 > 手动将字符串列表传递给管道

问题描述

如果一个命令返回一个字符串列表,我可以将它传递给另一个命令。

例如:

command1 | command2

可以说command1返回 2 行。有没有办法在命令行上做同样的事情而没有生成这些行的命令?

我知道下面这行不通,但也许可以更好地解释我的意思:

("string 1", "string 2) | command2

我想手动指定 2 行发送到管道中,而不是使用命令来生成它们。

那可能吗?

标签: bash

解决方案


您可以使用echo命令:

{ echo "string 1"; echo "string 2"; } | command2

printf使用一个命令来完成:

printf 'string 1\nstring 2\n' | command2

但如果它有很多行,那么 here-doc 通常更容易:

command2 <<EOF
string 1
string 2
EOF

推荐阅读