清空日志
1 2 3 4 5 6 7 8 9 10 11 12 #!/bin/bash LOG_DIR=/var/log cd  $LOG_DIR cat  /dev/null > wtmpecho  "Logs cleaned up." exit 
cat /dev/null > wtmp 可以换为 : > wtmp
sudo cat /dev/null > /var/log/wtmp 一样会提示权限不够,为什么呢?因为 sudo 只能让 cat 命令以 sudo 的权限执行,而对于>这个符号并没有 sudo 的权限,我们可以使用
sudo sh -c "cat /dev/null > /var/log/wtmp " 让整个命令都具有 sudo 的权限执行cleanlogs.sh  可以将 log 文件清除?
 
写一个脚本
(1) 提示用户输入一个字符串;
1 2 3 4 5 6 7 8 9 10 11 #!/bin/bash read  -t 10 -p "Please enter string: "  inputStrcase  $inputStr  in quit)   exit  1   ;; *)   echo  "$inputStr "    ;; esac 
有一个8升的瓶子装满水,还有一个5升的空瓶子和一个3升的空瓶子。要求将水分成两个4升。
运行脚本之后要生产类似这样的解决方案:
1 2 3 4 5 6 7 8 9 10 Your containers: 8     5     3 Solution1 step0: 8-->0-->0 Solution1 step1: 3-->5-->0 Solution1 step2: 3-->2-->3 Solution1 step3: 6-->2-->0 Solution1 step4: 6-->0-->2 Solution1 step5: 1-->5-->2 Solution1 step6: 1-->4-->3 Solution1 step7: 4-->4-->0 
提示:上述题目的解法不唯一,你只需要通过流程控制来实现其中的一种就可以了。(注意题中所给的解法,它其实是重复进行的。只有 step3 -> step4 是需要单独注意的。)
 
三角输出
编写 bash 脚本输出如图的三角
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!/bin/bash for ((i=1;i<=5;i++))do   spaceNum=$((5 -$i ))   num=$((2 *$i -1 ))   for  ((j=1; j<=$spaceNum ; j++))   do      echo  -n ' '    done    for  ((k=1; k<=$num ; k++))   do      echo  -n '*'    done    for  ((l=1; j<=$spaceNum ; l++))   do      echo  -n ' '    done    echo  ''  done 
目标test.sh ,判断 8 4 5 三个数字的最大值
输出
提示
此题解法不唯一,这里只是给出其中一种作为参考。
/home/shiyanlou/test.sh 参考代码
1 2 3 4 5 6 7 8 9 10 11 12 13 #!/bin/bash max=0 a=8 b=4 c=5 for  i in  $a  $b  $c do   if  [ $i  -gt $max  ]   then      max=$i    fi  done echo  $max 
新建 test.sh  求 100 以内所有偶数之和
和的值
文件创建在 /home/shiyanlou/ 下
此题解法不唯一,这里只是给出其中一种作为参考。
/home/shiyanlou/test.sh 的参考代码:
1 2 3 4 5 6 7 8 9 #!/bin/bash cnt=0 sum =0for  cnt in  `seq  2 2 100`do   sum =$((cnt+sum)) done echo  $sum 
seq 2 2 100 表示列出 1 到 100 的所有偶数
猜数字游戏:
首先让系统随机生成一个数字,给这个数字一个范围,让用户猜数字,对输入作出判断,并且给出提示。
请用 while 语句实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #!/bin/bash function  randNum   while  :   do      read  aNum     if  test  $aNum  -eq $1      then        echo  "right"        break  1     else        if  [ $aNum  -gt $1  ]         then             echo  "The answer is smaller than yours."           else             echo  "The answer is bigger than yours."           fi        fi    done  } randNum $(($RANDOM %100 +1 ))