查詢手冊
菜鳥教程
for循環和seq的使用
echo "method 1"
for i in `seq 1 10`;
doecho $i;
done
echo "method 2"
for i in {1..10}
doecho $i;
done
echo "method 3"
for i in `seq 1 2 10`;
doecho $i;
done
進入目錄創建文件重定向內容
cd Test
touch test.sh
echo "This is the test for test.sh ">test.sh
關于函數的使用
如果函數內部沒有參數就返回最后一條執行的結果
function Platform()
{echo $(uname)
}function Pwd()
{echo $(PWD)
}function main()
{type=`Platform`echo "Platform:"${type}echo "#####"echo ${PWD}
}main
運行結果
Platform:Darwin
#####
/Users/kouhz/Code/Shell
函數的傳參
funWithParam(){echo "第一個參數為 $1 !"echo "第二個參數為 $2 !"echo "第十個參數為 $10 !"echo "第十個參數為 ${10} !"echo "第十一個參數為 ${11} !"echo "參數總數有 $# 個!"echo "作為一個字符串輸出所有參數 $* !"
}main
[@kouhaozhedeMacBook-Pro:Shell]$ !bash
bash function.sh
Platform:Darwin
#####
/Users/kouhz/Code/Shell
第一個參數為 1 !
第二個參數為 2 !
第十個參數為 10 !
第十個參數為 34 !
第十一個參數為 73 !
參數總數有 11 個!
作為一個字符串輸出所有參數 1 2 3 4 5 6 7 8 9 34 73 !
接受數字
echo "請輸入數字:"
read num
echo "您輸入的數字是:"
echo $num
判斷文件和文件夾是否存在
if [ -f "test.txt" ];thenrm test.txt
elsetouch test.txt
fi
for i in `seq 1 10`;doecho $i>>test.txt
done
文件比較符
-e 判斷對象是否存在
-d 判斷對象是否存在,并且為目錄
-f 判斷對象是否存在,并且為常規文件
-L 判斷對象是否存在,并且為符號鏈接
-h 判斷對象是否存在,并且為軟鏈接
-s 判斷對象是否存在,并且長度不為0
-r 判斷對象是否存在,并且可讀
-w 判斷對象是否存在,并且可寫
-x 判斷對象是否存在,并且可執行
-O 判斷對象是否存在,并且屬于當前用戶
-G 判斷對象是否存在,并且屬于當前用戶組
-nt 判斷file1是否比file2新 [ “/data/file1” -nt “/data/file2” ]
-ot 判斷file1是否比file2舊 [ “/data/file1” -ot “/data/file2” ]
環境變量
local
一般用于局部變量聲明,多在在函數內部使用。
global
其作用域從被定義的地方開始,到shell結束或被顯示刪除的地方為止。
export
將自定義變量設定為系統環境變量(僅限于該次登陸操作,當前shell中有效)
語法:export [-fnp][變量名稱]=[變量設置值]
補充說明:在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供后續執行的程序使用。
正則表達式語法
https://www.sojson.com/regex/generate