美文网首页
shell 相关面试题

shell 相关面试题

作者: linux_龍 | 来源:发表于2019-10-03 15:01 被阅读0次

1. 命令行传入1个字符或数字,数字等于1则显示1,如 果等于2则显示2,如果既不等于1也不等于2,就显示 输入不对,然后退出程序

**项目分析: **

    1. 输入数字
    1. 数字等于1 显示1 退出
    1. 数字等于2 显示2 退出
    1. 数字不是1 也不是2 显示帮助 退出
方法一:
#!/bin/bash
num=$1
[ $# -ne 1 ] &&{
echo "Usage: input number"
exit 1
}
[ $num -eq 1 ] &&{
echo 1
exit 0
}
[ $num -eq 2 ] &&{
echo 2
exit 0
}
[ $num -ne 1 -a $num -ne 2 ]&&{
echo "Usage: input number"}
exit 1
}
#!/bin/bash
num=$1
[ $# -ne 1 ] &&{
echo "Usage: input number"
exit 1
}
[ $num -eq 1 ] &&{
echo 1
exit 0
}
使用正则表达式
[ $num -eq 2 ] &&{
echo 2
exit 0
}
[[ $num =~ ^[12]$ ]] || { echo "Usage: input number" exit 1 }

2. 开发shell脚本,使用传参或read实现比较2个整 数大小,用条件表达式(禁止用if) 进行判断并输出到 屏幕方式提醒用户结果.

注意: 用两种方式实现的时候, 需要对变量是否为数字及参数个数是否正确给 予提示
项目分析: read /传参

  • 判断参数个数是否为2 注意:read命令 的时候 不需要对比命令行参数
  • 参数或变量是否是数字 进行比较
#!/bin/bash
read -p '请输入2个参数:' n1 n2
num1=$n1
num2=$n2
[[ "$num1" =~ ^[0-9]+$  && "$num2" =~ ^[0-9]+$ ]] || {
echo "Usage:$0 num1 num2"
exit 1
}
[ $num1 -eq $num2 ] && {
echo "$num1 == $num2"
exit 0
}
[ $num1 -gt $num2 ] && {
echo "$num1 > $num2"
exit 0
}
[ $num1 -lt $num2 ] && {
echo "$num1 < $num2"
exit 0
}

3.把计算器脚本 修改为if判断格式

#!/bin/bash
num1=$1
num2=$2
[ $# -ne 2 ]&&{
echo "Usage:$0 num1 num2"
exit 1
}
expr $num + $num2 + 2 &>/dev/null
[ $? -ne 0 ] && {
echo "Usage:$0 num1 num2"
exit 2
}
echo $num1 + $num2 |bc -l
echo $num1 - $num2 |bc -l
echo $num1 / $num2 |bc -l
echo $num1 \* $num2 |bc -l

4.企业案列 监控系统可用内存, 小于100M就发送报警邮件 否则,提示内存充足 定时任务每三分钟一次

**项目分析

  • 取出当前内存
  • 书写脚本进行对比
    -- 小于发邮件
    -- 正常 提示正常
  • 定时任务
#!/bin/bash
mail=$(free  -m|awk 'NR==2{print $NF}')
if [ "$mail" -gt "400" ]
then
 echo "内存充足"
else
 echo "内存不足"
 mail -s "内存不足" 364769327@qq.com
fi
定时任务
#*/3 * * * *  sh /server/scripts/men.sh &>/dev/null

5.书写脚本 常用监控内容

目标 使用命令
服务器本地端口监控 ss/netstat lsof
远端端口监控 telnet /nc /nmap
进程 ps -ef ps aux 检查cron
客户端模拟监控:看返回值或者看返回 字符串 curl/wget 只监控静态页面(更加深入lnmp)
数据库 mysql -uroot -poldboy123 -e 'select version();'

检查端口是否开启

[root@m01 /server/scripts]# ss -lntup |grep -w 22
tcp    LISTEN     0      128       *:22                    *:*                   users:(("sshd",pid=7266,fd=3))
tcp    LISTEN     0      128      :::22                   :::*                   users:(("sshd",pid=7266,fd=4))

相关文章

  • shell 相关面试题

    1. 命令行传入1个字符或数字,数字等于1则显示1,如 果等于2则显示2,如果既不等于1也不等于2,就显示 输入不...

  • shell-相关面试题

    4.企业面试题 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串)。 5....

  • adb shell 命令相关功能

    adb shell 命令相关功能 Tags: adb_shell adb shell wm 命令获取屏幕相关信息 ...

  • Shell脚本面试题Top50

    Shell脚本面试题Top50 [TOC] 1:什么是Shell? Shell是用户和内核之间的接口。即使只有一个...

  • shell- 四剑客相关面试题

    1.四剑客find相关面试题 请使用shell脚本,找出/oldboy以.txt结尾的 修改时间大于7天大小大于1...

  • 资源搜集 ~持续更新

    shell编程: linux运维人员必会的30道shell编程面试题https://blog.csdn.net/h...

  • shell相关

    命令,脚本 shell基本命令clear 清屏 cd – 后退 cd $MYPATH 进入指定目录(环境变量已设)...

  • Shell相关

    1.1 注册shell上下文 在使用flask shell进入命令行 我们可以直接使用db, Note对象

  • shell 相关

    shell脚本执行错误 $'\r':command not found 存现这种错误是因为 编写的 shell脚...

  • shell相关

    因为默认的shell是bash,所以大部分说明可以从man bash拿到。命令具体是否在bash内部,可以通过ty...

网友评论

      本文标题:shell 相关面试题

      本文链接:https://www.haomeiwen.com/subject/kjjkuctx.html