shell程序
- 以文件形式存放批量的Linux命令集合,該文件能夠被Shell解釋執行,這種文件就是Shell腳本程序
- 通常由一段Liunx命令、Shell命令、控制語句以及注釋語句構成
- Shell腳本的編寫
- Shell腳本是純文本文件,可以使用任何文本編輯器編寫
- Shell腳本通常是以.sh作為后綴名
語法
- 第一行指定
#!/bin/bash 或者 #!/bin/sh
- 使用
#注釋
變量
- 變量名必須以字母或者下划線開頭
- 變量名關於大小寫敏感
- 取值:
echo $name 或者 echo ${name}
- 寫入:
name="hw" 等號兩邊不能有空格
- 如果參數有空格需要用
"hello world"引起來
變量類型
- 本地變量:只存在當前session
- 全局環境變量:
/etc/profile 按照慣例需要大寫
- 用戶環境變量:
/.bash_profiles
位置參量
- 需要使用
$1-$9 / ${10+} 來顯示變量參數
$0 :表示當前腳本的文件名
$# :顯示當前腳本的參數個數
$* :以單個字符串顯示所有的位置參量
$! :最后一個后台運行的進程的進程號
$? :顯示前面最后一個命令的退出狀態。0表示沒有錯誤,其他任何值表示有錯誤
執行腳本
. test.sh
./test.sh
sh test.sh
數組的定義、引用
arr=(zhangsan lis wangz):定義數組
echo ${arr[0]}:查看數組元素
echo ${arr[*]}:列出數組所有的元素
echo ${#arr[*]}:查看數組的元素個數
arr[0]=zhangsan:賦值
date命令
date +%Y-%m-%dT%H:%M:%S:格式化日期
[root@fz hw]# date +%Y-%m-%dT%H:%M:%S
2018-08-06T17:39:04
${date +%Y-%m-%d}:shell中定義
${date --date='2 days ago' +%Y-%m-%d}:兩天前
${date --date='-1 days ago' +%Y-%m-%d}:一天后
date -s 2018-09-01:設置日期
cal 12 2018:查看2018年12月日歷