Shell 练习

1、ping主机测试,查看主机是否存活;

#!/bin/bash
ping -c 1 -w 3 www.baidu.com >/dev/null
if [ $? -ne 0 ];then
        echo "this pc is not internet"  
else
        echo "this pc is survive"
fi

 
2、判断一个用户是否存在;

#!/bin/bash

read -p "please input a username:" username
grep "^$username:" /etc/passwd > /dev/null

if [ $? -ne 0 ]
then
        echo "the user does not exist"
else
        echo "the user exists"
fi

 
3、判断当前内核主版本是否为3,且次版本是否大于10;

#!/bin/bash
neihe=$(uname -r)

zhu=$(echo "$neihe" | cut -d. -f1)
ci=$(echo "$neihe" | cut -d. -f2)

if [ $zhu -eq 3 ] && [ $ci -gt 10 ]
then
        echo "当前内核主版本为3,且次版本大于10"
else
        echo "当前内核不满足主版本为3,且次版本大于10的条件"
fi


5、判断nginx是否运行;如果没有,则运行它,并且开机启动

#!/bin/bash
ps -aux | grep nginx | grep -v grep > /dev/null
if [ $? -ne 0 ]
then
        echo "nginx don't start"
        echo "nginx is start..."
        systemctl start nginx
else
        echo "nginx already start"
fi

 
6、判断指定的主机是否能ping通,必须使用$1变量;

#!/bin/bash
pc="$1"
ping -c 1 -W 1 -q "$1" &> /dev/null
if [ $? -eq 0 ]
then
        echo "$1可以ping通"
else
        echo "$1不能ping通"
fi


7、报警脚本,要求如下:
    根分区剩余空间小于20%
    内存已用空间大于80%
    向邮箱发送告警邮件
    配合crond每5分钟检查一次
    [root@locaklhost ~]# echo "邮件正文"  | mail -s "邮件主题" alice 

#!/bin/bash
gen=$(df / | grep /dev | tr -s " " | cut -d " " -f5 | tr -d '%' )
nercun=$(free -m | grep Mem | tr -s " " | cut -d " " -f4  )

if [[ "$gen" -lt 30  ]] && [[ "$nercun" -gt 70 ]]
then
        echo "空间不足!!" | mail -s "Mem_warnning" 3327375902@qq.com &> /dev/null
else
        echo "空间充足!!"
fi


8、判断用户输入的是否是数字,如果是数字判断该数字是否大于10;

#!/bin/bash
read -p "please input a number:" a
if [[ "$a" =~ ^[0-9]+$ ]] 
then
        if [ "$a" -gt 10 ]
        then
                echo "这个数字大于10"
        else
                echo "这个数字不大于10"
        fi
else
        echo "输入不是数字"
fi

 
9、计算用户输入的任意两个整数的和、差、乘积、商、余数,
    判断用户输入的参数是否是两个,如果不是,提示用法;
    判断用户输入的是否是整数,如果不是,则给出提示终止运行。

#!/bin/bash
echo "请输入第一个数字:" 
read num1
echo "请输入第二个数字:"
read num2

if ! [[ "$num1" =~ ^-?[0-9]+$ ]] || ! [[ "$num2" =~ ^-?[0-9]+$ ]]
then
        echo "输入不为整数"
        exit
fi

sum=$((num1+num2))
cha=$((num1-num2))
cheng=$((num1*num2))
shang=$((num1/num2))
yu=$((num1 % num2))

echo "和: $sum"
echo "差: $cha"
echo "乘积: $cheng"
echo "商: $shang"
echo "余数: $yu"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值