我想一切都在标题中。我目前正在学习bash脚本,我读到我们可以使用" |"符号,或者";"符号在一个命令行上执行两个命令。
这个问题只是出于好奇,有人知道它有什么不同吗?
答案 0 :(得分:2)
分号让程序的输出回显到tty。
输出到管道右侧的程序的管道。
E.g。
# execute foo, then execute bar,
# letting each program output to the terminal
foo ; bar
# execute foo and bar at the same time,
# hooking up the STDOUT from foo into the STDIN to bar,
# letting bar output to the terminal
foo | bar
答案 1 :(得分:2)
这两个符号有不同的用法。
用于在没有输入的情况下相互执行一些命令。
echo 1; echo 2; echo 3
# is equal to:
echo 1
echo 2
echo 3
管道是一种进程间通信方式 process1可以向process2发送内容 这里,command1和command2是进程。
command1 | command2
command1的输出作为输入提供给command2
答案 2 :(得分:1)
;
分隔符是顺序的,如C:
ls ; sort
在此示例中,首先运行ls
,然后bash将wait()
完成;然后运行sort
。
|
分隔符意味着两件事:它周围的命令是并行运行的,左命令的输出通过管道重定向到右命令的输入:
ls | sort
bash中还有其他分隔符:&
(并行),||
和&&
(顺序)。