1、打印出/etc目录下所有文件
[root@pup1 opt]# vim 1.sh
for file in /etc/*
do echo $file
done
2、在/opt目录下有多个以.txt结尾的文件,需要将txt文件当中的内容合并到新的test.txt中
[root@pup1 opt]# vim 2.sh
for file in /opt/*.txt
do
cat $file >> test.txt
done
3、ping测试整个网段,把网段当中可以ping通的ip地址保留到/opt/hosts.txt当中
[root@pup1 opt]# vim 3.sh
for i in 20.0.0.{1..254}
do {
ping -c 3 -W 2 $ip$i &> /dev/null
if [ $? -eq 0 ]
then echo "$ip$i is onlie"
echo $ip$i >> /opt/hosts.txt
else echo "$ip$i is offline"
fi
}& //并行
done
wait //运行完毕即刻退出
4、用户输入密码,脚本来判断密码是否正确,正确的密码是123456,若输入正确,提示
用户输入正确,连续输错三次,提示密码将被锁定
[root@pup1 opt]# vim 4.sh
sum=0
while true
do
read -p "请输入密码:" pa
if [ $pa -eq 123456 ]
then echo "输入正确"
break
else let sum++
if [ $sum -eq 3 ]
then echo "密码将被锁定"
elif [ $sum -eq 4 ]
then break
fi
echo "密码错误,请重新输入"
fi
done
5、shell脚本做一个计算器,先实现能够整数运算(附加:实现小数运算)
[root@pup1 opt]# vim 5.sh
for ((;;))
do
read -p "是否使用计算器y/n:" a
if [ $a == "y" ]
then
read -p "输入需要计算的算式:" b c d
sum=$[$b$c$d]
echo "结果:$sum"
elif [ $a == "n" ]
then break
fi
done
6、用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,输出提示该用户已存在;用户存在但没设密码,则提示用户并让用户设置密码;若该用户不存在,提示用户输入密码,建立用户并设立其密码。
[root@pup1 opt]# vim 6.sh
for i in $(cat /opt/users.txt)
do
cat /etc/passwd | awk -F: '{print $1}' | grep "$i" &> /dev/null
if [ $? -eq 0 ]
then echo "${i}用户已存在"
re=$(cat /etc/shadow | grep "$i" | awk -F: '{print $2}')
if [ "$re" == "!!" -o -z "$re" ]
then echo "该用户没有密码,需要创建密码"
echo 123456 | passwd --stdin $i
else echo "${i}已经有密码"
fi
else echo "用户不存在,创建用户"
useradd $i
echo 123456 | passwd --stdin $i
fi
done
7、一家商店只卖五样东西,每次购买前提醒顾客是否进行商品选择,退出时计算选购商品总价
[root@pup1 opt]# vim shop.sh
echo "欢迎光临小胡服饰店!"
echo "本店商品:"
echo "衣服 500"
echo "裤子 400"
echo "鞋子 300"
echo "帽子 150"
echo "袜子 50"
sum=0
for ((;;))
do
read -p "选购商品请按1,结账请按2:" bo
if [ $bo -eq 2 ]
then break
elif [ $bo -eq 1 ]
then read -p "请输入所需商品名称:" th
case $th in
衣服)
sum=$(($sum+500))
echo "衣服添至购物车成功!"
;;
裤子)
sum=$(($sum+400))
echo "裤子添至购物车成功!"
;;
鞋子)
sum=$(($sum+300))
echo "鞋子添至购物车成功!"
;;
帽子)
sum=$(($sum+150))
echo "帽子添至购物车成功!"
;;
袜子)
sum=$(($sum+50))
echo "袜子添至购物车成功!"
;;
esac
fi
done
echo "$sum"
8、计算从1到100所有整数的和(三种方式)
[root@pup1 opt]# vim 8.sh
sum=0
for i in {1..100}
do
sum=$[$sum+$i]
done
echo "$sum"
sum=0
i=1
while [ $i -le 100 ]
do
sum=$[$sum+$i]
let i++
done
echo "$sum"
i=0
sum=0
until [ $i -gt 100 ]
do
sum=$[$sum+$i]
let i++
done
echo "$sum"
9、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
[root@pup1 opt]# vim 9.sh
read -p "请输入一个小于100的整数:" num
sum=0
i=1
while [ $i -le $num ]
do
sum=$[$sum+$i]
let i++
done
echo "$sum"
10、求从1到100所有整数的偶数和、奇数和
[root@pup1 opt]# vim 10.sh
sum1=0
sum2=0
for i in {1..100}
do
if [ $(($i%2)) -eq 0 ]
then
sum2=$[$sum2+$i]
else
sum1=$[$sum1+$i]
let i++
fi
done
echo "奇数和为$sum1"
echo "偶数和为$sum2"
11、将0到255 之间的十进制数转换成8位二进制数
[root@pup1 opt]# vim 11.sh
read -p "请输入一个0-255之间的数字:" num
length=0 //用来补0
until [ $num -eq 0 ]
do
j=$[$num%2]
k="$j""$k"
let length++
num=$[$num/2]
done
while [ $length -lt 8 ]
do
k="0""$k"
let length++
done
echo "$k"
12、某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾,又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了,请问这只猴子在第一天总共摘了多少根香蕉?
[root@pup1 opt]# vim 12.sh
num=1
for i in {2..10}
do
num=$[($num+1)*2]
done
echo "$num"
13、批量改文件的后缀名
姓名_学号_班级.jpg
张三_01_03.jpg
现在要求改成:
学号_姓名.jpg
01_张三.jpg
vim 3.sh
num=1
for i in $(cat /opt/name.txt)
do
echo "$(awk -F '[_.]+' 'NR=='$num'{print $3}' name.txt)_$(awk -F '[_.]+' 'NR=='$num'{print $1}' name.txt).jpg"
let num++
done