Shell基礎
1、 腳本命名
*.sh
2、 命名變量
1)自定義變量:
name=zhangsan
2)#env
大寫字母
3)$
#echo $name
#echo $PATH
4)作用域
默認自定義變量—局部
通過調用多個shell進程
打開shell---父
再次打開shell---子
Shell----------子
#env
SHLVL==shell level
#export
5){}
#Name=zhansan
#echo {$name}isastudent
6) > >> 輸出
< << 輸入
〈〈:制定終止的符號
#cat < &0 表示接受來自鍵盤的輸入
#cat < file 表示接受來自文件的輸入
at <file -m
系統在接受輸入輸出內容存在方向
輸入輸出描述符:
輸入:鍵盤 0
輸出:屏幕 1
錯誤輸出:分離 2
臨時符號---起過渡作用3-9
/dev/null----虛擬出來的一個設備(黑洞)
LS 3<&2 3>file ????
7)read ---從鍵盤讀取變量的值
注意當變量的數量和值得數量不一致的情況
#read 變量名
8)常見參數
$?-----表示顯示最近一條命令的執行狀態
狀態分類:
退出狀態0:表示成功
退出狀態1:表示失敗
條件:
test 操作數1 操作符 操作數2
test 1 〉 2
操作符:
數值類型數據比較
字符串類型數據表較
文件類型數據表較
[ ]:代替test
注意括號前後加空格
操作數和操作符之間要有空格
[ -x file ]
. 腳本文件
Sh 腳本文件
./腳本文件
雙引號:解釋變量
單引號:當作字符串顯示
$#:參數的總的數量
$*:顯示所有參數
$1:各個參數
$2……$9
shift [n] :將參數向前移n位
9)流程控制結構
If:
If 條件
Then
執行命令
Elif 條件
Then
。。。
Else
。。。
Fi
File5.sh
執行命令的狀態也可以當作條件
$?----
內核通過接受到命令退出時返回的數字,判斷該命令是否執行成功
exit 100
測試接受參數清款
如果接受的參數小於3個,提醒
如果大於3個,顯示參數
接受參數可以當條件
環境變量也可以當條件
如果是root身份登陸,提示
如果不是root,
Case語句
語法
Case 值 in
模式1|模式3)
命令1
。。。
。。。。
;;
模式2)
Esac
提醒:模式裏可以使用通配符
shell腳本是給內核看
for循環
語法:
for 變量名 in 列表
do
命令1
。。。
done
until
until 條件
do
命令。。。。。
done
while
while 條件
do
命令
done
break:終止當前循環
contine:終止當前次循環
計算
expr 表達式
$((…..))
函數:定義使用
應用