第5课,4.2章节
shell脚本格式分为1、2、3三个部分:
1、脚本声明
#!/bin/bash
2、脚本注释
3、脚本命令
reboot
一般shell脚本都是.sh结尾
./脚本,代表脚本执行的方式
或者 bash 脚本,执行脚本
echo $#,$3,$5
$0,代表输出文件名
$#,代表接收到的参数的总个数
$3,代表接收到的第三个参数
$5,代表接收到的第五个参数
脚本命令中的与,或,非
[ -d /etc ],代表判断etc是否是文件夹(目录)
-d前面一定需要空格
echo $?,判断上一条语句是否执行成功,0为成功,1为失败
[ -r /etc/fstab],判断这个文件是否有权限读取,0为有权限,1为没权限
[ -r /etc/fstab] && echo haha,代表前面执行成功,则输出haha
&&,代表前面的命令执行成功,则执行后面的命令
||,代表前面的命令执行失败,则执行后面的命令
[ $USER = root ] && echo “Admin” || echo “User”,判断用户类型
命令A && 命令B || 命令C,代表执行命令A,如果成功执行命令B,如果失败执行命令C
!,取反值
[ ! $USER = root ] && echo “Admin” || echo “User”
[ 5 > 3] ,代表判断
[ 5 -let 3],代表是5否小于3
注意以上的命令中的运算符,-eq , -let,一般不适用<
free -m | grep Mem:,代表从内存利用率中提取Mem:这一行内容
free -m | grep Mem: | awk ‘{print $4}’,在上一条基础上提取了第四条内容,代表当前可用内存空间
free -m | grep Mem: | awk ‘{print $4}’ -let 1024 && echo “zugou” || echo “buzu” ,代表当前内测空间如果不足提示buzu,否则提示zugou
[ -z $SHELL],判断SHELL这个变量是否被定义了?
echo “$LANG”,判断当前编码是什么?
[ $LANG = en_US.UTF-8] && echo “UTF-8”,判断是否是UTF-8编码,如果是输出UTF-8
$命令 等同于‘命令’,代表执命令
if条件测试语句
判断haha这个目录是否不存在,若不存在则创建haha
if [ ! -e /root/haha ]
then
mkdir /root/haha
fi
双分支判断
if
then
else
fi
多重语句的判断
if
elif(举例1-20)
elif(举例21-30)
else(兜底语句,31-无穷大)
for根据范围循环语句
while 根据条件循环语句