Shell技巧匯總(1)

來源:互聯網
上載者:User

1.test測試命令

test命令用於檢查某個條件是否成立,它可以進行數值、字元和檔案三個方面的測試,其測試符和相應的功能分別如下:

(1)數值測試:
-eq:等於則為真
-ne:不等於則為真
-gt:大於則為真
-ge:大於等於則為真
-lt:小於則為真
-le:小於等於則為真

(2)字串測試:
=:等於則為真
!=:不相等則為真
-z 字串:字串長度偽則為真
-n 字串:字串長度不偽則為真
(3)檔案測試:
-e 檔案名稱:如果檔案存在則為真
-r 檔案名稱:如果檔案存在且可讀則為真
-w 檔案名稱:如果檔案存在且可寫則為真
-x 檔案名稱:如果檔案存在且可執行則為真
-s 檔案名稱:如果檔案存在且至少有一個字元則為真
-d 檔案名稱:如果檔案存在且為目錄則為真
-f 檔案名稱:如果檔案存在且為普通檔案則為真
-c 檔案名稱:如果檔案存在且為字元型特殊檔案則為真
-b 檔案名稱:如果檔案存在且為塊特殊檔案則為真

另外,Linux還提供了與(“!”)、或(“-o)、非(“-a”)三個邏輯操作符用於將測試條件串連起來,其優先順序為:“!”最高,“-a”次之,“-o”最低。同時,bash也能完成簡單的算術運算,格式如下:
$[expression]
例如:var1=2
var2=$[var1*10+1]
則:var2的值為21。
2.if條件陳述式

if [ -x /sbin/quotaon ]; then
echo "Turning on Quota for root filesystem"
/sbin/quotaon /
elif [ -x /sbin/quotaon ]; then
/usr/bin/bash
else
echo "ok"
fi
3.for 迴圈

#!/bin/sh
WORD="a b c d e f g h i j l m n o p q r s t u v w x y z"
for i in $WORD ; do
echo $i
done
#!/bin/sh
FILES=`ls /txt/*.txt`
for txt in $FILES ; do
doc=`echo $txt | sed "s/.txt/.doc/"`
mv $txt $doc
done
4.while和until 迴圈

#!/bin/sh
while [ -f /var/run/ppp0.pid ] ; do
killall pppd
done
#!/bin/sh
until [ -f /var/run/ppp0.pid ] ; do
sleep 1
done
Shell還提供了true和false兩條命令用於建立無限迴圈結構的需要,它們的返回狀態分別是總為0或總為非0
5.case 條件選擇

#!/bin/sh
case $1 in
start | begin)
echo "start something"
;;
stop | end)
echo "stop something"
;;
*)
echo "Ignorant"
;;
esac
case運算式中也可以使用shell的萬用字元(“*”、“?”、“[ ]”)。
6.無條件控制語句break和continue

break 用於立即終止當前迴圈的執行,而contiune用於不執行迴圈中後面的語句而立即開始下一個迴圈的執行。這兩個語句只有放在do和done之間才有效。
7.函數定義

在shell中還可以定義函數。函數實際上也是由若干條shell命令組成的,因此它與shell程式形式上是相似的,不同的是它不是一個單獨的進程,而是shell程式的一部分。函數定義的基本格式為:
functionname
{
若干命令列
}
調用函數的格式為:
functionname param1 param2 ……
shell函數可以完成某些例行的工作,而且還可以有自己的退出狀態,因此函數也可以作為if、while等控制結構的條件。在函數定義時不用帶參數說明,但在調用函數時可以帶有參數,此時shell將把這些參數分別賦予相應的位置參數$1、$2、...及$*。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.