shell指令碼基本用法
摘要:
下面是一些簡單常用的指令碼,工作中可能會用到,記錄一下。
#!/usr/bin/env bash
#變數[=兩邊不要有空格], 在使用的時候需要用${變數名} 或者是$變數名
name="san"
echo $name
allName="zhang $name...
下面是一些簡單常用的指令碼,工作中可能會用到,記錄一下。
#!/usr/bin/env bash #變數[=兩邊不要有空格], 在使用的時候需要用${變數名} 或者是$變數名 name="san" echo $name allName="zhang $name" echo $allName #------------------------------------------------------------------------------- #變數做運算 # $[a + b] a=4 b=5 c=$[a + b] echo "c=$c" echo $[a * b] echo $[a + b] echo $[3 * 10] #------------------------------------------------------------------------------- #if條件 # [注意:1. 中括號兩邊需要有空格] #- eq —比較兩個引數是否相等(例如,if [ 2 –eq 5 ]) #-ne —比較兩個引數是否不相等 #-lt —引數1是否小於引數2 #-le —引數1是否小於等於引數2 #-gt —引數1是否大於引數2 #-ge —引數1是否大於等於引數2 #-f — 檢查某檔案是否存在(例如,if [ -f "filename" ]) #-d — 檢查目錄是否存在 if [ $c -lt 10 ] then echo "if 執行了。。" fi #------------------------------------------------------------------------------- #if-else條件 if [ $c -gt 10 ] then echo "1"; else echo "2"; fi #------------------------------------------------------------------------------- #if else-if else if [ $c -gt 10 ] && [ $b -lt 5 ] then echo "if-elseif -1"; elif [ $c -lt 10 ] then echo "if-elseif -2"; else echo "if-elseif -3"; fi #------------------------------------------------------------------------------- #swith #------------------------------------------------------------------------------- #陣列 array_name=(value1 valuen) my_array=(A B "C" D) #------------------------------------------------------------------------------- #for迴圈 # 遍歷陣列[迴圈陣列的方式] for item in ${my_array[@]} do echo "迴圈中 $item" done #遍歷列表[] for var in item1 item2 item3 do echo "for列表輸出-----$var" done #------------------------------------------------------------------------------- #while迴圈 a=1 b=10 c=20 #while condition#單條件用(),雙層括號中間不能有空格;多條件用[] #while (($a <=5))單條件 while [ $a -lt 5 ] && [ $b -gt 5 ]&& [ $c -gt 0 ]#多條件 do echo "while迴圈測試 a=$a"; let "a++"# i++操作 let "b--" done #------------------------------------------------------------------------------- #函式定義 #函式注意事項: #1. 函式呼叫一定要在函式宣告之後 #2. 函式的返回值只能是數值,範圍0-256 #3. 函式內的區域性變數用local宣告,且作用範圍為函式體內 #4. 定義函式的形參不用顯式宣告 function testfun(){ local var="函式內的區域性變數"#區域性變數 local var1=4 echo "引數 $1" echo "引數 $2" echo "引數 $3" echo "所有的引數一塊輸出 $*" echo $var echo $var1 return } #函式呼叫 testfun param1 param2 total=$(testfun param1 param2) echo "----------------------------------" echo $total #------------------------------------------------------------------------------- # shell指令碼結合 linux命令使用 #注意: #1. Linux 的命令可以直接在shell中使用 #2. 單行命令後面可不用強制加分號 ; 但是如果單行有多個命令,則每個命令後面需要加分號 #第一種方式 data=`command` data=`ls . |wc -l` data=`find E:/home/sdata/sdata3-staticindex/ -name "*.data" |xargs grep "1001681445" ` #echo $data #第二種方式 data=$(command) data1=$(ls .|wc -l) #echo $data1 #------------------------------------------------------------------------------- # shell 指令碼程式碼塊直接在命令列執行 ,直接用()包住即可 ( #for fileName in `find . -name "30012.2019010*.log" |more` for fileName in$(find . -name "30012.2019010*.log"|more) do echo "start unzip $fileName" unzip $fileName done )