错题shell
1.判断/root/class21/inittab.txt文件是否大于100行,如果大于,则显示”inittab is a big file.”否者显示”inittab is a small file.”
#!/bin/bash
num=$(awk "BEGIN{sum=0}{sum+=1}END{print sum}" /root/class21/inittab.txt)
echo $num
if [ $num -gt 100 ]
then
echo "inittab is a big file."
else
echo "inittab is a small file."
fi
2.写出一个脚本程序,给定一个文件,比如:/root/class21/inittab.txt a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的总行数,否则显示没有空白行
#!/bin/bash
num=$(awk "/^$/{print NR}" /root/class21/inittab.txt | wc -l)
echo $num
if [ $num -gt 0 ]
then
echo "文件中存在空白行"
echo "共有" $num "行"
else
echo "文件中没有空白行"
fi
3.给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
#!/bin/bash
filename=$1
if [ -f $filename ]
then
echo $filename "存在并且是一个文件"
/bin/cat $filename
elif [ -d $filename ]
then
echo $filename "存在是一个文件夹"
ls -ll
else
echo $filename "无法识别"
fi
4.写一个脚本,给脚本传递3个参数 两个数字,一个运算符,根据运算符计算出结果,例如 2 3 - 2-3=1
#!/bin/bash
case $3 in
"+")
echo $[$1+$2]
;;
"-")
echo $[$1-$2]
;;
"\*")
echo $[$1*$2]
;;
"/")
echo $(echo "scale=2; $1/$2" | bc)
;;
"%")
echo $[$1%$2]
;;
*)
echo "无法识别计算"
;;
esac
5.使用脚本批量创建用户
#!/bin/bash
#/root/class21/users.txt 里面存放的是用户名,一个名一行
USERS=$(cat users.txt)
echo $USERS
for UNAME in $USERS
do
echo $UNAME
#userdel -r $UNAME
useradd $UNAME
echo "123456" | passwd --stdin $UNAME
done
6.写一个脚本输入任意数组或则数字例如 2 3 4 5 6 7 8 9,输出最大值、最小值、平均值
#!/bin/bash
min=$1
max=$1
sum=0
for i in "$@"
do
if [ $min -gt $i ]
then
min=$i
fi
if [ $max -lt $i ]
then
max=$i
fi
sum=$[$sum+$i]
done
echo "最大值为" $max
echo "最小值为" $min
echo "平均值为" $[$sum/$#]
7.写一个脚本输入任意数组或则数字例如 2 4 3 5 9 7 8 6,按照从小到大排序后输出
#!/bin/bash
arr=()
i=0
for value in "$@"
do
arr[$i]=$value
i=$[$i+1]
done
echo ${arr[*]}
for ((i=0;i<${#arr[@]};i++))
do
for ((j=$i;j<${#arr[@]};j++))
do
tmpvalue=${arr[$i]}
if [ ${arr[$j]} -lt $tmpvalue ]
then
arr[$i]=${arr[$j]}
arr[$j]=$tmpvalue
fi
done
done
echo ${arr[@]}




1[问答题]1.每分钟清空/tmp/内容 2.每个星期三的下午6点和8点的第5到15分钟之间备份/home/jinghang文件夹下的数据到 /opt/software
*/1 * * * * /bin/rm -rf /tmp/*
5-15 18,20 * * 3 /bin/cp /home/jinghang/* /opt/software/
2 [判断题]使用ps aux 可以查看到当前进程的父进程
A. 对
B. 错
答案:A
解析:ps aux | grep xxx (功能描述:查看系统中所有进程)
18[判断题][ -e /home/jinghang/cls.txt ] 表示判断/home/jinghang/cls.txt目录中的文件是否存在
A. 对
B. 错
[答案]A
解析:-e 文件存在
23[单选题]以下关于运算符表达式的计算不能得到5的是
A. expr 2 + 3
B. expr 2+3
C. echo $[2+3]
D. echo $[ 2 + 3 ]
[答案]B
24[问答题][ $a == $b ] 和 [ $a -eq $b ] 有什么区别?
[答案][ $a == $b ] - 用于字符串比较 [ $a -eq $b ] - 用于数字比较
28[多选题]下列关于shell常用的判断条件描述正确的是()
A. -f 文件存在并且是一个常规的文件(file)
B. -e 文件存在(existence)
C. -d 文件存在并是一个目录(directory)
D. -dir 文件存在并是一个目录(directory)
[答案]A,B,C
29[多选题]下列关于Shell中的数组操作正确的是()
A. 创建数组一个元素包含1~6的数组 arr=(1,2,3,4,5,6)
B. 读取数组中的第一个元素echo ${arr[0]}
C. 读取获取数组的长度echo ${#arr[@]}
D. 读取获取数组中的所有元素 echo ${arr[*]}
[答案]B,C,D
31[多选题]下列关于正则表达式的描述正确的是()
A. \d 单字符匹配表示匹配数字0~9
B. [^a-z] 单字符匹配表示不匹配a-z之间的字符
C. . 匹配除了换行符之外的任意字符
D. ^ 匹配以...开头
[答案]A,B,C,D
^表示非
错题shell的更多相关文章
- Ajax与JqueryUI和EasyUI错题总结
Ajax与JqueryUI和EasyUI错题总结 正确答案A,解析:此题考察的是JQuery UI下的menu插件的使用,menu提供ui-state-disabled class 方法禁用任何菜单项 ...
- 错题集锦(二) -- Java专项
错题集锦(二) -- Java专项 标签(空格分隔): 找工作 JVM的内存模型 线程共享: 堆(Heap):主要存放一些对象实例 方法区(Method Area / Non-Heap):用于存储已被 ...
- objective-c 错题
//1, NSString *name = [[NSString alloc]initWithString:@"张三"]; NSLog(@"%d",[name ...
- hibernate错题解析
01 Hibernate错题分析 解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通 ...
- 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结
20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...
- NOIp2014提高组初赛错题简析
总体分析 \(89pts\),粗略来看选择题错的比较多,\(-6pts\).同时又是尿性的填空杀扣了\(5pts\). 不过后面的两大题全对了还是可喜可贺 错题精析 单项选择T8 编译器的主要功能是( ...
- Java 整体测试重点题 错题积累
重点题 错题积累 1: 解析: %d:用来设置输出日志的日期和时间 %m:用来输出代码中指定的消息 %n:用来输出一个回车换行符 %l:用来输出日志事件的发生位置 %p:用来输出优先级 %f:用 ...
- Java多线程习题 ===重点 ,错题积累
多线程重点,错题分析 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: . 12: 13: 14: 15:
- S2 深入.NET和C#编程 笔试测试错题积累
---恢复内容开始--- <深入.NET平台和C#编程>内部测试题-笔试试卷错题积累 1: 1) 以下关于序列化和反序列化的描述错误的是( C). a) 序列化是将对象的状态存储到特定存储 ...
随机推荐
- latex 添加Bibtex 全解(使用TeXstudio)
前提知识: 生成pdf的一般流程 在使用Latex之前,我们一般会借用已有的论文模板,在模板基础上加入我们自己的文章内容,随后编译成PDF文件,其基本流程就是:Latex->Bibtex-> ...
- Ted:1 Vulnhub Walkthrough
主机层面端口扫描: ╰─ nmap -p1-65535 -sV -A 10.10.202.134 Starting Nmap 7.70 ( https://nmap.org ) at 2019-08- ...
- 《HTTPS权威指南》读书笔记——SSL/TLS协议
记录协议(record protocol) 负责在传输连接上交换所有底层信息 每一条记录以短标头开始,标头包含记录内容的类型.协议版本和长度 握手协议(handshake protocol) 整个过程 ...
- composer中常用命令
一些常用的composer命令: # 显示所有已经安装的包 composer show # 移除指定的依赖包package_name composer remove package_name # 搜索 ...
- 云数据库MongoDB版清理oplog日志和compact命令详解
1.问题描述: 今天看到公司mongodb的oplog有点大,看到云数据库MongoDB版日志清理策略. MongoDB数据库在长期频繁地删除/写入数据或批量删除了大量数据,将产生很多物理空间碎片. ...
- HDU - 5952 Counting Cliques
Counting Cliques HDU - 5952 OJ-ID: hdu-5952 author:Caution_X date of submission:20191110 tags:dfs,gr ...
- Windows10+texlive2018+texstudio
texlive2018+texstudio下载链接 链接: https://pan.baidu.com/s/1KjPJnw1kwMBCu3qGT9rIUg 提取码: g8ha 安装texlive 解压 ...
- SpringCloud微服务(02):Ribbon和Feign组件,实现服务调用的负载均衡
本文源码:GitHub·点这里 || GitEE·点这里 一.Ribbon简介 1.基本概念 Ribbon是一个客户端的负载均衡(Load Balancer,简称LB)器,它提供对大量的HTTP和TC ...
- ASP.NET Core SignalR:基础概述
一.简介 ASP.NET Core SignalR 是一个开源代码库,它简化了向应用添加实时 Web 功能的过程. 实时 Web 功能使服务器端代码能够即时将内容推送到客户端. SignalR 的适用 ...
- Java学习 1.4——第一个Java程序:Hello World!
这一篇一起来写第一个Java程序,同时也了解一下IDEA的使用: 打开IDEA,新建项目: 选择Java,右边project SDK是选择Java版本,上一篇我们自己安装了JDK1.8,IDEA自带一 ...