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基础语法的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

shell 基础语法

Acwing Linux基础课笔记shell语法

Acwing Linux基础课笔记shell语法

bash shell基础语法

201555332盛照宗—网络对抗实验1—逆向与bof基础