fanuc機床鎖住解除

18230062509發表於2020-11-12

fanuc機床鎖住解除預設情況下,傳遞給命令的引數數量由系統限制決定。-n選項指定要傳遞給命令的引數個數。xargs根據需要多次執行指定的命令,直到所有引數都用完為止。

下面例子指定每次傳遞一個引數:

[root@localhost ~]# echo “file1 file2 file3”|xargs -n1 -t touch

touch file1

touch file2

touch file3

如何執行多個命令

要使用xargs執行多個命令,請使用-i或者-I選項。在-i或者-I後面自定義一個傳遞引數符號,所有匹配的項都會替換為傳遞給xargs的引數。

下面例子時xargs執行兩條命令,先touch建立檔案,然後ls列出來:

[root@localhost ~]# echo “file1 file2 file3”|xargs -t -I % sh -c ‘touch %;ls -l %’

sh -c touch file1 file2 file3;ls -l file1 file2 file3

-rw-r–r--. 1 root root 0 Jan 30 00:18 file1

-rw-r–r--. 1 root root 0 Jan 30 00:18 file2

-rw-r–r--. 1 root root 0 Jan 30 00:18 file3

如何指定一個分隔符

使用-d或者–delimiter選項設定自定義分隔符,可以是單個字元,也可以是以\ 開頭的轉義字元。

下面例子使用#做分隔符,echo命令使用了-n選項,意思是不輸出新行:

[root@localhost ~]# echo -n file1#file2#file3#file4|xargs -d # -t touch

touch file1 file2 file3 file4

如何從檔案中讀取條目

xargs命令還可以從檔案讀取條目,而不是從標準輸入讀取條目。使用-a選項,後跟檔名。
建立一個ip.txt的檔案,一會使用xargs命令ping裡面的每一個地址:

[root@localhost ~]# cat ip.txt

114.114.114.114

www.linuxprobe.com

202.102.128.68

使用-L 1選項,該選項表示xargs一次讀取一行。如果省略此選項,xargs將把所有ip傳遞給一個ping命令。

[root@localhost ~]# xargs -a ip.txt -t -L 1 ping -c 1

ping -c 1 114.114.114.114

PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.

64 bytes from 114.114.114.114: icmp_seq=1 ttl=93 time=11.0 ms

— 114.114.114.114 ping statistics —

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 11.026/11.026/11.026/0.000 ms

ping -c 1 www.linuxprobe.com

PING www.linuxprobe.com.w.kunlunno.com (221.15.65.202) 56(84) bytes of data.

64 bytes from hn.kd.jz.adsl (221.15.65.202): icmp_seq=1 ttl=48 time=20.9 ms

— www.linuxprobe.com.w.kunlunno.com ping statistics —

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 20.934/20.934/20.934/0.000 ms

ping -c 1 202.102.128.68

PING 202.102.128.68 (202.102.128.68) 56(84) bytes of data.

64 bytes from 202.102.128.68: icmp_seq=1 ttl=83 time=8.71 ms

— 202.102.128.68 ping statistics —

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 8.710/8.710/8.710/0.000 ms

xargs與find一起使用

xargs通常與find命令結合使用。您可以使用find搜尋特定檔案,然後使用xargs對這些檔案執行操作。

若要避免包含換行符或其他特殊字元的檔名出現問題,請始終使用find的-print0選項,這樣可以使find列印完整的檔名,配合xargs命令使用-0或者–null選項可以正確的解釋。

下面例子中,查詢log資料夾下面的型別為file的所有檔案,打包壓縮起來:

[root@localhost ~]# find log/ -type f -print0|xargs --null tar -zcvf logs.tar.gz

log/anaconda/anaconda.log

log/anaconda/syslog

log/anaconda/program.log

log/anaconda/packaging.log

log/anaconda/storage.log

log/anaconda/ifcfg.log

log/anaconda/ks-script-TOLvJc.log

log/anaconda/ks-script-VRY9yQ.log

log/anaconda/ks-script-pjDijm.log

log/anaconda/journal.log

log/audit/audit.log

log/boot.log

log/boot.log-20200126

log/btmp

log/btmp-20200126

[root@localhost ~]# ll

total 604

-rw-------. 1 root root 1285 Dec 21 17:19 anaconda-ks.cfg

drwxr-xr-x. 8 root root 4096 Jan 29 23:02 log

-rw-r–r--. 1 root root 607566 Jan 30 00:58 logs.tar.gz

總結

之所以能用到這個命令,關鍵是由於很多命令不支援管道符來傳遞引數,xargs可以解決這個問題,而且使用起來很方便,跟能強大。

相關文章