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 轮:电脑出售货真价实
- 第 8 轮:赛艾勒哦艾迪
如果未参加活动,奖品会重新放回抽奖池下周再次抽奖
补救办法
- 抽奖活动: https://testerhome.com/topics/19525
- 介绍2名新学员直接获得门票
- 下周老学员也会参加,一起抽20张门票
- 先到先得
本节课课后作业
- 完善抽奖程序, 如果最后一轮没人命中,从上一轮的种子里再次选拔,而不是整个作废
- 加分项,加入去重
- 加分项,把多次抽奖也合并到一次的抽奖里
提前预习的周末作业1
统计当前的网络连接中的所有外部ip数量
提前预习的周末作业2
统计https://testing-studio.com网站的所有不可访问的死链
提前预习的周末作业3
编写shell版本的android自动化工具