1、统计目录下的文件个数并显示处理
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage $(basename $0) : please enter a argument."
exit 1
fi
if [ ! -d $1 ];then
echo "$1 is not directory,please enter a directory path."
exit 2
else
cd $1
fi
sum=0
for i in `ls -r *`
do
echo $i
sum=$[ $sum + 1 ]
done
echo "--------------------------"
echo "The total file is : $sum."
2、9*9乘法表
[root@lissen test_sh]# cat 9.sh
#!/bin/bash
for i in `seq 9`
do
for j in `seq $i`
do
echo -ne "$j*$i=$[i*j]\t"
done
echo
done
3、编写输出字符“Hello World!”
[root@lissen test_sh]# cat 1.sh
#!/bin/bash
echo "Hello world!"
[root@lissen test_sh]# ./1.sh
Hello world!
4、 测试输入的是否以数字开头
[root@lissen test_sh]# cat 3.sh
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage:Please enter 1 argument."
exit
fi
var_a1=$1
if [[ !$var_a1 =~ ^[0-9] ]];then
echo "The argument can't be started with number."
exit 2
else
echo $var_a1
fi
[root@lissen test_sh]# ./3.sh
Usage:Please enter 1 argument.
[root@lissen test_sh]# ./3.sh 1fffffff
The argument can’t be started with number.
[root@lissen test_sh]# ./3.sh gan
gan
if [ $# -ne 1 ];then
echo "Usage $(basename $0) : please enter a argument."
exit 1
fi
arg1=$1
--包含负数
****if [[ ! $arg1 =~ ^[-0-9][0-9]+$ ]];then****
echo "$arg1 is not a number."
exit 2
else
echo "$arg1"
fi
5、 通过位置变量创建 Linux 系统账户及密码
#!/bin/bash
if [ $# -ne 2 ];then
echo "Usage:`basename $0`:Please enter 2 arguments."
exit
fi
var_user=$1
var_passwd=$2
if [[ $var_user =~ ^[0-9] ]];then
echo "\$1:username can't be started with number."
exit 1
else
useradd $var_user
echo "$var_passwd" | passwd --stdin "$var_user"
fi
6、 监控内存和磁盘容量,小于给定值时报警
[root@kkk my_shell]# cat 3.sh
#!/bin/bash
lv_disk_size=$(df -m | awk '/\/$/{print $4}')
lv_mem_size=$(free -m | awk '/Mem/ {print $4}')
#当磁盘空间小于等于20G或内存小于等于2G时发送报警信息到root的邮箱
if [ $lv_disk_size -le 20480 ] || [ $lv_mem_size -le 2048 ];then
mail -s "Warning" root <<EOF
Insufficient resources
EOF
fi
7、猜数字游戏
[root@lissen test_sh]# cat 1.sh
#!/bin/bash
num=$(( $RANDOM % 100 + 1 )) #生成随机数1-100
#定义一个无线循环
while :
do
read -p "A number is created by computed,please guess:" guess
#定义输入数字检查
if [[ ! $guess =~ ^[0-9]+$ ]];then
echo "$guess is not a number."
exit 1
fi
if [ $guess -eq $num ];then
echo "Right!"
exit
elif [ $guess -gt $num ];then
echo "The number is big!"
else
echo "The number is small!"
fi
done
[root@lissen test_sh]# ./1.sh
A number is created by computed,please guess:50
The number is big!
A number is created by computed,please guess:25
The number is small!
A number is created by computed,please guess:37
The number is big!
A number is created by computed,please guess:30
The number is big!
A number is created by computed,please guess:29
The number is big!
A number is created by computed,please guess:27
The number is small!
A number is created by computed,please guess:28
Right!
8、数字排序
由小到大排列数字
#!/bin/bash
read -p "Please enter a number: " num1
if [[ ! $num1 =~ ^[0-9]+$ ]];then
echo "Usage:$num1 is not a number,Please enter Number !"
exit 1
fi
read -p "Please enter a number: " num2
if [[ ! $num2 =~ ^[0-9]+$ ]];then
echo "Usage:$num2 is not a number,Please enter Number !"
exit 1
fi
read -p "Please enter a number: " num3
if [[ ! $num3 =~ ^[0-9]+$ ]];then
echo "Usage:$num3 is not a number,Please enter Number !"
exit 1
fi
tmp=0
if [ $num1 -gt $num2 ];then
tmp=$num1
num1=$num2
num2=$tmp
fi
if [ $num1 -gt $num3 ];then
tmp=$num1
num1=$num3
num3=$tmp
fi
if [ $num2 -gt $num3 ];then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo "The sort from min to max is: $num1 $num2 $num3"
[root@lissen test_sh]# ./2.sh
Please enter an integer:90
Please enter an integer:80
Please enter an integer:60
The number sort is : 60,80,90
9、 编写脚本测试 192.168.59.0/24 整个网段中哪些主机处于开机状态,哪些主机处于关机状态
[root@lissen test_sh]# cat 3.sh
#!/bin/bash
i=1
while [ $i -le 254 ]
do
ping -c 2 -i 0.3 -W 1 192.168.59.$i &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.59.$i is up."
else
echo "192.168.59.$i is down."
fi
let i=$i+1
done
使用函数
[root@lissen test_sh]# cat 6.sh
```bash
#!/bin/bash
function myping()
{
i=1
while [ $i -le 254 ]
do
ping -c 2 -i 0.3 -W 1 192.168.59.$i &>/dev/null
#将ping所有的输出都重定向到/dev/null中
if [ $? -eq 0 ];then
echo "192.168.59.$i is up."
else
echo "192.168.59.$i is down."
fi
let i=$i+1
done
}
myping
10、判断输入的年份是否为闰年
[root@kkk my_shell]# cat 4.sh
#!/bin/bash
read -n 4 -p "Please enter a year : " year
echo
if [[ ! $year =~ ^[0-9]+$ ]];then
echo "$year is not a number."
exit 1
fi
if [ $[ $year%4 ] -eq 0 ] && [ $[ $year%100 ] -ne 0 ];then
echo "$year is ren year."
exit 0
elif [ $[ $year%400 ] -eq 0 ];then
echo "$year is ren year."
exit 0
else
echo "$year is not a ren year."
fi
[root@kkk my_shell]# ./4.sh
Please enter a year : 2015
2015 is not a ren year.
[root@kkk my_shell]# ./4.sh
Please enter a year : fafa
fafa is not a number.
[root@kkk my_shell]# ./4.sh
Please enter a year : 2008
2008 is ren year.
11、测试用户登录
#!/bin/bash
for i in $(seq 1 1 3)
do
read -p "Please enter a username : " username
read -p "Please eneter a passwd : " passwd
if [ $username == "gan" ] && [ $passwd == "123456" ];then
echo "Logon successful!"
exit
fi
done
echo "Logon failed!"
12、从键盘上读取积分并确定积分等级
#!/bin/bash
read -p "Please enter the integeral[0-100] : " JF
if [[ ! $JF =~ ^[-0-9][0-9]+$ ]];then
echo "$JF is not a number."
exit 1
elif [ $JF -gt 100 ] || [ $JF -lt 0 ];then
echo "$JF must be in 0-100."
exit 2
fi
if [ $JF -ge 80 ] && [ $JF -le 100 ];then
echo "$JF is A."
elif [ $JF -ge 60 ] && [ $JF -lt 80 ];then
echo "$JF is B."
elif [ $JF -ge 0 ] && [ $JF -lt 60 ];then
echo "$JF is C."
fi
13、判断用户输入的数据类型(字母、数字或其他类型)
使用CASE语句
#!/bin/bash
read -n 1 -p "Please enter : " KEY
echo
case $KEY in
[a-z]|[A-Z])
echo "$KEY is a characater."
;;
[0-9])
echo "$KEY is a number."
;;
*)
echo "$KEY is other."
;;
esac
使用IF语句
#!/bin/bash
read -n 1 -p "Please enter : " KEY
echo
if [[ $KEY =~ ^[0-9]$ ]];then
echo "$KEY is a number."
elif [[ $KEY =~ ^[a-z][A-Z]$ ]];then
echo "$KEY is a character."
else
echo "$KEY is other."
fi
14、判断输入的参数是否为目录或文件
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage $(basename $0) : Please enter a argument."
exit
fi
if [ -d $1 ];then
echo "Dirctory $1 exists."
elif [ -f $1 ];then
echo "File $1 exists."
else
echo "$1 is not a directory or a file."
exit 2
fi
15、Shell简单运算
#!/bin/bash
read -p "Please enter a number : " num1
if [[ ! $num1 =~ ^[-0-9][0-9]+$ ]];then
echo "$num1 is not a number."
exit 1
fi
read -p "Please enter a number : " num2
if [[ ! $num2 =~ ^[-0-9][0-9]+$ ]];then
echo "$num1 is not a number."
exit 2
fi
#num3=$[ $num1 + $num2 ]
#num3=$(($num1 + $num2))
let num3=$num1+$num2
echo "$num1 + $num2 = $num3"
568

被折叠的 条评论
为什么被折叠?



