shell脚本(一)

mac2022-06-30  83

1、打印九九乘法表

[root@centos7 scripts]# vim 99chengfb.sh #!/bin/bash for i in {1..9};do #for j in `seq 1 $i`;do #for j in `eval echo {1..$i}`;do for j in $(eval echo {1..$i});do result=$[$j*$i] echo -e "${j}x${i}=$result \t\c" done echo done

运行结果

[root@centos7 scripts]# ./99chengfb.sh 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

2、打印等腰三角形。(星个数:start=line*2-1;空格个数:space=总行数-line)

[root@centos7 scripts]# cat triangle.sh #!/bin/bash read -p "please input a num " NUM for i in `seq 1 $NUM`;do for j in `seq 1 $[$NUM-$i]`;do echo -e " \c" done for k in `seq 1 $[$i*2-1]`;do echo -e "*\c" done echo done [root@centos7 scripts]# ./triangle.sh please input a num 5 * *** ***** ******* ********* [root@centos7 scripts]#

3、打印国际象棋棋盘

[root@centos7 scripts]# cat color.sh #!/bin/bash greyel (){ echo -e "\033[1;42m \033[1;43m \033[0m\c" } yelgre (){ echo -e "\033[1;43m \033[1;42m \033[0m\c" } for i in {1..8};do for ((j=1;j<=4;j++))do if [ $[$i%2] -eq 0 ];then greyel else yelgre fi done echo done [root@centos7 scripts]# ./color.sh

4、批量创建用户和批量删除用户

[root@centos7 scripts]# cat batch_creatuser.sh #!/bin/bash until [ "$#" -le 0 ];do useradd $1 echo "$1 is created" shift done echo "done" [root@centos7 scripts]# cat batch_deleteuser.sh #!/bin/bash #while [ "$#" -gt 0 ];do while [ ! -z "$1" ];do userdel -r $1 &> /dev/null && echo "$1 is deleted" shift done echo "done"

5、判断系统的版本号

[root@centos7 scripts]# cat check_version.sh #!/bin/bash version (){ ver=`sed -r 's/.*[ ]([0-9]+)\..*/\1/' /etc/redhat-release` if [ $ver -eq 6 ];then echo this is $ver version!!! echo this verison is old!!! else echo this is $ver version!!! fi } version [root@centos7 scripts]# ./check_version.sh this is 7 version!!!

6、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出

[root@centos7 scripts]# cat guest.sh #!/bin/bash rand=$[$RANDOM] while true;do read -p "please input a number " NUM if [[ $NUM =~ ^[[:digit:]]+$ ]] ;then if [ $rand -gt $NUM ];then echo little elif [ $rand -lt $NUM ];then echo great else echo right break fi else echo "please input a number:1-10" continue fi done

运行结果

[root@centos7 scripts]# ./guest.sh please input a number 6 great please input a number 5 great please input a number 3 little please input a number 4 right

7、实现阶乘

[root@centos7 scripts]# cat jiecheng.sh #!/bin/bash read -p "please input a number: " NUM fact() { if [ $1 -eq 0 -o $1 -eq 1 ]; then echo 1 else echo $[$1*$(fact $[$1-1])] fi } fact $NUM [root@centos7 scripts]# ./jiecheng.sh please input a number: 9 362880

8、实现100以内所有正奇数之和,实现1到100所有正数之和

[root@centos7 scripts]# ./test_for.sh sum=5050 sum1=2500 [root@centos7 scripts]# cat test_for.sh #!/bin/bash declare -i sum=0 declare -i sum1=0 for i in {1..100};do let sum=sum+i done echo sum=$sum for i in {1..100..2};do let sum1+=i done echo sum1=$sum1 [root@centos7 scripts]# ./test_for.sh sum=5050 sum1=2500

9、case测试脚本

[root@centos7 scripts]# cat test_case.sh #!/bin/bash read -p "DO you argee? yes or no:" ANS if [ -z "$ANS" ];then echo "please input yes or no" exit fi case $ANS in [Yy]|[Yy][Ee][Ss]) echo Your answer is YES ;; [Nn]|[Nn][Oo]) echo Your answer is NO ;; *) echo Your answer is false esac [root@centos7 scripts]# ./test_case.sh DO you argee? yes or no:y Your answer is YES
最新回复(0)