shell脚本语法

shell脚本:
#!/bin/bash 第一行必须通过#!来指定当前所用的shell

一、变量:
"":允许通过$符号引用其他变量的值
'':禁止引用其他变量,$视为普通字符
``:把命令执行的结果赋给变量

1、输入变量:
read -p "输入提示信息:" a
$a #调用并显示变量a

2、自定义变量
a="hello world"
export a #设置a为全局变量,适合当前环境所支持的所有shell
echo $a #显示变量
unset a #清除变量
a="haha:$a" #给a前面追加字符串
expr $a + $b #整数变量之间计算用expr

3、系统的数字变量:
#$0~$9都是系统定义好的数字变量,其中$0表示当前进程名

4、预定义变量:
$$:#当前进程号
$#:#命令行中位置参数的个数
$?:#上一条命令执行后返回的状态:0表示正常,非0为异常
$*:#所有位置参数内容
$!:#后台运行的最后一个进程号

应用:
a、#查询系统上登陆的用户个数,当用户数过多是提示系统超载
[`who | wc -l` -le 10] && echo "yes"

b、#查找/boot分区的空间使用率超过额定大小就报警
#awk用来从文件或字符串中根据某种规则来抽取信息数据,
#完整的awk脚本用来格式化文本文件的信息
a = `df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f 1`
[$a -gt 95] && echo "/boot目录占用磁盘容量过大"

#判断键盘上输入的信息是否与系统中的信息相等
read -p "location:" mylocation
[$mylocation = "myLocation"] && echo "yes"

#判断mysql是否在运行,若已运行输出提示否则启动mysql
service mysqld status &> /dev/null
if [$? -eq 0]
then "mysql server is running"
else /etc/init.d/mysqld restart
fi

#批量添加20个系统用户,账号分别为"user1"、"user2"、..."user20"
i=1
while [$i -le 20]
do
useradd user$i
echo "123456" | password --stdin user$i &>/dev/null
i=`expr $i +1`
done

#计算几个数的和
result = 0
while [$# -gt 0]
do
result expr $reesult + $1
shift
done
echo "result is $result"


逻辑语句:

test命令:
1、test 条件表达式
2、[ 条件表达式 ]:
[ 操作符 文件或目录 ]:
操作符包括:
-d:是否为目录
-e:是否存在
-f:是否文件
-r:是否当前用户有读权限
练习:[-d /etc/vsftpd]
echo $?

[-d /etc/vosftpd]&& echo "yes"

if 磁盘已用空间>80%
then 报警
fi

if 磁盘已用空间>80%
then 报警
else ...
fi

for tm in "moring" "noon" "evening"
do
echo "the $tm of the day."
done

while 可用内存<100MB
do
可用内存数
done

函数
#定义一个函数并调用
adder(){
echo `expr $1 + $2`
}
adder12 34
adder 56 78

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值