如何直接从 shell 将数字列表通过管道传输到命令中?

lea*_*vst 4 bash shell pipe syntax

如何直接从 shell 将数字列表通过管道传输到命令中?例如这样的事情

[1,2,3,4] | sort
Run Code Online (Sandbox Code Playgroud)

会给

1
2
3 
4
Run Code Online (Sandbox Code Playgroud)

编辑:

回应到目前为止友好发布的答案。. . 我问这个,因为我想快速测试和调试一个控制台应用程序,该应用程序在输入时需要输入许多数字,而不必键入许多单独的值,然后回车。我只想输入“one liner”,然后不时点击向上箭头,然后重播命令。理想情况下,我希望在不使用包含值的文本文件的情况下执行此操作(这显然是最简单的方法。)

Nic*_*ton 5

您可以使用<<内嵌 i/o 重定向操作符来使用“here”文档。shell 会查找您提供的任何标记(在本例中为eof)作为 here 文档的文件结束标记。

sort << eof
1
2
3
4
eof
Run Code Online (Sandbox Code Playgroud)

另一种方法是迭代这些值,将echo它们排序:

for i in 1 2 3 4; do echo $i; done | sort
Run Code Online (Sandbox Code Playgroud)

如果您希望将for循环打包为命令,请使用以下过程:

list() for i in $*; do echo $i; done
list 1 2 3 4 | sort
Run Code Online (Sandbox Code Playgroud)