Shell脚本语法初始:
1.定义以开头:#!/bin/bash
#!用来声明脚本有什么shell解释,否则使用默认shell。
2.单个‘#’代表注释当前行。
第一步:编写脚本文件
第二步:加上可执行权限 chmod a+x XXX.sh
第三步:运行脚本
3.三种脚本执行方式:(./xxx.sh ; bash xxx.sh ;.xxx.sh)
./xxx.sh :先按照 文件中#!指定的解析器解析
bash xxx.sh:指明先用bash解析器解析
. xxx.sh 直接使用默认解析器解析(不会执行第一行的#!指定的解析器)但是第一行还是要写的
4.变量:
定义变量:变量名=变量值 如:num=10
引用变量:$变量名
unset :清除变量值
read:从键盘获取值
在第一行上显示或添加提示,需要加上-p。
读取多个值:read data1 data2
只读变量:readonly num=10
5.数值测试:
英语单词 | shell相比符 | |
---|---|---|
等于 | equal | -eq |
不等于 | not equal | -ne |
大于 | greater than | -gt |
大于等于 | greater equal | -ge |
小于 | less than | -lt |
小于等于 | less equal | -le |
6.多重条件判定:
-a (and)两状况同时成立
test -r file -a -x file
file同时具有r与x权限是,才为true
-o (or)两状况任何一个成立
test -r file -a -x file
file具有r或x权限时,就返回true
! 相反状态
test ! -x file
file不具有x权限时,就返回true
7.控制语言
7.1 if语言
格式一:
if [条件1] ;then
执行程序一
else
执行程序二
格式二:
if [条件] ;then
执行程序一
elif [条件2]; then
执行程序二
else
执行程序三
7.2 Case
case $变量名称 in
"第一个变量内容")
程序段一
;; //break
"第二个变量内容")
程序段二
;;
*) //default
其他程序段
exit 1
esac
7.3 for循环语句
格式一:
for ((初始值;限制值;执行步阶))
do
程序段
done
格式二:
for var in con1 con2 con3 ......
do
程序段
done
7.4 while
while [condition]
do
程序段
done
当condition成立时进入while循环,直到condition不成立时才退出循环。
7.5 until
until [condition]
do
程序段
done
与while恰恰相反,当condition成立时退出循环,否则继续循环。