shell学习训练&&总结

shell学习训练&&总结,第1张

shell学习训练&&总结

shell学习训练&&总结_3

训练1训练2训练3训练4总结

训练1

1、编写脚本,判断当前系统剩余内存大小,如果低于100M,邮件报警管理员,使用计划任务,每10分钟检查一次。
装包:mailx,postfix(收发邮箱)
重启服务:systemctl restart postfix
编辑crontab:crontab -e
(邮件信息存放的地方再/var/spool/mail/用户文件内)

*/10 * * * * root echo "Memory_Available lower than 100mib"|mail -s"LinuxMEMoryInfo" root
//crontab循环执行:每10分钟运行一次发送 标题为"LinuxMEMoryInfo"内容为"Memory_Availble lower than 100mib"的信息给root用户

新建一个独立的shell文本根据条件运行crontab

#!/bin/bash
mem=`grep MemAvailable  /proc/meminfo`
memcut=`echo ${mem##*:}|cut -d' ' -f1`
if [[ $memcut > 102400 ]];then
        echo "Normal state"
        systemctl start crond
else
        echo "Mem lower than 100Mib"
        systemctl stop crond
fi
训练2

第一题does not exist的信息,并终端程序; 2.若文件存在,则判断它是文件或者目录,结果输出Filename is regular file 或者 Filename is directory. 3.判断下,执行者的身份对这个文件或者目录所有的的权限,并输入权限数据

#!/bin/bash
read -p "file:" filename
if [ -f $filename ];then
        echo "$filename is regular file"&&echo root:&&(ls -l $filename|cut -b 1-4) #获取文件的第1-4个权限字符信息
elif [ -d $filename ];then
        echo "$filename is directory"&&echo root:&&(ls -ld $filename|cut -b 1-4)   #获取目录的第1-4个权限字符信息
else
        echo "$filename doesn't exist"
fi

训练3

1.当执行一个程序的时候,这个程序会让用户选择Y或N 2.如果用户输入Y或者y时就显示ok,continue 3.如果用户输入N或者n时,就显示oh,interrupt 4.如果不是Y/y/N/n之内的其他字符,就显示 I don’t know what your chocie is

#!/bin/bash
read -p"input Y/N:" r
if [[ $r =~ ^[yY]+$ ]];then
       echo ok,continue
elif [[ $r  =~ ^[nN]+$ ]];then
       echo oh,interrupt
else
       echo "I don't know what you chosen"
fi
训练4

使用bash进行:1.程序的文件名是? 2.共有几个参数 3.若参数的个数小于2则告知使用者数量太少 4.全部参数内容是什么 5.第一个参数是什么 6第三个参数是什么

#!/bin/bash
#r=$* 传入参数的一种方式,执行时通过“sh文件+参数”进行传参
#echo $r 执行结果为执行时sh后 输入的参数
#echo $r 执行结果为执行时sh后 输入的参数
i=$* #传入的参数
i1= #传入参数的第1个
i3= #传入参数的第3个
p=$# #传入参数的个数

whereis $i
echo "Total parameter:$p"
if [[ $p < 2 ]];then
       echo "Parameter is too fewn"
       echo "Parameters:$i"
       echo "1st parameter:$i1"
       echo "3rd parameter:$i3"
else    
       echo "Parameters:$i"
       echo "1st parameter:$i1"
       echo "3rd parameter:$i3"
fi

总结

要区分[],[[]],{}的使用情况,并且要学会综合的审阅题目,学会多层次调用程序。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5704529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存