簡單shell腳本入門了解
一、Shell腳本
腳本:可以執行文件,運行後可以實現某種功能(命令的堆積,非交互)
規範Shell腳本的一般組成
#! 環境聲明(Sha-Bang)
# 註釋文本
可執行代碼
二、簡單寫一個shell腳本,按照國際慣例,還是輸出hello world
[root@server0 ~]# vim /root/1.sh
#!/bin/bash
echo hello world
[root@server0 ~]# chmod +x /root/1.sh
[root@server0 ~]# /root/1.sh
管道傳遞
使用 | 管道操作
– 將前一條命令的標準輸出交給後一條命令處理
三、重定向輸出
>:只收集前面命令的正確輸出
2>:只收集前面命令的錯誤輸出
&>:收集前面命令的錯誤與正確輸出
/dev/null #Linux黑洞設備,專用於收集不要的輸出結果
變量:為了增加腳本的適用環境的能力,增加腳本的靈活度,方便。
變量: 容器,以不變的名稱,儲存變化的值
變量名=變化的值
使用變量: $變量名
為了降低腳本使用難度,可以產生交互
read :可以產生交互,將鍵盤輸入的內容賦值給變量
什麽是變量
以不變的名稱存放的可能會變化的值
– 變量名=變量值
– 方便以固定名稱重復使用某個值
– 提高對任務需求、運行環境變化的適應能力
設置變量時的註意事項
– 若指定的變量名已存在,相當於為此變量重新賦值
– 等號兩邊不要有空格
– 變量名由字母/數字/下劃線組成,區分大小寫
– 變量名不能以數字開頭,不要使用關鍵字和特殊字符
基本格式
– 引用變量值:$變量名
– 查看變量值:echo $變量名、echo ${變量名}
變量的種類
位置變量
在執行腳本時提供的命令行參數(非交互式傳值)
預定義變量
用來保存腳本程序的執行信息
– 直接使用這些變量
– 不能直接為這些變量賦值
$# 已加載的位置變量的個數
$* 所有位置變量的值
$? 程序退出後的狀態值,0表示正常,其他值異常
$() :將命令的輸出結果,作為參數
常用的測試選項
檢查文件狀態
-e:文檔存在為真
-d:文檔存在且為目錄為真
-f:文檔存在且為文件為真
-r:文檔存在且有讀取權限為真
-w:文檔存在且有寫入權限為真
-x:文檔存在且有執行權限為真
比較整數大小(帶e都有等於二字,g代表大於,l代表小於)
-gt:大於
-ge:大於等於
-eq:等於
-ne:不等於
-lt:小於
-le:小於等於
字符串比對
== :相等
!=:不相等
for循環結構
循環結構:將反復執行的語句,循環去執行
for 變量名 in 值列表
do
命令序列
done
簡單shell腳本入門了解