国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Shell 腳本編寫

linkFly / 1335人閱讀

摘要:腳本與下的批處理相似,也就是用各類命令預(yù)先放入到一個文件中,方便一次性執(zhí)行的一個程序文件,主要是方便管理員進行設(shè)置或者管理用的。函數(shù)返回值只能是整數(shù),一般用來表示函數(shù)執(zhí)行成功與否,表示成功,其他值表示失敗。

Shell 腳本與 Windows/Dos 下的批處理相似,也就是用各類命令預(yù)先放入到一個文件中,方便一次性執(zhí)行的一個程序文件,主要是方便管理員進行設(shè)置或者管理用的。但是它比 Windows 下的批處理更強大,比用其他編程程序編輯的程序效率更高,它使用了 Linux/Unix 下的命令。

更明白地來說,shell script 就像早期 dos 年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易地就能夠一個操作執(zhí)行多個命令,而 shell script 更是提供了數(shù)組,循環(huán),條件以及邏輯判斷等重要功能,讓使用者可以直接以 shell 來寫程序,而不必使用類似 C 程序語言等傳統(tǒng)程序編寫的語法。文章地址

執(zhí)行命令

方法一: bash test.sh

方法二: 得先增加 test.sh 文件可執(zhí)行權(quán)限

chmod 755 test.sh

./test.sh

語法 基礎(chǔ)語法

#!/bin/bash #! 是一個約定的標記,它告訴系統(tǒng)這個腳本需要什么解釋器來執(zhí)行,即使用哪一種 Shell

set -e 確保腳本拋出遇到的錯誤

數(shù)據(jù)類型:只有字符串和整型兩種

使用雙引號

變量

shell 的變量賦值的時候不用帶 $,而使用或者輸出的時候要帶 $。加減乘除的時候要加兩層小括號。括號外面要有一個 $,括號里面的變量可以不用 $。需要注意的是,變量賦值,等號兩邊不能有空格,否則會被解析成命令,報錯無此命令。

# 變量
a=10
b=10
c="this is test"
d=$((a+b))

echo $a 
echo $c
echo $d
echo $((a+b))

表達式
str="a b c d e f g h i j"

echo ${str}          #源字符串
echo ${#str}         #字符串長度,包含空格
echo ${str:5}        #截取從第五個后面開始到最后的字符
echo ${str:5:2}      #截取從第五個后面開始的2個字符
echo ${str#a*f}      #從開頭刪除a到f的字符
echo ${str##a*}      #從開頭刪除a以后的字符
echo ${str%f*j}      #從結(jié)尾刪除f到j(luò)的字符
echo ${str%%*j}      #從結(jié)尾刪除j前面的所有字符包括j
echo ${str}

判斷

[ ] 里面每個變量之間都要有空格

-gt > -ge >= -lt < -le <= -eq = -ne !=

# 判斷 test 或 []
num1=10
num2=10

test $num1 -eq $num2 && echo "num1 == num2" || echo "num1 != num2"

[ $num1 -eq $num2 ] && echo "num1 == num2" || echo "num1 != num2"

條件語句

格式:if 條件 ; then 結(jié)果 fi ,最后面一定要有 fi 。在 shell 腳本里面,控制分支結(jié)構(gòu)結(jié)束都要和開頭的單詞相反,例如,if <–> ficase <–> esac

grades=70

if [ $grades -ge 90 ] && [ $grades -le 100 ];then
echo "Your grade is excellent."
elif [ $grades -ge 80 ] && [ $grades -le 89 ];then
echo "Your grade is good."
elif [ $grades -ge 70 ] && [ $grades -le 79 ];then
echo "Your grade is middle."
elif [ $grades -ge 60 ] && [ $grades -le 69 ];then
echo "Your grade is passing."
else
echo "Your grade is badly."
fi
循環(huán)語句 while 語句

while 語句是只要條件為真就執(zhí)行下面語句。需要注意的是,這里的條件除了 while true 可以這樣寫,其它的條件都要用 test 或者 [ ] 來判斷

i=$1
while [ $i -gt 0 ]
do
echo $i
((i--))
done

until 語句

until 語句是只要條件為假就執(zhí)行下列語句。

i=$1
until [ $i -le 0 ]
do
echo $i
((i--))
done

for 語句
a=`seq 4 10`

echo $a

for i in `seq 4 10` #seq是一個命令,順序生成一串?dāng)?shù)字或者字符
do
   echo $i
done

函數(shù)
funcName() { 
    語句 
    [return 返回值] 
} 

返回值是可選的,如果沒有顯示 return 則默認返回最后一條語句執(zhí)行的結(jié)果。

Shell 函數(shù)返回值只能是整數(shù),一般用來表示函數(shù)執(zhí)行成功與否,0表示成功,其他值表示失敗。如果 return 其他數(shù)據(jù),比如一個字符串,往往會得到錯誤提示:numeric argument required

如果一定要讓函數(shù)返回字符串,那么可以先定義一個變量,用來接收函數(shù)的計算結(jié)果,腳本在需要的時候訪問這個變量來獲得函數(shù)返回值。

函數(shù)參數(shù)從 $1$n$0 是文件名。

# 打印數(shù)字
printNum (){
   echo $1
}

for i in `seq 2 8` #seq是一個命令,順序生成一串?dāng)?shù)字或者字符
do
printNum $i
done
傳參

采用 $0 , $1 , $2 ...等方式獲取腳本命令行傳入的參數(shù),$0 獲取到的是腳本路徑以及腳本名,后面按順序獲取參數(shù),當(dāng)參數(shù)超過10個時(包括10個),需要使用 ${10}, ${11} ...才能獲取到參數(shù),但是一般很少會超過10個參數(shù)的情況。

#!/bin/bash
echo "腳本名$0"
echo "第一個參數(shù)$1"
echo "第二個參數(shù)$2"
echo "第三個參數(shù)$3"
echo "第四個參數(shù)$4"
echo "第五個參數(shù)$5"
echo "第六個參數(shù)$6"
echo "第七個參數(shù)$7"
echo "第八個參數(shù)$8"
echo "第九個參數(shù)$9"
echo "第十個參數(shù)$10"
echo "第十個參數(shù)${10}"

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98254.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<