这期内容当中小编将会给大家带来有关的循环如何在shell脚本中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>为命令:强>
我的各种用法:
- <李>
我在file1 file2”“file3”
李> <李>我在/boot/*
李> <李>/etc/*.的我李参看
> <李>我的美元(seq - w 10)——》等宽的01-10
李> <李>我在{1…10}
李> <李>我的美元(ls)
李> <李>我在$ (& lt;李文件)
> <李>我在“$ @”——》取所有位置参数,可简写为我
注意:bash shell支持C式循环
# !/bin/bash j=$ 1 for ((i=1;, i<=j;,我+ +)) 做 touch 文件$小姐:,,,echo file 美元小姐:is 好吧 做
- <李>
$ @:所有位置变量的内容
李> <李>$ #:位置变量的个数
李> <李>0美元:文件名
李> <李>$ *:所有位置变量的内容
李>编写脚本应该注意的事项:
- <李>
开头指定使用什么壳,例如:bash, ksh, csh等
李> <李>脚本功能描述,使用方法,作者,版,本日期等
李> <李>变量名,函数名要有实际意义,函数名以动名词形式,第二个单词首字母要大写。例如:updateConfig ()
李> <李>缩进统一用4个空格,不用标签
李> <李>取变量值使用大括号,如$ {varname}
李> <李>删除文件时,如果路径有变量的,要判断变量有值,如rm - f $ {abc}/*如果变量abc没有值,则会把根目录下的文件删除
李> <李>脚本中尽量不要使用cd变换目录
李> <李>函数中也要有功能描述,使用依法,版,本日期等
李> <李>函数的功能要单一,不要太复杂
李> <李>$()比“更好
李> <李>尽量不要使用多层如果语句,而应该以例语句替代
李> <李>如果需要执行确定次数的循环,应该为语用句替代而语句
李> <李>输入的参数要有正确性判断
李> <李>多加注释,方便自己或他人阅读。
练习1:编写脚本清空所有arp缓存记录:
# !/bin/bash for 小姐:美元拷贝(arp |, tail -n + 2 | tr -s & # 39;, & # 39;, | cut - d # 39;, & # 39;, f1) 做 arp 才能-d 我美元 完成了
练习2:产生十个随机数:
方法1:
for 小姐:{0 . . 9};拷贝do echo 随机美元;做
方法2:
for 小姐:拷贝(seq 10)美元;do echo 随机美元;做
练习3:倒数五秒:
# !/bin/bash echo “准备倒数5秒:“ for 小姐:拷贝$ (seq 5, 1, 1) 做 echo 才能;-en “我美元;sleep 1 完成 echo -e “开始“
方法2:
# !/bin/bash echo “准备倒数5秒:“ for 小姐:拷贝$ (seq 5, 1, 1) 做 echo 才能;-en “\ b我美元;sleep 1 完成 echo -e “\ b开始“
练习4:批量添加用户:
# !/bin/bash for 小姐:拷贝(cat 美元/根/users.txt),,,,,》从列表文件读取文件名 做 useradd 才能;我美元 echo 才能;“123456“,|,passwd ——stdin 小姐:美元——》通过管道指定密码字串 完成了
练习:
查找出uid大于10000的用户,然后删除,必须使用的循环。
#/bin/bash u_uid=(cat /etc/passwd |, awk - f:, & # 39; {print 3美元}& # 39;”) u_name=(cat /etc/passwd |, awk - f:, & # 39; {print 1美元}& # 39;”) for 小姐:“拷贝seq $ {# u_uid [@],}” 做 if 才能;((,$ {u_uid(张)},祝辞,10000,)) 然后才能 ,,,,,userdel -r $ {u_name(张)},,echo “$ {u_name(张)},delete ok" fi才能 做
方法2:用正则找出大于10000的用户:
cat /etc/passwd |, egrep “1 [0 - 9] {4}, |, [2 - 9] {5}”
例子:根据ip地址检查网络中存活的主机ip。
<李>
在,,直到等循环语句中,用于跳出当前所在的循环体,执行循环体后的语句