cremeb多商戶打包代碼的時候,總是重復的作業,就想著寫了個腳本,記錄一下sh腳本用到的一下方法:
點擊了解 CRMEB多商戶 其他開源專案原始碼下 :了解更多
小姐姐二維碼

#!/bin/bash檔案第一行,提示電腦后面的代碼需要用 /bin/bash 來解讀echo輸出內容,if流程控制
if [ ] ;#條件
then #執行
else #否
fi #結束標簽
-a #and 與 操作 if [ $a -a $b ]
-o #or 或 操作 if [ $a -o $b ]
- 檔案比較
if [ -d "/usr/" ]檔案夾是否存在
-e 判斷物件是否存在
-d 判斷物件是否存在,并且為目錄
-f 判斷物件是否存在,并且為常規檔案
-L 判斷物件是否存在,并且為符號鏈接
-h 判斷物件是否存在,并且為軟鏈接
-s 判斷物件是否存在,并且長度不為0
-r 判斷物件是否存在,并且可讀
-w 判斷物件是否存在,并且可寫
-x 判斷物件是否存在,并且可執行
-O 判斷物件是否存在,并且屬于當前用戶
-G 判斷物件是否存在,并且屬于當前用戶組
-nt 判斷file1是否比file2新 [ "/usr/test1.txt" -nt "/usr/test2.txt" ]
-ot 判斷file1是否比file2舊 [ "/usr/test1.txt" -ot "/usr/test2.txt" ]
getoptssh腳本傳引數方法,如:test.sh -a 1
創建腳本 test.sh
#!/bin/bash
while getopts "a:w:p:n" arg; #這里設定了引數必須是-a;-w;-p;-n這幾個引數名,后面的冒號表示必須傳入引數
do
case $arg in
a ) #所有版本號統一
parms1="$OPTARG"
;;
w ) #前端版本號
parms2="$OPTARG"
;;
p ) #php版本號
parms3="$OPTARG"
;;
n ) #最新版本號
parms4=1
;;
? )
echo "未知引數: -a; -w ; -p ; -n "
exit
esac
done
例如執行 sh ./test.sh -a 1 可以選擇引數名-a 就必須傳入引數 1,-n則可以不用引數
6. param=$(cat ./test.txt) 變數賦值,引數名\等號\值,三個之間不能有空格,如果需要得到某夠命令獲取的資訊作為值,都可以用這種方式,變數=$(命令)
暫時就用到這些
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277158.html
標籤:其他
