Shell基础语法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell基础语法相关的知识,希望对你有一定的参考价值。
for语句
基本格式:
for 变量名 in 条件; do …; done
样例:遍历目录或文件
#!/bin/bash cd /etc/ ##脚本中如果查询的目录在多级目录下,首先要进入到目录,或者,直接跟绝对路径 for a in `ls /etc/` ##遍历目录 do if [ -d $a ] ##一个一个的去判断是否为目录 then ls -d $a ##如果是目录,就查看下目录内的文件和子目录 fi done
while语句
基本格式:
while 条件;
do … ;
done
样例:实时监测负载发邮件
#!/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" [email protected] ##这里也可以执行python发邮件的脚本 fi sleep 30 done
break
跳出整个循环,执行循环代码后的指令。
continue
跳过本次循环,进行下一轮循环。
exit
退出整个脚本。
函数
基本格式:
function fun(){ ##定义函数
……
}
fun 1 2 3 ##传入参数,调用函数
变量含义:
$1 : 第一个参数
$2 : 第二个参数
$3 : 第三个参数
$0 : 脚本的本身名称
$# : 传入的参数个数
[email protected] : 全部参数
样例:查看网卡ip地址
#!/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"
数组
定义:
# 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
更改:
# 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
删除:
# unset a[2] ##删除a数组中第2位的值 # unset a ##删除a数组
分片:
# 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
以上是关于Shell基础语法的主要内容,如果未能解决你的问题,请参考以下文章