亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

Shell技巧匯總(1)
2007-03-09   linuxmine

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、...及$*。

熱詞搜索:

上一篇:Shell常見知識(4)
下一篇:Shell技巧匯總(2)

分享到:           收藏