shell脚本练习
1、用脚本输出九九乘法表
#!/bin/bash
for ((i=1;i<=9;i++))
do
for((j=1;j<=i;j++))
do
let "A=i*j"
echo -n "$i*$j=$A "
done
echo " "
done
[root@zjh ~]# bash 4.sh
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
方法二:
#!/bin/bash
for i in $(seq 9);do
for j in $(seq $i);do
echo -ne "${i}x${j}=$[$i*$j]\t"
done
echo
done
2、写一个脚本,传递两个整数给此脚本,让脚本分别计算并显示这两个整数的和、差、积、商
#!/bin/bash
A=$1
B=$2
let C=$A+$B
let D=$A-$B
let E=$A*$B
let F=$A/$B
echo "$C"
echo "$D"
echo "$E"
echo "$F"
3、写一个脚本,要求如下:
创建目录/tmp/scripts
切换到此目录
复制/etc/pam.d目录至当前目录,并重命名为test
将当前目录的test及其里面的文件和目录的属主改为redhat
将test及其子目录中的文件的其它用户的权限改为没有任何权限
#!/bin/bash
mkdir /tmp/scripts
cd /tmp/scripts
cp -r /etc/pam.d /tmp/scripts/
cd /tmp/scripts
mv pam.d/ test/
useradd redhat
chown -R redhat test/
chmod -R 000 test/
4、写一个脚本,要求如下:
显示当前系统日期和时间,而后创建目录/tmp/lstest
切换工作目录至/tmp/lstest
创建目录a1d,b56e,6test
创建空文件xy、x2y,732
列出当前目录下以a,x或者6开头的文件或目录
列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录
#!/bin/bash
date
mkdir /tmp/lstest
cd /tmp/lstest
mkdir -p a1d b56e 6test
touch xy x2y 732
ls [ax6]*
ls [[:alpha:]][[:digit:]]*
5、写一个脚本,要求如下:
设置变量Fa的值为etc/passwd
依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么。结果输出如下:
hello,root,your UID is 0
统计当前系统一共有多少个用户并输出
#!/bin/bash
Fa=/etc/passwd
sum=$(cat /etc/passwd |wc -l)
while read line;do
a=$(echo $line|awk -F ':' '{print$1}')
b=$(echo $line|awk -F ':' '{print$3}')
echo "hello $a , your uid is $b !"
done < $Fa
echo "yuor yonghu is $sum !"
6、写一个脚本,要求如下:
1、定义变量为99
2、利用判断语句猜数字,猜对了打印“你真棒!”,猜错(猜错有两种情况:一个大,一个小)了打印“如果是大:那就打印猜大了:如果猜小了:那就打印猜小了”
#!/bin/bash
i=99
if
[ $1 -eq $i ]; then
echo "你真棒!"
elif
[ $1 -gt $i ]; then
echo "猜大了!"
else
echo "猜小了!"
fi
[root@zjh ~]# bash 7.sh 100
猜大了!
[root@zjh ~]# bash 7.sh 33
猜小了!
[root@zjh ~]# bash 7.sh 99
你真棒!
7、写一个脚本,要求如下:
1、写一个猜年龄游戏,这是游戏的提示语(read -p '欢迎来到猜年龄游戏sum)
2、利用循环语句
3、猜对了:打印“恭喜你答对啦!” ,猜对了话就是退出脚本
4、猜错了:打印“请再来一次!”,猜错了就继续猜,不退出
#!/bin/bash
a=20
while true
do
read -p "欢迎来到猜年龄游戏!
请输入你猜测的年龄: ' c
if [ $c -eq $a ] ; then
echo "恭喜你答对啦! "
exit 0
elif [ $c -ne $a ] ; then
echo "请再来一次!"
fi
done
[root@zjh ~]# bash 8.sh
欢迎来到猜年龄游戏!
请输入你猜测的年龄: 5
请再来一次!
欢迎来到猜年龄游戏!
请输入你猜测的年龄: 8
请再来一次!
欢迎来到猜年龄游戏!
请输入你猜测的年龄: 20
恭喜你答对啦!