if結構的文法格式
單分支結構
雙分支結構
多分支結構
shell中的函數
shell函數是shell腳本中由指令集和語句組成的代碼塊,這個代碼塊可以被其他腳本或是腳本中的其他部分調用,是以shell函數可以使程式子產品化,即把代碼分隔成獨立的任務塊,這樣,則不必每次為了執行相同的任務而重寫代碼。
定義函數的文法:
調用函數時;
定義函數及函數體必須要在執行函數名前定義,shell的執行是從上到下執行的。
帶參數函數的執行方法:
在函數體中位置參數($1、$2、$#、$*、$@)都可以是函數的參數
父腳本的參數則臨時地被函數參數所掩蓋或隐藏
$0比較特殊,仍然是父腳本的名稱
當函數完成時,原來指令行參數會恢複
在shell函數裡,return指令的功能與工作方式與exit相同,用于跳出函數
在shell函數體裡面使用exit會終止整個shell腳本
return語句會傳回一個退出值給調用的程式
case語句
循環語句
(1)for循環
清單生成方式:
直接使用清單;
使用檔案名通配的生成清單
使用{}或seq指令生成數字序列使用指令生成
(2)循環
(3)while循環:适用于循環次數未知的場景,要有退出條件
(4)until循環語句
(5)select循環
(6)死循環;腳本中讀取檔案的内容
循環控制語句:
指令
說明
break n
n 表示跳出循環的層數,如果省略n表示跳出整個循環
continue n
n表示退出到第n層繼續循環,如果省略n表示跳過本次循環,忽略本次循環的剩餘代碼,進入循環的下一次循環
exit n
退出目前的shell程式,n為傳回值。n也可以省略,在下一個shell裡通過$?接收這個n的值
return n
用于在函數裡,作為函數的傳回值,用于判斷函數執行是否正确
産生随機數的多種方法
1、通過系統環境變量($RANDOM)實作
2、通過openssl産生随機數
3、通過之間(date)獲得随機數
4、通過/dev/urandom配合cksum生成随機數
5、通過UUID生成随機數
6、使用expect附帶的mkpasswd生成随機數
腳本的調試模式
1)#/bin/bash -option script argument(腳本第一行)
-n 文法檢查模式
-v vebose模式,列印shell讀取的所有語句
-x trace模式,列印執行替換操作後,腳本實際執行的指令
2)Set -x打開調試功能
set +x 關閉調試功能 (縮小調試範圍)
3) Shell内置僞信号:
EXIT:從一個函數中退出或腳本結束
ERR:執行失敗
DEBUG:腳本的每一條指令執行之前
捕捉信号:trap‘command’signal
數組的定義與操作
定義:array=(value1 value2 valve3 ...)array=($(ls))
數組長度:${#array[*]}${#array[@]}某元素中字元串長度:${#array[index]}
列印數組:${array[*]}${array[@]}
元素值:${array[n]}
指派:${array[n]}=value
數組删除: unset array
元素删除:unset array[n]
本文轉自 夢想成大牛 51CTO部落格,原文連結:http://blog.51cto.com/yinsuifeng/1942764,如需轉載請自行聯系原作者