shell练习题讲解
写一个脚本,计算100以内所有的奇数的和以及所有偶数的和,分别显示出来
#! /bin/bash
sum1=0
for i in `seq 1 2 100`
do
sum1=$[$sum1+$i]
done
echo $sum1
sum2=0
for j in `seq 2 2 100`
do
sum2=$[$sum2+$j]
done
echo $sum2
写一个脚本,利用RANDOM生成10个随机数,并且找出最大值和最小值
for i in `seq 1 10`
do
n[$i]=$RANDOM
echo ${n[$i]} >> tmp.txt
done
a=`sort -n tmp.txt|head -n1`
b=`sort -n tmp.txt|tail -n1`
echo "a="$a
echo "b="$b
======
if [ -z $hdir ] 判断是否为空
if [ -n $hdir ] 判断是否不为空
======
写一个脚本,检查普通用户的家目录是否存在,比如apache用户存在,输出exit
,如果不存在,输出not exist
read -p "please input a user name;" username
hdir1=`awk -F: '$1=="'$username'"' /etc/passwd`
if [ -z $hdir1 ]
then
echo "the user you input is not exist"
exit
fi
hdir=`echo $hdir1| awk -F: '{print $6}'`
if [ -z $hdir ]
then
echo "the user you input is not exist"
exit
fi
if [ -z $hdir ]
then
echo "$username's homedir is $hdir and exist"
else
echo "$username's homedir is $hdirnot exist"
fi
写一个脚本,完成以下任务
1,添加5个用户,usr1,,,,user5
2,每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令执行结果信息
3,每个用户添加完成后,都要显示用户某某已经添加成功
for i in {1..5}
do
if ! grep -q "^user$i:" /etc/passwd
then
useradd usr"$i"
echo -e "user$i\nuser$i\n" |passwd user"$i" >/dev/null 2>&1
echo "add user done"
else
echo "the user user$i exist"
continue
fi
done
数字范围加到 100-999
如果数值超过正负 50 会提示:太大,太小
如果数值在正负 50 之间会提示,很接近
m=$[$RANDOM%900+100]
while :
do
read -p "input a number:" n
#n1=$[$m+50]
#n2=$[$m-50]
if [ "$n" -gt "$m" ]
then
echo "bingger"
fi
if [ "$n" -lt "$m" ]
then
echo "smaller"
fi
if [ "$n" -eq "$m" ]
then
echo "right"
exit
fi
done
写一个脚本,计算100以内所有能被3整除的正整数的和
sum=0
for i in {1..100}
do
n=$[$i%3]
if [ "$n" -eq 0 ]
then
sum=$[$sum+$i]
fi
done
echo $sum
写一个脚本,执行后,打印一行提示 “please input a number”,要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值,知道用户输入 end 停止
while :
do
read -p "please input a number:" n
if [ "$n" == "end" ]
then
exit
fi
m=`echo $n|sed 's/[0-9]//g'`
if [ -n "$m" ] 不为空
then
echo "it's not number,please input a number."
else
echo $n
fi
done
当根目录所在硬盘的使用率大于85%时输出警告信息
df |awk '$6=="/"'
df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $5}'
awk支持多个分隔符,这里是%和空格,+表示百分号空格可以有多个
echo "a b%c%d e" |awk -F '[%" "]' '{print $3,$5}'
df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $6}'
shell练习题讲解的更多相关文章
- shell基础练习题讲解
1037774765 克隆 1.创建一个用户redhat,其ID号为1001,基本组为like(组ID为2002),附近租为linux. groupadd -g 2002 likegroupadd l ...
- shell 脚本之 shell 练习题汇总
整理了一些 shell 相关的练习题,记录到这里. 1. 请按照这样的日期格式 xxxx-xx-xx 每日生成一个文件,例如:今天生成的文件为 2013-09-23.log, 并且把磁盘的使用情况写到 ...
- shell练习题5
需求如下: 用shell实现,把一个文件文档中只有一个数字的行给打印出来.(以/password文件为例,自行修改) 参考解答如下 方法1 #!/bin/bash file_name=passwd n ...
- shell练习题4
需求如下: 系统logrotate工具,可以完成日志切割.归档.写一个shell脚本实现类似功能. 举例:假如服务的输出日志是1.log,要求每天归档一个,1.log第二天就变成1.log.1, 第三 ...
- shell练习题2
需求如下: 写一个shell脚本,检查指定的shell脚本是否有语法错误,若有错误,首先显示错误信息,然后提示用户输入q或Q退出脚本, 输入其他内容则直接用vim打开该shell脚本. 参考解答如下 ...
- shell练习题1
需求如下: 写一个shell脚本,把10.0.1.0/24网段在线的ip列出来. 参考解答如下 方法1 #!/bin/bash ip="10.0.1." for i in $(se ...
- shell练习题
一.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. 原文代码为: Shell 1 2 3 4 5 6 7 8 9 10 #!/bin/bash ...
- shell 练习题
1.编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写 read -p "Please Input A File: " file if [ ! -e ...
- shell 练习题1
1.实现每次打开一个xx.sh时,自动添加注释信息 [root@chengyinwu ~]# cat .vimrc set ignorecase set nu set autoindent autoc ...
随机推荐
- A64 I2S调试
通过A64 的I2S总线与回音消除模块连接,在A64中需要使能并配置daudio功能. Daudio 为A64 的数字音频接口,可配置成i2s/pcm格式标准音频接口. 内核配置在lichee/lin ...
- 第3天 Java基础语法
第3天 Java基础语法 今日内容介绍 引用数据数据类型(Scanner.Random) 流程控制语句(if.for.while.dowhile.break.continue) 引用数据类型 Scan ...
- jxls-1.x导出excel入门——基本操作
请注意,一下内容均基于1.x版本,2.x版本将另开随笔记录 一.概述 JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表.它采用标签的方式,类似J ...
- 苏州Uber优步司机奖励政策(1月11日~1月17日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- cakephp中find('list')的使用
运用一.快速实现下拉菜单 控制器中,使用find('list')返回的是键值对的数组,键名是array的第一个参数id,键值就是第二个参数content. public function list_s ...
- Qt 计算两个日前间隔天数
某一个大神写的 改写了一点 请无视注释 //时间计算法则 /********************************************************************** ...
- JMeter常用元器件
测试计划, 是整个工程的根节点, 可以取别名, 并添加注释, 里面的设置是全局变量: 线程组, 是一组线程的集合, 可以取别名, 并添加注释, 里面的设置只对本线程组有效: HTTP请求, 也就是取样 ...
- Java开发工程师(Web方向) - 02.Servlet技术 - 第1章.Servlet
第1章--Servlet Servlet简介 Servlet应用于? 浏览器发出HTTP请求,服务器接收请求后返回响应给浏览器. 接收请求后到返回响应之间: 服务器将请求对象转交给Servlet容器 ...
- Zookeeper与Eureka的区别
Zookeeper与Eureka的区别 想要了解Zk与eureka的区别首先要知道CAP定理 CAP定理 Mysql强一致性(数据唯一出处),设计数据库设计的三范式 (表必须有主键:表不能有重复的列: ...
- 【cookie接口】- jmeter - (请求提示no cookie)
1.虽然 请求成功 响应码 200 ,但是 返回code 1 ,表示接口不成功 2.加入 空的cookie 管理器就可以了 返回 code 0 注意:状态码 200 只是表示请求是成功的 , ...