1、编写脚本/root/bin/createuser.sh,实现如下功能:使 用一个用户名做为参数,如果指定参数的用户存在,就显示 其存在,否则添加之;显示添加的用户的id号等信息
#!/bin/bash
read -p "Please input username: " n
if id $n &> /dev/null;then
echo "The user is exited!"
else
useradd $n
id $n
fi
2、编写脚本/root/bin/yesorno.sh,提示用户输入yes或no, 并判断用户输入的是yes还是no,或是其它信息
#!/bin/bash
read -p "please input yes or no " yon
case $yon in
Y|y|yes|YES|yEs|yeS|YES|YEs|Yes)
echo "your food is THE PEOPLE OF FUJIAN"
;;
N|n|no|NO)
echo "your food is noodles"
;;
*)
echo "Please input right pattern or GET OUT!"
;;
esac
3、编写脚本/root/bin/filetype.sh,判断用户输入文件路径 ,显示其文件类型(普通,目录,链接,其它文件类型)
read -p "Please input the filepath: " f
if [ ! -e $f ];then
echo "the file is not exited,please input the right filepath" && exit
elif [ -f $f ];then
echo "the file is regular file"
elif [ -d $f ];then
echo "the file is directory file"
elif [ -l $f ];then
echo "the file is link file"
else
echo "the file is other type"
fi
4、编写脚本/root/bin/checkint.sh,判断用户输入的参数是 否为正整数
#!/bin/bash
read -p "Please input the number: " n
if [[ "$n" =~ ^[0-9]+$ ]];then
echo the input is a postive integer
else
echo the input is not a postive integer
fi
>###以下皆用for语句实现
5、判断/var/目录下所有文件的类型
#!/bin/bash
for type in /var/* ;do
if [ -h $type -o -L $type ];then
echo "the $type is a link file"
elif [ -f $type ];then
echo "the $type is a reguler file"
elif [ -d $type ];then
echo "the $type is a dir file"
elif [ -b $type ];then
echo "the $type is a block file"
elif [ -c $type ];then
echo "the $type is a character file"
elif [ -p $type ];then
echo "the $type is a pipe file"
else
echo "the $type is other file"
fi
done
wait
6、添加10个用户user1-user10,密码为8位随机字符
#!/bin/bash
for uid in {1..10};do
if id user$uid &> /dev/null;then
echo the user$uid is exited
else
useradd user$uid
passwd=`openssl rand -base64 6`
echo "user$uid:$passwd" >> /app/user.log
echo $passwd | passwd --stdin user$uid > /dev/null && echo user$uid is created Successfully!!!
fi
done
7、/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件 ;分别读取每个文件,以K开头的输出为文件加stop,以S开头的输 出为文件名加start,如K34filename stop S66filename start
#!/bin/bash
for c in /etc/rc.d/rc3.d/* ;do
n=`echo $c | sed -r 's@(^/.*/)([^/].*/?)@\2@'`
if [[ "$n" =~ "^K"]];then
mv /etc/rc.d/rc3.d/"$n" /etc/rc.d/rc3.d/"$n"stop
elif [[ "$n" =~ "^S"]];then
mv /etc/rc.d/rc3.d/"$n" /etc/rc.d/rc3.d/"$n"start
fi
done
8、编写脚本,提示输入正整数n的值,计算1+2+…+n的总和
#!/bin/bash
read -p "Please input the number: " n
if [[ "$n" =~ ^[0-9]+$ ]] ; then
sum=0
for n in `seq $n`;do
let sum=sum+n
done
echo the sumnumber is $sum
else
echo "Please input the right number!"
fi
9、计算100以内所有能被3整除的整数之和
#!/bin/bash
sum=0
m=3
for n in `seq 100`;do
let a=n%m
if [ $a -eq 0 ];then
let sum=sum+n
fi
done
echo $sum
10、编写脚本,提示请输入网络地址,如192.168.0.0,判断输入 的网段中主机在线状态
#!/bin/bash
read -p "Please input IP: " ip
if [[ "$ip" =~ ([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3} ]];then
a=`echo $ip | cut -d. -f1-3`
for b in {0..254};do
{
if ping -c1 -W1 $a.$b &> /dev/null;then
echo $a.$b is up!
fi
}&
done
else
echo please input the right IP!
fi
wait
11、打印九九乘法表
#!/bin/bash
for a in {1..9};do
for b in seq $a;do
let c=ab
echo -n “$b$a=$c “
done
echo
done
12、在/testdir目录下创建10个html文件,文件名格式为数字N(从 1到10)加随机8个字母,如:1AbCdeFgH.html
#!/bin/bash
if [ ! -d /testdir ];then
mkdir /testdir/ &> /dev/null
fi
for n in {1..10};do
for a in `cat /dev/urandom |tr -dc "a-zA-Z"|head -c 8`;do
touch /testdir/$n$a.html
done
echo $n$a.html is already created!
done
13、打印等腰三角形
#!/bin/bash
read -p "请输出层数:" L
if [[ "$L" =~ ^[0-9]+$ ]];then
for k in `seq $L`;do
for a in `seq $[$L-$k]`;do
echo -n " "
done
for b in `seq $[$k*2-1]`;do
echo -en "\033[3$Yan;5m❄\033[0m"
done
echo
done
else
echo Please input the number!
fi
14、打印国际象棋(4格,用while实现)
#!/bin/bash
k=0
while [ $k -lt 4 ];do
l=0
while [ $l -lt 4 ];do
echo -ne "\033[41m \033[0m"
echo -ne "\033[43m \033[0m"
let l++
done
echo
l=0
while [ $l -lt 4 ];do
echo -ne "\033[41m \033[0m"
echo -ne "\033[43m \033[0m"
let l++
done
echo
l=0
while [ $l -lt 4 ];do
echo -ne "\033[43m \033[0m"
echo -ne "\033[41m \033[0m"
let l++
done
echo
l=0
while [ $l -lt 4 ];do
echo -ne "\033[43m \033[0m"
echo -ne "\033[41m \033[0m"
let l++
done
echo
let k++
done
原创文章,作者:OscaoChaser,如若转载,请注明出处:http://www.178linux.com/85329

