1. 程式人生 > >Shell程式設計基礎入門

Shell程式設計基礎入門

1.Shell中的特殊變數

$?表示上一個命令退出的狀態	成功返回0	失敗返回的就是不一定了  本質就是命令的返回值
$$表示當前程序的程序編號
$0表示當前指令碼的名稱
$n表示位置變數(n代表數字,n>=1)
$#表示變數的個數,常用於迴圈
$*和[email protected]都表示引數列表
	區別
		$*當別雙引號包含時,"$*"會將所有的引數作為一個整體,以"$1 $2 $3 ... $n"的形式輸出所有的引數
		"[email protected]"會將各個引數分開,以"$1""$2"..."$n"的形式輸出所有的引數

2.for迴圈

第一種
	for p $*
	do 
	echo $p
	done
第二種
	for((i=0;i<=5;i++))
	do	
		echo "hello"
	done

3.while迴圈

第一種
	while expression(布林表示式)
	do	
	...
	done
第二種
	i=1
	while((i<=3))
	do
	echo $i
	let i++
	done

4.case語句

格式
	case $1 in
	start)
		echo "starting"
		;;(一定要寫)
	stop)
		echo "stoping"
		;;
	*)	
		echo "都不是"
	esac	

5.運算子

格式:expr m + n 或$((m+n))注意expr運算子之間要有空格
例如計算(2+3) x 4的值
1.分步計算
	S=`expr 2 + 3`
	expr $S \* 4
2.一步完成
	expr `expr\`expr 2 + 3\`\*4
或者$(((2+3)*4))

6.read命令(從終端獲取輸入引數)

read -p "將要顯示得提示資訊" -n(字元個數) -t(等待時間)
例如:
	read -p "請輸入姓名:" c(這個是用來儲存這個輸入得資訊得)

7.if判斷

語法
	if condition
	then
		statements
	[elif condition
		then
		statements ...]
	[else
		statements]
	fi
例如
	if [ $NAME=root ]
	then 
		echo "hello ${NAME},welcome!"
	elif [ $NAME=CentOS1 ]
	then 
		echo "hello ${NAME},welcome!"
	else
		echo "hello"
	fi

8.判斷語句

[ condition ] && echo ok || echo notok
滿足執行ok 不滿足執行 notok

9.常用判斷條件

常用比較條件
	= 字串比較
	-lt 小於
	-le 大於等於
	-eq	等於
	-gt 大於
	-ge	大於等於
	-ne 不等於
對檔案得判斷
	-r	有讀得許可權
	-w	有寫得許可權
	-x	有執行得條件
	-f	檔案存在並且是一個常規檔案
	-s  檔案存在且不為空
	-d	檔案存在並且是一個目錄
	-b	檔案存在並且是一塊裝置
	-L	檔案存在並且是一個連結

10.Shell自定義函式

語法
	function funname[()]
	{
		...;
		[ return int; ]
	}

11.shell程式得除錯

sh -vx xxx.sh