SHELL實戰day6_shell程式設計
一 SHELL指令碼介紹
shell是一種指令碼語言 aming_linux blog.lishiming.net
可以使用邏輯判斷、迴圈等語法
可以自定義函式
shell是系統命令的集合
shell指令碼可以實現自動化運維,能大大增加我們的運維效率
二 shell指令碼結構和執行方法
開頭需要加#!/bin/bash
1:在本機上也可以不加
以#開頭的行作為解釋說明
指令碼的名字以.sh結尾,用於區分這是一個shell指令碼
執行方法有兩種
chmod +x 1.sh; ./1.sh
./ 表示相對路徑
bash 1.sh
檢視指令碼執行過程 bash -x 1.sh
檢視指令碼是否語法錯誤 bash -n 1.sh
三 data命令的用法
date +%Y-%m-%d, date +%y-%m-%d 年月日
Y:4位年份(如2018)
y: 2位年份 (如18)
日期用英文顯示:
年份的特殊表示方法:
date +%H:%M:%S = date +%T 時間
date +%s 時間戳
date -d @1504620492
date -d "+1day" 一天後
date -d "-1 day" 一天前
date -d "-1 month" 一月前
date -d "-1 min" 一分鐘前
date +%w, date +%W 星期
cal: 顯示日曆
四 shell指令碼中的變數
當指令碼中使用某個字串較頻繁並且字串長度很長時就應該使用變數代替
使用條件語句時,常使用變數 if [ $a -gt 1 ]; then ... ; fi
引用某個命令的結果時,用變數替代 n=wc -l 1.txt
寫和使用者互動的指令碼時,變數也是必不可少的 read -p "Input a number: " n; echo $n 如果沒寫這個n,可以直接使用$REPLY
內建變數 $0, $1, $2… $0表示指令碼本身,$1 第一個引數,$2 第二個 .... $#表示引數個數
數學運算a=1;b=2; c=$(($a+$b))或者$[$a+$b]
五 shell中的邏輯判斷
格式1:if 條件 ; then 語句; fi
格式2:if 條件; then 語句; else 語句; fi
格式3:if …; then … ;elif …; then …; else …; fi
邏輯判斷表示式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到處都是空格
可以使用 && || 結合多個條件
if [ $a -gt 5 ] && [ $a -lt 10 ]; then
if [ $b -gt 5 ] || [ $b -lt 3 ]; then