c高级shell脚本练习

思维导图

脚本练习 

if语句练习与文件判断

  1 #!/bin/bash
  2 echo "输入一个文件名"
  3 echo "判断是否在当前目录下存在"
  4 echo "如果是一个目录,直接输出 是目录"
  5 echo "如果存在判断是否是一个普通文件"
  6 echo "如果是普通文件判断是否具有可读可写可执行权限"
  7 echo "如果具备写入 hello"
  8 echo "如果不具备添加读写执行权限并且写入 hello"
  9 echo "如果是一个链接文件则输出文件的详细信息"
 10 echo ""
 11 
 12 
 13 read file
 14 if [ -e ./$file ]                                                                           
 15 then
 16     echo "存在"
 17 fi
 18 if [ -d ./$file ]
 19 then
 20     echo "是目录"
 21 elif [ -L ./$file ]
 22 then
 23     echo `ls -lh $file`
 24 elif [ -f ./$file ]
 25 then
 26     echo "是普通文件"
 27     if [ -r ./$file -a -w ./$file -a -x ./$file ]
 28     then
 29         echo "具有可读写执行权限"
 30         echo world >> $file
 31         echo "写入成功"
 32     else
 33         echo "权限不足"
 34         echo "添加权限"
 35         chmod 777 $file
 36         echo hello >> $file
 37         echo "写入成功"
 38     fi
 39 fi
效果图

 输入一个数,判断是否是回文数

  1 #!/bin/bash
  2 
  3 echo "输入一个数判断是否是回文数"
  4 echo ""
  5 
  6 read a
  7 b=$a
  8 sum=0
  9 while [ $a -gt 0 ] 
 10 do
 11     ((num=a%10))
 12     ((sum=sum*10+num))
 13     ((a=a/10))
 14 done
 15 if [ $sum -eq $b ]
 16 then
 17     echo "是回文数"
 18 else
 19     echo "啥也不是!"
 20 fi
 21       
效果图

 输入n,计算n!

  1 #!/bin/bash
  2 
  3 
  4 echo "输入n,计算n!"
  5 echo ""
  6 sum=1
  7 read -p "输入要计算的阶乘 " a
  8 for((i=1;i<=a;i++))
  9 do
 10     ((sum*=i))
 11 done
 12 echo result=$sum  
效果图

 打印等腰三角形

  1 #!/bin/bash
  2 
  3 
  4 echo "打印等腰三角形"
  5 echo ""
  6 
  7 
  8 read -p "请输入三角形的高 " h
  9 for ((i=0;i<h;i++))
 10 do
 11     for ((j=h;j>i;j--))
 12     do
 13         echo -n " "
 14     done
 15     for ((k=0;k<2*i+1;k++))
 16     do
 17         echo -n "*"
 18     done
 19     echo ""
 20 done     
效果图

 使用select in循环数组,arr=(Windows Linux Unix Mac),实现页面的交互

  1 #!/bin/bash
  2 echo "使用select in循环数组,arr=(Windows Linux Unix Mac),实现页面的交互"
  3 echo ""
  4 a=(Windows Linux Unix Mac)
  5 select b in ${a[*]} 
  6 do
  7     case $b in
  8         Windows)
  9             echo "Windows已打开"
 10             ;;
 11         Linux)
 12             echo "Linux已打开"
 13             ;;
 14         Unix)
 15             echo "Unix已打开"
 16             ;;
 17         Mac)
 18             echo "Mac已打开"
 19             ;;
 20         *)
 21             echo "错误"
 22             ;;
 23     esac
 24 done
 效果图

 判断是否是素数

  1 #!/bin/bash
  2 
  3 
  4 
  5 echo "输入一个数,判断是否是素数"
  6 echo ""
  7 
  8 b=0;
  9 read -p "输入数字以判断是否为素数 " a
 10 for ((i=1;i<a;i++))
 11 do
 12     for ((j=1;j<a;j++))
 13     do 
 14         if [ $((i*j)) -eq $a ]
 15         then
 16             ((b++))         
 17         fi
 18     done
 19 done
 20 if [ $b -eq 0 ]
 21 then
 22     echo "是素数"
 23 else
 24     echo "不是素数"
 25 fi
效果图

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值