for语句
基本格式:
for 变量名 in 条件; do …; done
样例:遍历目录或文件
|
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
cd
/etc/
##脚本中如果查询的目录在多级目录下,首先要进入到目录,或者,直接跟绝对路径
for
a
in
`
ls
/etc/
`
##遍历目录
do
if
[ -d $a ]
##一个一个的去判断是否为目录
then
ls
-d $a
##如果是目录,就查看下目录内的文件和子目录
fi
done
|
while语句
基本格式:
while 条件;
do … ;
done
样例:实时监测负载发邮件
|
1
2
3
4
5
6
7
8
9
10
|
#!/bin/bash
while
:
##:表示永远循环,和true一个意思
do
load=`w|
head
-1|
awk
-F
'load average: '
'{print $2}'
|
cut
-d. -f1`
if
[ $load -gt 10 ]
then
top
|mail -s
"load is high: $load"
abcd@123.com
##这里也可以执行python发邮件的脚本
fi
sleep
30
done
|
break
跳出整个循环,执行循环代码后的指令。
continue
跳过本次循环,进行下一轮循环。
exit
退出整个脚本。
函数
基本格式:
function fun(){ ##定义函数
……
}
fun 1 2 3 ##传入参数,调用函数
变量含义:
$1 : 第一个参数
$2 : 第二个参数
$3 : 第三个参数
$0 : 脚本的本身名称
$# : 传入的参数个数
$@ : 全部参数
样例:查看网卡ip地址
|
1
2
3
4
5
6
7
|
#!/bin/bash
ip() {
ifconfig
|
grep
-A1
"$e"
|
tail
-1 |
awk
'{print $2}'
}
read
-p
"Please input the eth name: "
e
myip=`ip $e`
echo
"$e address is $myip"
|
数组
定义:
|
1
2
3
4
5
6
7
8
9
10
11
|
# a=(1 2 3) ##定义一个数组a并赋值 1 2 3
# echo ${a[*]} ##注意输出a的值的格式
1 2 3
# echo ${a[1]} ##输出单个a数组中的值
2
# echo ${a[2]}
3
# echo ${a[0]} ##注意第一个其实是 0
1
# echo ${#a[@]} ##获取数组的元素个数
3
|
更改:
|
1
2
3
4
5
6
7
8
|
# a[3]=a ##给第三个数组赋值一个a
# echo ${a[*]}
1 2 3 a
# a[3]=aaa ##修改赋值为aaa
# echo ${a[*]}
1 2 3 aaa
#echo ${a[@]/5/asd} ##替换
1 2 3 4 asd 6 7 8
|
删除:
|
1
2
|
# unset a[2] ##删除a数组中第2位的值
# unset a ##删除a数组
|
分片:
|
1
2
3
4
5
6
7
|
# a=(`seq 1 8`) ##给a赋值8个数
# echo ${a[*]}
1 2 3 4 5 6 7 8
# echo ${a[@]:3:3} ##从第3个数组开始,截取3个。
4 5 6
# echo ${a[@]:0-3:2} ##从倒数第三个开始,取两个数
6 7
|
本文转自Grodd51CTO博客,原文链接:http://blog.51cto.com/juispan/2064850
,如需转载请自行联系原作者