命令行管道符详解

Windows:

|

直接执行后面的语句:

C:\Users\ParadiseDuo>ping localhost | ipconfig

Windows IP 配置


未知适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

||

如果前面的语句执行出错,则执行后面的语句,否则仅执行前面的语句:

C:\Users\ParadiseDuo>ping 1 || ipconfig

正在 Ping 0.0.0.1 具有 32 字节的数据:
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。

0.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

Windows IP 配置


未知适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :
------------------------------------------------------------------------
C:\Users\ParadiseDuo>ping localhost || ipconfig

正在 Ping ParadiseDuo-MSI [::1] 具有 32 字节的数据:
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms

::1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\ParadiseDuo>

&

前后的语句均可执行,但是前面的语句如果执行结果为假(即执行失败),则仅输出后面语句的结果:

C:\Users\ParadiseDuo>ping localhost & ipconfig

正在 Ping ParadiseDuo-MSI [::1] 具有 32 字节的数据:
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms

::1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

Windows IP 配置


未知适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

-------------------------------------------------------------
C:\Users\ParadiseDuo>ping l & ipconfig
Ping 请求找不到主机 l。请检查该名称,然后重试。

Windows IP 配置


未知适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

&&

如果前面的语句为假,则直接报错,也不执行后面的语句。

C:\Users\ParadiseDuo>ping l && ipconfig
Ping 请求找不到主机 l。请检查该名称,然后重试。

C:\Users\ParadiseDuo>
--------------------------------------------------
C:\Users\ParadiseDuo>ping localhost && ipconfig

正在 Ping ParadiseDuo-MSI [::1] 具有 32 字节的数据:
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms

::1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

Windows IP 配置


未知适配器 本地连接:

   媒体状态  . . . . . . . . . . . . : 媒体已断开连接
   连接特定的 DNS 后缀 . . . . . . . :

Linux:

;

按顺序执行语句,没啥好说的。

 ⚡ root@mail ~  whoami;ifconfig
root
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129290  bytes 91281528411 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129290  bytes 91281528411 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

|

只执行后面语句。

 ⚡ root@mail ~  ping 127.0.0.1|ifconfig
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129365  bytes 91281569501 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129365  bytes 91281569501 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

||

如果前面的语句执行失败,则执行后面的语句。如果前面的语句执行成功,则不执行后面的语句。

  ⚡ root@mail ~  ping 123 || ifconfig
connect: Invalid argument
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129513  bytes 91281648186 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129513  bytes 91281648186 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
-----------------------------------------------------------------------
 ⚡ root@mail ~  who || ifconfig
root     pts/0        2020-06-07 20:54 (000.000.000.000)

&

如果前面的语句为假(执行失败),则执行后面的语句,否则两条语句均会执行:

 ⚡ root@mail ~  ping 123 & ifconfig
[1] 4120
connect: Invalid argument
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129617  bytes 91281710419 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129617  bytes 91281710419 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 -------------------------------------------------------------------------------
  ⚡ root@mail ~  whoami & ifconfig
[1] 4276
root
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129709  bytes 91281752757 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129709  bytes 91281752757 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

&&

如果前面的语句出错,则停止,否则两条语句均会执行:

 ⚡ root@mail ~  ping 123 && ifconfig
connect: Invalid argument
------------------------------------------------------
 ⚡ root@mail ~  ping 127.0.0.1 -c 4 && ifconfig
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.070 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.092 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.087 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.070/0.081/0.092/0.008 ms
br-a57920877862: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.20.0.1  netmask 255.255.0.0  broadcast 172.20.255.255
        ether 02:42:b0:d0:47:08  txqueuelen 0  (Ethernet)
        RX packets 259129791  bytes 91281794424 (85.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259129791  bytes 91281794424 (85.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

猜你喜欢

转载自blog.csdn.net/youshaoduo/article/details/106607038