shell指令碼舉例

foreverfriends發表於2017-04-18

1.有時在寫一些以迴圈方式執行的監控指令碼,設定時間間隔是必不可少的,下面是一個Shell進度條的指令碼演示在指令碼中生成延時。

#!/bin/bash

b='' 
for ((i=0;$i<=100;i++)) 
do 
 printf "Progress:[%-100s]%d%%\r" $b $i 
 sleep 0.1 
 b=#$b 
done 
echo

2. 將當前目錄下的txt檔案複製到/home/xiong/doc目錄下

 

ls *.txt| xargs -n1 -I {} cp {} /home/xiong/doc

 

3. 假如你有一個檔案包含了很多你希望下載的URL,你能夠使用xargs下載所有連結:

 

cat 1.txt | xargs wget -c

 

4.  tr命令可以對來自標準輸入的字元進行替換、壓縮和刪除。它可以將一組字元變成另一組字元,經常用來編寫優美的單行命令,作用很強大。

引數:
字符集1:指定要轉換或刪除的原字符集。當執行轉換操作時,必須使用引數“字符集2”指定轉換的目標字符集。但執行刪除操作時,不需要引數“字符集2”; 
字符集2:指定要轉換成的目標字符集。

#大寫轉小寫

 

echo "HELLO WORLD" | tr 'A-Z' 'a-z' hello world

#刪除指定字元

echo "hello 123 world 456" | tr -d '0-9'

5. 字符集補集,從輸入文字中將不在補集中的所有字元刪除:

echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n'
1 2 3 4

6.用tr壓縮字元,可以壓縮輸入中重複的字元:

 

echo "thisssssssssss is a text linnnnnnnnnnnnnnnnnnne."|tr -s ' sn'
this is a text line.

 

7. 巧妙使用tr做數字相加操作:

 

echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]
45

相關文章