1. 程式人生 > 實用技巧 >shell指令碼應用(一)

shell指令碼應用(一)

shell指令碼

簡介:
隨著Linux系統在企業中的應用越來越多,伺服器的自動化管理也變得越來越重要。在Linux伺服器的自動化維護工作中,除了計劃任務的設定以外,shell指令碼的應用也是非常重要的一部分。
本章將主要學習shell指令碼基礎、變數使用等知識,要求學會編寫簡單的指令碼。
shell指令碼的基礎
一,shell指令碼的作用系統shell直譯器的作用
1,shell指令碼的作用
自動化運維
批量化重複操作可以編寫指令碼結合計劃任務自動週期執行
2,shell指令碼的特點
減輕管理員工作量
提高處理文字檔案的速度
避免配置出錯
3,Linux系統shell的作用
Linux系統模式使用的bash

shell負責接收使用者輸入的指令,編譯提交到CPU進行執行
計算機將指令執行後給使用者反饋執行結果
二,shell指令碼的結構
1,宣告
指令碼通過那個直譯器執行
Linux系統預設使用的是bash
2,指令碼描述
解釋當前指令碼的作用和功能
3,指令碼作者練習方式
指令碼故障方便聯絡寫指令碼的工程師
4,指令碼執行的命令
通過指令碼命令執行處理資料,實現自動化運維
三,編寫簡單的指令碼
1,使用指令碼顯示根目錄資料
在這裡插入圖片描述
[[email protected]~]# vim test.sh
#!/bin/bash //宣告
#test script //描述
#@qq.com //指令碼作者聯絡方式
echo “切換到根目錄:”
cd /
echo “顯示根目錄資料:”
ls
2、執行指令碼
[[email protected]~]# sh test.sh 不需要新增執行權,直接執行
在這裡插入圖片描述
[[email protected]~]# ./test.sh 需要交新增指令碼許可權
在這裡插入圖片描述
[[email protected]~]# source test.sh 不需要新增執行許可權,直接執行,進入到指令碼變數目錄
在這裡插入圖片描述
四、重定向和管道符
1,基本輸入輸出
標準輸出:檔案號0,接收或者讀取使用者輸入的資料,用<表示
標準的輸出:檔案號1,將資料顯示在螢幕或者檔案中,用>表示,>>表示追加輸出
錯誤輸出:檔案號2,錯誤輸出顯示在螢幕或者檔案中,用2>表示
混合輸出:對或者錯都可以顯示或者輸出到檔案中先後殺死,用&>表示
2,管道符
把前一個命令執行的結果,當成下一個命令處理的物件
3,輸出的使用
[[email protected]~]# echo “shell world” > ./1.txt //輸出到檔案
[[email protected]~]# echo “shell world” //輸出到螢幕
在這裡插入圖片描述
4,將錯誤輸出資料,輸入到1.txt檔案
[[email protected]~]# asdasd 2> 1.txt
在這裡插入圖片描述
5、混合輸出顯示到1.txt
[[email protected]~]# echo “aa” &> 1.txt
在這裡插入圖片描述
6、管道符的應用
在這裡插入圖片描述

變數
一,變數的型別和變數的作用
1,變數的組成
變數名和變數值組成
2,變數的作用
方便統用變數中的引數
別名重複編寫內容
二,變數的型別
1,自定義變數
管理員手動建立
根據指令碼環境需要建立
2,環境變數
維護系統使用
不需要管理員手動建立
3,位置變數
命令給指令碼傳遞引數使用
4,預定義變數
bash預定義變數屬於特殊變數
使用者不能修改預定義變數
三,配置變數
1、定義變數名為a和b,並呼叫變數
[[email protected]~]# a=benet
[[email protected]~]# b=6.0
在這裡插入圖片描述
四,變數賦值常用的符號
1,雙引號
允許引用其他的變數值
2,單引號
禁止引用其他變數
3,反撇
將命令執行的結果賦值給變數
4,read -p
接收使用者輸入內容複製給變數使用
5,使用雙引號引用變數
在這裡插入圖片描述
6、使用單引號禁止引用變數
在這裡插入圖片描述
7、使用反撇將命令結果賦值變數
在這裡插入圖片描述
8、使用read -p將使用者輸入的內容賦值給test變數名
在這裡插入圖片描述
五,變數的運算
1,變數的運算子
+:加
-:減
/:除
*:乘
2,加法
在這裡插入圖片描述
3、減法
在這裡插入圖片描述
4、乘除法
在這裡插入圖片描述
六,特殊變數
1,環境變數
系統建立
2,位置變數
提供9個位置
3,預定義變數
$#:命令列中位置引數
$*:所有位置引數
$?:判斷指令碼執行狀態0成功,非0失敗
$0:指令碼程序名字
4,特殊變數的基本使用
在這裡插入圖片描述