shell脚本编程 实例讲解

shell脚本编程 实例讲解

1.键盘输入三个数字,按照从大到小的顺序输出!

排序题

a b c
2 10 9

a=2 b=10 v=9

第一步: 两两相互进行比较,比较三次
第二步:不论谁大谁小,最后都输出 $a $b $c 从大到小
$a 永远存储的都是最大值

a和b 进行比较

如果a的值小于b的值, 那么,将b的值赋给变量a
a的值赋给变量b

b瓶子里面的果汁 与a瓶子里面的牛奶互换
定义一个空变量

代码没有对错,只要结果正确:

if [ $a -ge $b ] && [ $a -gt $c ] && [ $b -gt $c ] ; then
echo " $a > b > b > b>c "

if [ $a > $b ] ;then

  if  [ $a > $c ] ;then

      if  [ $b > $c ] ;then
          echo  $a  $b  $c
      fi
  fi

fi

a b c
a最大 || b最大;
c可能是中间者

2.人机 石头、剪刀。 布 游戏
RANDOM系 统环境变量:随机数
用法:
RANDOM范围: 0-25535
范围中生成随机数: 100以内 随机数
$RANDOM%100
随机数范围:0~99

      a=("linux"  "debain" "centos" )
      下标从0开始
       num=$[RANDOM%3]  0~2
       a[$num]        




 %
 5%2   1
 6%2  0
 1%2 1

余n时,结果永远在0~n-1之间

#!/bin/bash
echo “此游戏0代表剪刀;1代表石头,2代表布”
read -p “请输入你的选择:” n
m=$[RANDOM%0-2]
if [ $m -eq 0 ];then
[ $n -eq 0 ] &&echo “平了”
[ $n -eq 1 ] && echo “胜了”
[ $n -eq 2 ] && echo “败了”
echo “计算机猜的是:剪刀”
fi
if [ $m -eq 1 ];then
[ $n -eq 1 ] && echo “平了”
[ $n -eq 2 ] && echo “胜了”
[ $n -eq 0 ] && echo “败了”
echo “计算机猜的是:石头”
fi
if [ $m -eq 2 ];then
[ $n -eq 2 ] && echo “平了”
[ $n -eq 0 ] && echo “胜了”
[ $n -eq 1 ] && echo “败了”
ec ho “计算机猜的是:布”
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shell脚本高级编程教程,希望对你有所帮助。 Example 10-23. Using continue N in an actual task: 1 # Albert Reiner gives an example of how to use "continue N": 2 # --------------------------------------------------------- 3 4 # Suppose I have a large number of jobs that need to be run, with 5 #+ any data that is to be treated in files of a given name pattern in a 6 #+ directory. There are several machines that access this directory, and 7 #+ I want to distribute the work over these different boxen. Then I 8 #+ usually nohup something like the following on every box: 9 10 while true 11 do 12 for n in .iso.* 13 do 14 [ "$n" = ".iso.opts" ] && continue 15 beta=${n#.iso.} 16 [ -r .Iso.$beta ] && continue 17 [ -r .lock.$beta ] && sleep 10 && continue 18 lockfile -r0 .lock.$beta || continue 19 echo -n "$beta: " `date` 20 run-isotherm $beta 21 date 22 ls -alF .Iso.$beta 23 [ -r .Iso.$beta ] && rm -f .lock.$beta 24 continue 2 25 done 26 break 27 done 28 29 # The details, in particular the sleep N, are particular to my 30 #+ application, but the general pattern is: 31 32 while true 33 do 34 for job in {pattern} 35 do 36 {job already done or running} && continue 37 {mark job as running, do job, mark job as done} 38 continue 2 39 done 40 break # Or something like `sleep 600' to avoid termination. 41 done 42 43 # This way the script will stop only when there are no more jobs to do 44 #+ (including jobs that were added during runtime). Through the use 45 #+ of appropriate lockfiles it can be run on several machines 46 #+ concurrently without duplication of calculations [which run a couple 47 #+ of hours in my case, so I really want to avoid this]. Also, as search 48 #+ always starts again from the beginning, one can encode priorities in 49 #+ the file names. Of course, one could also do this without `continue 2', 50 #+ but then one would have to actually check whether or not some job 51 #+ was done (so that we should immediately look for the next job) or not 52 #+ (in which case we terminate or sleep for a long time before checking 53 #+ for a new job).

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹汇川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值