过程试编程语言就三种形式
顺序执行, 选择性执行, 循环执行
条件判断
选择if语句 if 是个关键字,不能独立用,要配合用,(不是内部命令也不是外部命令)
if 的语法
if 语句可以嵌套
单分支
if 判断条件 ; then
条件为真 执行后面的语句
fi
结尾
双分支
if 判断条件; then
条件为真的分支代码
else 条件为假的分支代码
fi
结束
多分支
if 判断条件1; then
条件1为真的分支代码
elif 判断条件2;then
条件2为真的分支代码
elif 判断条件3;then
条件3为真的分支代码
eles
以上条件都为假的分支代码
fi
结束
逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if语句
写个年龄小于18岁 。18 《AGE》60 ,60《AGE《150 151《AGE
执行脚本看下
if 语句不适合用来判断
case 语句
case支持glob风格的通配符
* :任意长度,任意字符
? :人以单个字符
[] : 指定范围内的任意单个字符
a|b a或b
格式
case 变量引用 “$ ” in
PAT1)
分支1
;;
PAT2)
分支2
;;
…..
…..)
默认分支
;;
esac
结束
PAT 可以用通配符表示
判断YES 或者NO的脚本
执行看下
for ,while , until
是循环执行(重复运行次数)
循环次数已知和循环次数未知
有条件进入和条件退出 和二为一,满足执行,不满足退出
for 循环 格式:
for 变量名(*不是变量引用* in(in后面跟列表,中间空格隔开;循环是看列表有几个就循环几次);do
循环体
done
执行机制:依次将列表的元素赋值给“变量名”,每次赋值后执行一次循环,直到列表中的元素耗尽,循环结 束
列表的生成方法
1:直接给出列表
2:整数列表
a : {start..end}
{10..2..3} 10到2 步进负3(从大到小是负 从小到大是正){10..20..3} 10到20 步进正3
b : $(seq [start [step]] end)
seq 1 2 10 表示的是1-10 以2为步进 `seq 1 2 10
` 是个命令 引用命令的用“反向单引号
c 只要是生成列表的命令都可以 ls /boot
3: 返回列表的命令
$(COMMDAND) 与`COMMAND
` 效果一样
4: 引用glob 通配符 *.sh
5: 引用变量: $@ , $#
在写shell脚本中 declare 是声明变量类型的
在shell中如果不声明变量类型,默认是字符串,但是字符串是无法进行四则运算的,所以要进行运算必须声明变量为数字类型
格式 : declare [+/-] [选项] 变量名
– #给变量设定类型属性
+ #取消变量类型属性
-a #将变量声明为数组型
-i #声明整数型
-x #声明环境变量
-r #将变量声明只读变量
-p #显示指定的变量的被声明类型
实行脚本
搜索网段 看看那些网段被用
if 前面的大括号“{}” 可以加速脚本的加速访问是并行执行,不是顺序执行, &表示在后台执行 wait是后台执行完表示结束 不加wait 手工去敲回车键
也可以把找出来的网段重定向到文件中去
查看文件 cat scannetlist.txt 扫描出来的网段
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/97744