分类

链接

2011 年 12 月
 1234
567891011
12131415161718
19202122232425
262728293031  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > LINUX > 正文
共享办公室出租
15个精典SHELL编程例子
LINUX 暂无评论 阅读(2,357)
  1. 1.输出  1
  2.  
  3.    1 2
  4.  
  5.    1 2 3
  6.  
  7.   1 #!/bin/bash
  8.  
  9.   2 echo "Please type your number:"
  10.  
  11.   3 read a
  12.  
  13.   4 for ((i=1;i<=a;i++))
  14.  
  15.   5     do
  16.  
  17.   6     for ((p=1;p<=i;p++))
  18.  
  19.   7         do
  20.  
  21.   8         echo  -" $p "
  22.  
  23.   9         done
  24.  
  25.  10     echo
  26.  
  27.  11     done
  28.  
  29.  12 echo
  30.  
  31.  
  32.  
  33. 2.九九乘法表
  34.  
  35.   1 #!/bin/bash
  36.  
  37.   2 for ((i=1;i<10;i++))
  38.  
  39.   3     do
  40.  
  41.   4     for ((p=1;p<=i;p++))
  42.  
  43.   5         do
  44.  
  45.   6         echo -ne " $p x $i= "`expr $i \* $p`
  46.  
  47.   7         done
  48.  
  49.   8     echo
  50.  
  51.   9     done
  52.  
  53.  10 echo
  54.  
  55.  
  56.  
  57. 3.计算器
  58.  
  59.   1 #!/bin/bash
  60.  
  61.   2 while true
  62.  
  63.   3     echo "..............+"
  64.  
  65.   4     echo "..............-"
  66.  
  67.   5     echo "..............x"
  68.  
  69.   6     echo "............../"
  70.  
  71.   7     echo "..............q"
  72.  
  73.   8
  74.  
  75.   9     echo "Please type your word:(e.g.1 + 2)"
  76.  
  77.  10     read a b c
  78.  
  79.  11
  80.  
  81.  12 do
  82.  
  83.  13 case $b in
  84.  
  85.  14     +)  echo " $a + $c =" `expr $a + $c`;;
  86.  
  87.  15     -)  echo " $a - $c =" `expr $a - $c`;;
  88.  
  89.  16     x)  echo " $a x $c =" `expr $a \* $c`;;
  90.  
  91.  17     /)  echo " $a / $c =" `expr $a \/ $c`;;
  92.  
  93.  18 esac
  94.  
  95.  19
  96.  
  97.  20 case $a in
  98.  
  99.  21     q)  break ;;
  100.  
  101.  22
  102.  
  103.  23 esac
  104.  
  105.  24 done
  106.  
  107.  
  108.  
  109. 4.菱形
  110.  
  111.   1 #!/bin/bash
  112.  
  113.   2 echo  "Please type a number:"
  114.  
  115.   3 read num
  116.  
  117.   4 for ((i=1;i<=num;i++))
  118.  
  119.   5     do
  120.  
  121.   6         for ((j=0;j<num-i;j++))
  122.  
  123.   7             do
  124.  
  125.   8                 echo -" "
  126.  
  127.   9             done
  128.  
  129.  10         for ((j=0;j<2*i-1;j++))
  130.  
  131.  11             do
  132.  
  133.  12                 echo -"*"
  134.  
  135.  13             done
  136.  
  137.  14         echo ""
  138.  
  139.  15     done
  140.  
  141.  16 for ((i=1;i<=num;i++))
  142.  
  143.  17     do
  144.  
  145.  18         for ((j=0;j<i;j++))
  146.  
  147.  19             do
  148.  
  149.  20                 echo -" "
  150.  
  151.  21             done
  152.  
  153.  22         for ((j=0;j<2*(num-i)-1;j++))
  154.  
  155.  23             do
  156.  
  157.  24                 echo -"*"
  158.  
  159.  25             done
  160.  
  161.  26         echo ""
  162.  
  163.  27 done
  164.  
  165.  
  166.  
  167. 5. 输出当前目录下所有文件,并输出文件总数和目录总数
  168.  
  169.   1 #!/bin/bash
  170.  
  171.   2
  172.  
  173.   3 ls -al
  174.  
  175.   4 filenum=0
  176.  
  177.   5 dirnum=0
  178.  
  179.   6 for q in `ls -a`
  180.  
  181.   7 do
  182.  
  183.   8     if [ -d $q ]
  184.  
  185.   9     then
  186.  
  187.  10         dirnum=`expr $dirnum + 1`
  188.  
  189.  11     fi
  190.  
  191.  12         filenum=`expr $filenum + 1`
  192.  
  193.  13 done
  194.  
  195.  14 echo "The number of dirctary is $dirnum"
  196.  
  197.  15 echo "The number of file is $filenum"
  198.  
  199.  
  200.  
  201. 6.菜单
  202.  
  203.   1 #!/bin/bash
  204.  
  205.   2 while true
  206.  
  207.   3     echo "List Directory..........l "
  208.  
  209.   4     echo "Change Directory........c "
  210.  
  211.   5     echo "Edit File...............e "
  212.  
  213.   6     echo "Remove File.............r "
  214.  
  215.   7     echo "Exit Menu...............q "
  216.  
  217.   8     read ch
  218.  
  219.   9 do
  220.  
  221.  10     case $ch in
  222.  
  223.  11         l) ls;;
  224.  
  225.  12         c) echo Enter target directory
  226.  
  227.  13            read direc
  228.  
  229.  14            cd "$direc"
  230.  
  231.  15            ;;
  232.  
  233.  16         e) echo Enter file name
  234.  
  235.  17            read file
  236.  
  237.  18            vi $file
  238.  
  239.  19            ;;
  240.  
  241.  20         r) echo Enter file name
  242.  
  243.  21            read file
  244.  
  245.  22            rm $file
  246.  
  247.  23            ;;
  248.  
  249.  24         q|Q) echo Goodbye
  250.  
  251.  25         break;;
  252.  
  253.  26         *) echo illegal Option
  254.  
  255.  27     esac
  256.  
  257.  28 done
  258.  
  259.  
  260.  
  261. 7. ./shuru a b c d e f 
  262.  
  263.   1 #!/bin/bash
  264.  
  265.   2 for   (( b=$#; b>0; b-- ))
  266.  
  267.   3 do
  268.  
  269.   4     echo $*;
  270.  
  271.   5     shift;
  272.  
  273.   6 done
  274.  
  275.  
  276.  
  277. 8.电话本
  278.  
  279.   1 #!/bin/bash
  280.  
  281.   2 if [ ! -/root/minda ]
  282.  
  283.   3 then
  284.  
  285.   4 touch /root/minda
  286.  
  287.   5 fi
  288.  
  289.   6 while true
  290.  
  291.   7 echo "If you want to add a user plese type----------------------a"
  292.  
  293.   8 echo "If you want to del a user plese type----------------------d"
  294.  
  295.   9 echo "If you want to watch all users please type----------------l"
  296.  
  297.  10 echo "If you want to bianji users please tyye-------------------e"
  298.  
  299.  11 echo "If you want to exit please type---------------------------q"
  300.  
  301.  12 read b
  302.  
  303.  13 do
  304.  
  305.  14 case $b in
  306.  
  307.  15     a)  echo "Please type your name :"
  308.  
  309.  16         read name
  310.  
  311.  17         echo "Please type your number :"
  312.  
  313.  18         read number
  314.  
  315.  19         echo $name $number >> /root/minda;;
  316.  
  317.  20     d)  echo "Please type which name do you want to del:"
  318.  
  319.  21         read name
  320.  
  321.  22         cat /root/minda|grep ^[^$name]> /root/minda;;
  322.  
  323.  23     l)  cat /root/minda;;
  324.  
  325.  24     e)  echo "Please type which name do you want to del:"
  326.  
  327.  25         read name
  328.  
  329.  26         cat /root/minda|grep ^[^$name]> /root/minda
  330.  
  331.  27         echo "Please type your new name :"
  332.  
  333.  28         read name
  334.  
  335.  29         echo "Please type your new number :"
  336.  
  337.  30         read number
  338.  
  339.  31         echo $name $number >> /root/minda;;
  340.  
  341.  32     q)  exit;;
  342.  
  343.  33 esac
  344.  
  345.  34 done  
  346.  
  347.  
  348.  
  349. 9.判断当前用户的类型
  350.  
  351.   1 #!/bin/bash
  352.  
  353.   2 case $UID in
  354.  
  355.   3 0)  echo this is root;;
  356.  
  357.   4 [0-9][0-9]) echo this is system;;
  358.  
  359.   5 [1-4][0-9][0-9]) echo this is service;;
  360.  
  361.   6 *)  echo this is public;;
  362.  
  363.   7 esac
  364.  
  365.  
  366.  
  367. 10.计算1-100的和
  368.  
  369.   1 #!/bin/bash
  370.  
  371.   2 b=0
  372.  
  373.   3 for ((a=1;a<=100;a++))
  374.  
  375.   4 do
  376.  
  377.   5 b=`expr $b + $a `
  378.  
  379.   6 done
  380.  
  381.   7 echo b= $b
  382.  
  383.  
  384.  
  385. 11.用一个文件记录系统中所有rpm包名,如果文件不存在则创建,如果存在则显示文件内容。
  386.  
  387.   1 #!/bin/bash
  388.  
  389.   2 a=/root/file
  390.  
  391.   3 if [ -f $a ]
  392.  
  393.   4     then
  394.  
  395.   5         cat $a
  396.  
  397.   6     else
  398.  
  399.   7         rpm -qa  > $a
  400.  
  401.   8 fi
  402.  
  403.  
  404.  
  405. 12.用户登陆
  406.  
  407.   1 #!/bin/bash
  408.  
  409.   2 n=1
  410.  
  411.   3 while [ $n -gt 0 ]
  412.  
  413.   4 do
  414.  
  415.   5 echo "xinjian------------------1"
  416.  
  417.   6 echo "denglu-------------------2"
  418.  
  419.   7 echo "exit---------------------3"
  420.  
  421.   8 read n;
  422.  
  423.   9 case $n in
  424.  
  425.  10 1) echo "username"
  426.  
  427.  11    read name
  428.  
  429.  12    if [ -f $name ]
  430.  
  431.  13    then
  432.  
  433.  14    echo "same username"
  434.  
  435.  15    else
  436.  
  437.  16    touch /root/$name
  438.  
  439.  17    echo "passwd"
  440.  
  441.  18    read passwd
  442.  
  443.  19    echo $passwd >> /root/$name
  444.  
  445.  20    fi;;
  446.  
  447.  21 2) echo "username"
  448.  
  449.  22    read name1
  450.  
  451.  23    if [ -f $name1 ]
  452.  
  453.  24    then
  454.  
  455.  25    echo "passwd"
  456.  
  457.  26    else
  458.  
  459.  27    echo "yonghu wrong"
  460.  
  461.  28    fi
  462.  
  463.  29    read passwd1
  464.  
  465.  30    if [ $passwd1 -eq `cat /root/$name1` ]
  466.  
  467.  31    then
  468.  
  469.  32    echo "success"
  470.  
  471.  33    break
  472.  
  473.  34       else
  474.  
  475.  35       echo "passwd wrong"
  476.  
  477.  36       fi;;
  478.  
  479.  37 3) break;;
  480.  
  481.  38 esac
  482.  
  483.  39 done
  484.  
  485.  
  486.  
  487. 13.创建四个文件test1test2test3test4,实现自动创建dir1,dir2,dir3,dir4四个目录,并将test1test2test3
  488.  
  489. test4四个文件分别拷贝到dir1,dir2,dir3,dir4相应的目录下。
  490.  
  491.       1 #!/bin/bash
  492.  
  493.       2 for a in 1 2 3 4
  494.  
  495.       3 do
  496.  
  497.       4 touch test$a
  498.  
  499.       5 mkdir dir$a
  500.  
  501.       6 cp test$a dir$a
  502.  
  503.       7 done
  504.  
  505.  
  506.  
  507. 14.输入任意数求和./a.out 1 2 3 4 5 6
  508.  
  509.   1 #!/bin/bash
  510.  
  511.   2 s=0
  512.  
  513.   3 for i in $*
  514.  
  515.   4 do
  516.  
  517.   5 s=`expr $s + $i`
  518.  
  519.   6 done
  520.  
  521.   7 echo $s

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:15个精典SHELL编程例子 | Bruce's Blog

发表评论

留言无头像?