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”,然后不时点击向上箭头,然后重播命令。理想情况下,我希望在不使用包含值的文本文件的情况下执行此操作(这显然是最简单的方法。)
您可以使用<<内嵌 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)