歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

Shell腳本的一些參數

1.符號

-ne 表示 不等於

另外:

整數比較

-eq 等於,如:if ["$a" -eq "$b" ]

-ne 不等於,如:if ["$a" -ne "$b" ]

-gt 大於,如:if ["$a" -gt "$b" ]

-ge 大於等於,如:if ["$a" -ge "$b" ]

-lt 小於,如:if ["$a" -lt "$b" ]

-le 小於等於,如:if ["$a" -le "$b" ]

< 小於(需要雙括號),如:(("$a" < "$b"))

<= 小於等於(需要雙括號),如:(("$a" <= "$b"))

> 大於(需要雙括號),如:(("$a" > "$b"))

>= 大於等於(需要雙括號),如:(("$a" >= "$b"))

另外:$?是shell變量,表示"最後一次執行命令"的退出狀態.0為成功,非0為失敗.

2.常用系統變量:

$0 當前shell程序的名字

$1 ~ $9 命令行上的第一到第九個參數

$# 命令行上的參數個數

$* 命令行上的所有參數

$@ 分別用雙引號引用命令行上的所有參數

$$ 當前進程的進程標識號(PID)

$? 上一條命令的退出狀態

$! 最後一個後台進程的進程標識號

系統變量只能引用不能修改!

3.判斷

if [ -f /bin/bash ]

then echo "/bin/bash is a file"

else echo "/bin/bash is NOT a file"

fi

如果兩條命令寫在同一行則需要用;號隔開,一行只寫一條命令就不需要寫;號了

4.循環

for

in

do

done

例子:

for var in con1 con2 con3...

do

程序段

done

就上面的語法結構來說,這個var的變數內容在循環工作的時候:

1 第一次循環時,var的內容是con1;

2 第二次循環時,var的內容是con2;

3 第三次循環時,var的內容是con3;

5.case語句

case分支語句的格式如下:

case $變量名 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

*)

默認執行的命令序列 ;;

esac

6,-z -n判空操作

Shell腳本中字符串判空:使用-z 字符串長度為0時,為真,-n字符串長度不為0,為真。這兩個都不靠譜。

使用下面的方法最可靠:

if [ "x${value}" == "x" ] #為空

then

#為空處理

fi

if [ "x${value}" != "x" ] #不為空

then

#不為空處理

fi

注意 == 和 != 兩邊要有空格

7.echo 的一些命令

echo -n 不換行輸出

$echo -n "123"

$echo "456"

最終輸出

123456

而不是

123

456

echo -e 處理特殊字符

若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:

\a 發出警告聲;

\b 刪除前一個字符;

\c 最後不加上換行符號;

\f 換行但光標仍舊停留在原來的位置;

\n 換行且光標移至行首;

\r 光標移至行首,但不換行;

\t 插入tab;

\v 與\f相同;

\\ 插入\字符;

\nnn 插入nnn(八進制)所代表的ASCII字符;

$echo -e "a\bdddd"

dddd

$echo -e "a\adddd" //輸出同時會發出報警聲音

adddd

Copyright © Linux教程網 All Rights Reserved