bash - 如何将多个命令通过管道传输到 shell 中的单个命令? (嘘,庆典,...)

标签 bash shell process pipe subshell

如何将多个命令的标准输出通过管道传输到单个命令?

示例 1:组合所有三个 echo 命令的输出并对其进行排序:

echo zzz; echo aaa; echo kkk

期望的输出:

aaa
kkk
zzz

示例 2:重写以下内容,以便所有命令都在使用管道的单个命令行中,而不重定向到临时文件:

setopt > /tmp/foo; unsetopt >> /tmp/foo; set >> /tmp/foo; sort /tmp/foo

最佳答案

使用括号 () 将命令组合到一个进程中,这将连接每个命令的标准输出。

示例1(注意$是shell提示符):

$ (echo zzz; echo aaa; echo kkk) | sort
aaa
kkk
zzz


示例 2:

(setopt; unsetopt; set) | sort

关于bash - 如何将多个命令通过管道传输到 shell 中的单个命令? (嘘,庆典,...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848272/

相关文章:

ios - iOS 上新行附近的 Bash 语法错误

Bash - 防止脚本因错误而停止执行

linux - Shell 脚本的意外输出

python - 从 Python 脚本执行 shell 命令

c - accept() 返回相同的套接字描述符编号

windows - 性能计数器,更改进程 ID?

bash跨多个字段查找非冗余数据

linux - cmd 2>&1 > 日志与 cmd > 日志 2>&1

linux - 无法执行 shell 脚本中的 If 条件

c - 命名信号量只是不工作