shell脚本练习

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
恭喜你答对啦! 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值