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 ...
随机推荐
- 二维离散余弦变换(2D-DCT)
图像处理中常用的正交变换除了傅里叶变换以外,还有一些其它常用的正交变换,其中离散余弦变换DCT就是一种,这是JPEG图像压缩算法里的核心算法,这里我们也主要讲解JPEG压缩算法里所使用8*8矩阵的二维 ...
- 后端系统开发利器之gflags
gflags是Google的一个开源项目,用于解析程序运行参数.gflags简单易用,它的好处在于统一配置格式,减少开发工作量.在工程实践中,gflags在简化开发和测试方面表现非常出色,它还有一个很 ...
- ACM数据结构-并查集
ACM数据结构-并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合 ...
- Microsoft.VisualBasic.dll的妙用(开发中肯定会用到哦)
前言 做过VB开发的都知道,有一些VB里面的好的函数在.NET里面都没有,而Microsoft.VisualBasic.dll却给我们提供使用这些函数的功能(没用过VB的这些功能一样可以使用,大同小异 ...
- 【转】Odoo开发之:工作流 workflow
在OpenERP中,工作流是管理一组“所做的事情”(与一些数据模型的记录关联)的人为现象.工作流提供了高级别的方式来组织记录要上做的事情. 具体地说,工作流是一个定向的路径,这里节点称为活动并且弧线称 ...
- 怎么设计好移动APP测试用例
软件测试工作中我们需要不断的储备和总结自己的知识和经验,怎么设计好移动APP测试用例?如:手机.平板.智能设备,并在特定网络环境下. 我们需要关注的功能点,容易出错的位置,这将对我们整个测试过程起着至 ...
- linux部署MantisBT(三)部署MantisBT
三.部署MantisBT 1.下载MantisBT https://www.mantisbt.org/download.php 2.将MantisBT安装包放在/apache/htdocs下并重命名为 ...
- Django - day01 快速回忆ORM操作
Django - day01 Model的增删改查找 得益于Django的ORM模型,用面向对象的思想来操作数据库使得数据库的操作一切变得简洁了很多. 0. 建表 在应用下的models.py中建立一 ...
- 前端开发工程师 - 01.页面制作 - 第3章.HTML
第3章--HTML HTML简介 Hyper Text Markup Language:超文本标记语言--用于标记网页的内容 history: html(1991)雏形 -> html4.01( ...
- go通过第三方库 mahonia gbk 转utf8
go get github.com/axgle/mahonia dec := mahonia.NewDecoder("GBK")ret:=dec.ConvertString(res ...