1帅掘,一些特殊符號,如$$, $0, $1, $@
$# — shell腳本的參數(shù)個數(shù)(不算$0)
$0 — shell本身的文件名
$1~$n — 添加到shell的各參數(shù)值讳窟,$1是第一個參數(shù),$2是第二個參數(shù)值…
$@ — 全部參數(shù)列表
$$ — shell本身的PID
$! — shell 最后運行的后臺process 的PID
2,if語句
if的基本語法:
if [ command ]; then
? xxxxx
elif [ command ]; then
? xxxxx
else
? xxxxx
fi
注:[ command ]中間的命令語句兩側(cè)需要空格,不能直接接著[]寫也榄;
一些常用的判斷命令:
字符串:
-z: 當字符串長度為0時為真
-n: 當字符串長度不為0時為真
str1 = str2: 字符串1與字符串2相等
str1 != str2:字符串1與字符串2不相等
str: 字符串不為空
數(shù)值:
-eq: 兩數(shù)相等
-ne: 兩數(shù)不等
-gt: 大于
-ge: 大于等于
-lt: 小于
-le: 小于等于
文件司志、文件夾:
-d DIR: 判斷DIR是否為目錄
-e File: 判斷file是否存在
復雜邏輯:
-a: and
-o: or
!: not
3甜紫,定義變量
最簡單的變量定義方式:
a=“abc”
a=100
可以將任何值(字符串、整數(shù))賦給變量骂远,事實上囚霸,shell中變量的值都是按照字符串來存儲的,需要數(shù)值的時候激才,只是將字符串按照數(shù)值處理拓型;
獲取變量的值
$a
清除變量
unset a
題外話—source shell腳本中的變量設置
正常情況下,shell腳本的執(zhí)行是啟動一個新的shell環(huán)境來執(zhí)行瘸恼,在shell腳本中設置的變量當腳本執(zhí)行完成后劣挫,退出了執(zhí)行的shell,在當前shell中變量是無效的(未設置的)
如果想在shell腳本中設置的變量作用到當前shell環(huán)境东帅,則需要使用source命令压固,source會在當前shell中直接執(zhí)行,而不啟動新的shell靠闭,source命令可簡化為. (dot)
source ./set_var.sh
. ./set_var.sh
4帐我,function
基本語法:
[function] sum()
{
? xxxxx
? return xx
}?
函數(shù)內(nèi)獲取參數(shù)為$1 $2…
調(diào)用方式:sum 2 3
獲取返回值$?