第十期_Linux 与 Shell_20190620

Linux与Shell

变量

  254  echo '$PWD'
  255  echo "$PWD"
  256  printf
  257  print
  258  printf
  259  printf "$PWD"
  260  printf "$PWD\\n"
  261  echo $PWD
  262  echo $USER
  263  echo $HOME
  264  echo ~\\
  265  echo ~
  266  echo $PATH
  267  java -version
  268  which java
  269  i=1
  270  echo $i
  271  echo $i
  272  i=i+1
  273  echo $i
  274  i=0
  275  ((i=i+1))
  276  echo $i
  277  ((i=i+1))
  278  echo $i
  279  echo $((i=i+1))
  280  echo $((i=i+1))
  281  echo $((i=i+1))
  282  echo $((i*10))
  283  echo $((i/10))
  284  echo $((i/10))
  285  echo $((i/2))
  286  echo $((i/2))
  287  echo $i
  288  awk 'BEGIN{print 1/3}'
  289  awk 'BEGIN{printf "%.2f" 1/3}'
  290  awk 'BEGIN{printf "%.2f",1/3}'
  291  awk 'BEGIN{printf "%.2f\\n",1/3}'
  292  awk 'BEGIN{printf "%.2f\\n",1/3}'
  293  awk 'BEGIN{printf "%.2f\\n",1/3}'
  294  awk 'BEGIN{printf "%.8f\\n",1/3}'
  295  awk 'BEGIN{printf "%.10f\\n",1/3}'
  296  awk
  297  awk '{printf "%.10f\\n",1/3}'
  298  awk 'BEGIN{printf "%.10f\\n",1/3}'
  299  echo "hogwarts"
  300  x="hogwarts"
  301  echo $x
  302  echo ${#x}
  303  echo ${x:3}
  304  echo ${x:0:3}
  305  echo ${x:1:3}
  306  echo ${x:0:7}
  307  echo ${x:0:-1}
  308  echo ${x:0:7}
  309  echo ${x#g}
  310  echo ${x#g*}
  311  echo ${x#*g}
  312  x="hogwarts from testerhome"
  313  echo ${x#*t}
  314  echo ${x##*t}
  315  echo $x
  327  echo $x | awk 'BEGIN{FS="t"}{print $1}'


控制逻辑

  382  if [ -f "$a" ]; then echo file exist; else echo file not exist; fi
  383  [ -f "$a" ] && echo file exist || echo file not exist

  397  for((i=0;i<10;i++));do echo $i;done
  398  a="1 2 3"
  399  for x in $a;echo x=$x;done
  400  for x in $a;do echo x=$x;done
  401  i=0
  402  while ((i<10)); do echo $i;((i+=1));done
  403  vi /tmp/1
  404  while read line; do echo line=$line;done
  405  while read line; do echo line=$line;done < /tmp/1
  406  while read line; do echo line=$line; ((line<3)) || break;done < /tmp/1
  407  while read line; do echo line=$line; ((line<3)) || continue ;done < /tmp/1
  408  while read line; do echo line=$line; ((line<3)) && continue ;done < /tmp/1
  409  while read line; do echo ((line<3)) && continue ;echo line=$line; done < /tmp/1
  410  while read line; do ((line<3)) && continue ;echo line=$line; done < /tmp/1

课间练习作业1

抽奖活动: https://testerhome.com/topics/19525
抽奖程序

  • 找到所有的参加活动的名单
  • 随机出选择的人
lucky ()
{
    seeds=$(while read line; do echo ${line// /..} ; done < 10.wx );
    count=0;
    index=0;
    while ((count!=1)); do
        ((index+=1));
        seeds=$( for line in $seeds; do ((RANDOM%2==1)) && echo $line ; done);
        echo;
        echo 第 $index 轮:$seeds;
        count=$(echo "$seeds" | wc -l );
    done
}

获奖结果

  • 第 8 轮:灿烂笑晶莹哭
  • 第 7 轮:雅萍
  • 第 6 轮:李子
  • 第 6 轮:Hello.
  • 第 6 轮:切个大西瓜
  • 第 6 轮:南巫
  • 第 5 轮:电脑出售:computer:货真价实
  • 第 8 轮:赛艾勒哦艾迪

如果未参加活动,奖品会重新放回抽奖池下周再次抽奖

补救办法

本节课课后作业

  • 完善抽奖程序, 如果最后一轮没人命中,从上一轮的种子里再次选拔,而不是整个作废
  • 加分项,加入去重
  • 加分项,把多次抽奖也合并到一次的抽奖里

提前预习的周末作业1

统计当前的网络连接中的所有外部ip数量

提前预习的周末作业2

统计https://testing-studio.com网站的所有不可访问的死链

提前预习的周末作业3

编写shell版本的android自动化工具