NO3.Shell腳本學習——編寫Shell腳本

Shell腳本

  1. 用途:完成特定的、較複雜的系統管理任務。
  2. 格式:集中保存多條Linux命令,普通文本文件
  3. 執行方式:按照預設的順序依次執行的命令

執行Shell腳本的方式:
1.bash test.sh
//不需要寫解析器
//不需要給腳本設置執行權限

  1. ./test.sh
    //需要寫解析器——腳本首行
    #!/bin/bash
    //需要給腳本設置執行權限
    chmod a+x test.sh

寫個Shell的小例子
test.sh:

#!/bin/bash
echo '23123123'
echo 'disk space:'
echo
df -Th
echo
echo 'free space:'
free -m

小例子:每週五17:30 清理FTP服務器的公共共享目錄
檢查/var/ftp/pub/ 目錄,將其中所有子目錄及文件的詳細列表、當時的時間信息追加保存到/var/log/pubdir.log日誌文件中,然後清空該目錄
示例:

vi /opt/ftpclean.sh
 `#!/bin/bash
 date >> /var/log/pubdir.log
 ls -lhR /var/ftp/pub >> /var/log/pubdir.lg
 rm -rf /var/ftp/pub/*

 crontab -e
 30 17 * * 5  /opt/ftpclean.sh`

Shell變量種類

  1. 用戶自定義變量 name="user1" 引用:${name}
  2. 預定義變量
  3. 位置變量**

輸入賦值:read [-p "信息"] 變量名
雙引號:能解析變量
單引號:不能解析變量
反引號:解析命令並輸出

刪除變量:unset 變量名
位置變量(傳參):

test.sh
#!/bin/bash
#test.sh
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8

調用:sh test.sh 1 2 3 4 5 6 7 ...(最多識別9個)
執行結果:
1
2
3
4
5
6
7
...
預定義變量:
$#:命令行中位置參數的個數
$*:所有參數的內容
$?:上一條命令執行後返回的狀態,當返回狀態值爲0時表示執行正常,非0表示執行異常或出錯
$0:當前執行的進程/程序名

shell計算
$(($1+$2)) (不需要轉義) or expr 2 + 3 +4 (需要轉義)
expr 4 * 2
expr 4 / 2
expr 4 % 2
and so on...

shell輸入、輸出
輸入
``
echo -n||e
-n
-e可以解析轉義字符

//設置字體顏色
echo -e "httped process \033[32;40m[OK]\033[0m"
\033[前景顏色;背景顏色m
\033[0m恢復到系統默認的顏色
前景顏色:30-37
背景顏色:40-47
<br/>**輸出**<br/>
cat、head(首n行)、tail(尾n行)、tee(輸出一份並保存一份)、nl(加行號)
``

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章