命令行管道符詳解

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章