shell指令碼:
1、#! 指定指令碼執行的shell
2、# 注釋
3、命令或語法結構
echo "輸入內容"
echo 輸出空行
執行:
1、shell 指令碼
sh example
2、給shell指令碼執行許可權
chmod u+x example
案例:example sysinfo.sh
3abc x 不能以數字開頭
abc3
abc3
環境變數-大寫
命令執行結果賦值變數使用 命令替換符 ``
path=$path:/root/shell.example
ls -l /etc/inittab /etc/fstab /etc/services
$0 $1 $2 $3
$0-$9
$* /etc/inittab /etc/fstab /etc/services
$# 3
$$ pid
$? 命令返回值 0 非0
案例:special.var
read 案例:read
expr 運算子前後要空格,乘號*要加轉義符
案例:expr
test
1、字串測試 是否相等、是否為空
2、整數測試 相等、大於、小於
3、檔案測試 檔案型別、檔案許可權、檔案存在、檔案大小
單支迴圈:if/then
if 測試條件
then
執行操作 fi
sh -x 指令碼 在執行時顯示執行過程 +或++ 注釋
*/2 12-14 * 3-6,9-12 1-5 /root/shell-example/apache.test
雙支迴圈:if/else
if 測試語句
then
真: 操作
else
假: 操作 fi
案例:test.apache autobak.sh
tar -cf 新檔名 目錄
多支迴圈: if/elif
案例: if_else 判斷檔案型別
條件連線 -o 邏輯或or -a 邏輯與and
exit退出語句
if [ "$#" != 2 ]
then
echo " must two parm!" fi
echo "this is a test"
echo $1 $2
sh exit first
條件為真退出 exit 0 條件為假退出 exit 1 非0
新增exit語句 sh exit first
for迴圈
案例:for 自動將使用者踢出系統 killuser.sh
awk -f域分隔符 '命令' 預設分隔符就是空格
統計系統使用者數
awk -f: '$3>=500 ' /etc/passwd | grep -v nfsnobody | wc -l
awk -f: 'length($2)==0 ' /etc/shadow
case 案例:case /etc/rc.d/init.d/httpd
while 條件為真一直迴圈 案例:while useradd.sh
until 條件為假一直迴圈
echo 密碼 | passwd --stdin 使用者名稱
while計數迴圈
windows寫指令碼會有不可識別控制符要處理
dos2unix 指令碼
Linux Shell指令碼基礎
shell指令碼在處理自動迴圈或大的任務方面可節省大量時間,且功能強大。任何指令碼都可能有注釋,加注釋需要此行的第乙個字元為 直譯器對此行不予解釋。指令碼不是複雜的程式,它是按行解釋的。指令碼第一行總是以 bin sh開始,這段指令碼通知shell使用系統上的 bourne shell直譯器。指令碼...
Linux shell指令碼基礎
ls 列出目錄下的清單 cat 連線顯示檔案內容 less more 分頁顯示檔案內容,建議使用less,相比於more更方便 head 顯示檔案頭部,可指定行數,預設顯示10行 tail 顯示檔案尾部,可指定行數,預設顯示10行 file 顯示檔案型別 wc 檢視檔案或統計資訊 find 查詢檔案...
linux shell指令碼基礎 3
6.函式 function name 注意 必須在呼叫乙個函式之前先對它進行定義,不存在前向宣告 當乙個函式被呼叫時,指令碼程式的位置引數 1,2等 會被替換為函式的引數。這也是讀取傳遞給函式的引數的辦法。當函式執行完畢後,這些引數會恢復為它們先前的值。可以通過return命令讓函式返回數字值 注意...