1.字符串運算符
= : 判斷兩個字符是否相等【 $string1 = $string2 】
!= :判斷兩個字符是否不相等【 $string1 != $string2 】
-z :判斷字符串長度是否為0
string=""
if [ -z $string ]
then
echo "length=0"
else
echo "length!=0"
fi
-n :判斷字符串長度是否不為0
string=""
if [ -n $string ]
then
echo "length!=0"
else
echo "length=0"
fi
str :判斷字符串長度是否為0,字符串是否存在
2.文件運算符
-d:目錄文件
-f:普通文件
=r:可讀文件
-w:可寫文件
-x:可執行文件
-e:文件是否存在
if [ -e 0908 ]
then
echo "文件已存在"
else
mkdir 0908
fi
3.case命令
case 操作符 in
模式1)
語句1
;;
模式2)
語句2
;;
模式3)
語句3
;;
模式4)
語句4
;;
*)相當于if語句中的else
esac
printf "input two numbers: "
read num1
read num2
printf "input yunsuan"
read op
case $op in
"+")
let value=num1+num2
printf "$value\n"
;;
"-")
let value=num1-num2
printf "$value\n"
;;
"")
let value=num1num2
printf "$value\n"
;;
"/")
let value=num1/num2
printf "$value\n"
;;
esac
4.while運算
while [條件]
do
語句
done
sum=0
i=1
while [ $i -le 100 ] #((i<=100))
do
let sum+=i
let i++
done
printf " sum=%d\n" "$sum"
5.shell參數
$0:代表這個可執行文件本身
$1:第一個參數
$2:第二個參數
...
$n:第n個參數
$#:參數的個數
//0.是否有參數
//1.判斷這個文件是否存在
//2.如果不存在,輸出錯誤信息
6.for 循環
for 變量 in 參數變量
do
語句
done
7.數組
1.定義:
(1)array=(1 2 3 4 5)
(2)array[0]=1
array[1]=4
array[4]=6
(3)數組元素訪問
${數組名[下標]} #加上{},表示為一個整體
(4)訪問數組所有元素
${array[@]}
${array[*]}
(5)@和*的區別
array=(1 2 3 4 5)
${array[@]}="1" "2" "3" "4" "5"
${array[*]}= "1 2 3 4 5"
8.shell函數
1.定義
[function] functionName
{
語句體
}
function fun1
{
printf "====\n"
}
fun1
2.functionName
function fun1
{
for value in "$@" //@
do
printf "$value\n"
done
printf "====\n"
}
array=(1 2 3 4)
fun1 ${array[@]}
function fun1
{
for value in "$*" //*
do
printf "$value\n"
done
printf "====\n"
}
array=(1 2 3 4)
fun1 ${array[@]}
3.如果shell函數傳參,傳的參數大于等于10個,在函數里面取第10 個數${10}
4.函數的返回值由$?去接收
1.$?: 它是臨時保存最后一次運行的shell函數return出來的值
2.如果return $value出來的值$value>255,實際上返回出來的結果應該是$value%256
3.如果需要接受比255大的數,使用echo命令去保存shell函數的結果集,接收用另外一個變量
value去保存結果集,然后再進行運用,實際上value保存到的結果是shell函數echo后面的結果
function sum()
{
echo
}
value='sum'
printf "%\n" "$value"