shell练习汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Shell脚本操作实例
1、判断一个用户输入的是数字还是字符串。 (2)
2、判断输入数值是奇数或者偶数的脚本: (2)
3、编写shell脚本,计算1-100的和 (3)
4、输入n,计算1-n的和 (3)
5、编写shell脚本,把/root/目录下的所有目录拷贝到/tmp/目录下; (3)
6、向所有用户问好,并指出id,统计共有多少用户 (4)
7、脚本练习,设置变量、读取、保存 (4)
8、输入两个数,求和、差、商、积、余。 (5)
9、判断输入ip是否正确 (5)
10、截取文档关键词,并打印。 (6)
11、更改文件属性 (7)
12、输入符合要求的字符 (7)
14、随机输入数字,比较大小 (8)
15、输入脚本,计算所有进程所占内存之和。 (9)
16、找规律写脚本 (10)
1、判断一个用户输入的是数字还是字符串。
注意:该题目有误,没有考虑到同时输入字符和数字。#/bin/bash
read -p "输入" n
m=`echo $n|sed 's/[0-9]//g' |sed 's/[-0-9]//g'`
if [ -z $m ];then
echo "数字"
else
echo "字符"
fi
2、判断输入数值是奇数或者偶数的脚本:
注意,特殊字符或者字符串不生效。
#! /bin/bash
read -p "Input a number: " n
a=$[$n%2]
case $a in
1)
echo "The number is odd."
;;
0)
echo "The number is even."
;;
*)
echo "It's not a number!"
;;
Esac
3、编写shell脚本,计算1-100的和
#! /bin/bash
sum=0
for i in `seq 1 100`; do
sum=$[$i+$sum]i
done
echo $sum
4、输入n,计算1-n的和
编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到输入正确的数字为止;
#!/bin/bash
n=0
while [ $n -lt "1" ]; do
read -p "Please input a number, it must greater than "1":" n
done
sum=0
for i in `seq 1 $n`;do
sum=$[$i+$sum]
done
echo $sum
5、编写shell脚本,把/root/目录下的所有目录拷贝到/tmp/目录下;
只拷贝一个前面的文件,有问题。
#!/bin/bash
cd /root
for i in `ls`;do
if [ -d $i ] ; then
cp -r $i /tmp/
fi
done
6、向所有用户问好,并指出id,统计共有多少用户
要求:1.设定变量FILE的值为/etc/passwd;2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么,形如:(提示:LINE=`wc -l /etc/passwd | cut -d" " -f1`) Hello,root,your UID is 0. 3.统计一个有多少个用户
#!/bin/bash
file=/etc/passwd
let num=0
for I in `cat $file`;do
username=`echo "$I" |cut -d: -f1`
userid=`echo "$I" |cut -d: -f3`
echo "Hello.$username,your UID is $userid"
num=$[$num+1]
done
echo "it is $num users"
7、脚本练习,设置变量、读取、保存
要求:1.设定变量file的值为/etc/passwd
2.使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容
3.把这些行保存至/tmp/mypasswd文件中
#!/bin/bash
file="/etc/passwd"
for I in 2 4 6 10 13 15;do
exec 3>/tmp/mypasswd
line=`head -$I $file | tail -1`
echo "$line"
echo "$line" >&3
exec 3>&-
done
8、输入两个数,求和、差、商、积、余。
传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商,余。
#!/bin/bash
read -p "Please input a number: " a
read -p "Please input another number: " b
sum=$[$a+$b]
dev=$[$a-$b]
ji=$[$a*$b]
chu=$[$a/$b]
yu=$[$a%$b]
echo "$a+$b=$sum"
echo "$a-$b=$dev"
echo "$a*$b=$ji"
echo "$a/$b=$chu"
echo "$a%$b=$yu"
9、判断输入ip是否正确
编写shell脚本,判断输入的IP是否正确(IP的规则是,n1.n2.n3.n4,其中1 #! /bin/bash checkip() { if echo $1 |egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ; then