您的位置:首页 > 运维架构 > Shell

0409学习总结2(shell脚本文件的学习)

2017-04-09 19:51 211 查看
shell命令解析器

1.Shell脚本是一个包含一系列命令序列的文本文件,当运行这个脚本文件时,文件中包含的命令序列将得到执行。

2.shell脚本有两种执行方式
(1)交互式:用户输入一条命令,Shell就执行一条
(2)批处理:写成shell脚本,一次性执行

3.shell脚本编辑格式首先开头
#!/bin/sh
如何新建一个脚本?
(1)vim demo.sh
编写完之后执行

(2)sh demo.sh

4.注释方式
(1)行注释:#
(2)段注释::<<!EOF!

    !EOF!

5.在Shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明。

命名规范:
①首个字符必须为字母;
②中间不能有空格,可以有下划线

③不能使用标点符号,不能使用bash中的关键字

6.shell脚本中换行的如何使用

例子:echo -e "dsf \n"#-e是对字符\n进行转换

7.shell脚本中变量的设置
例子:#!/bin/sh
num=2
echo "this is the $num"

#对变量的引用加$

8.只读变量:readonly num=2

  删除变量:unset num(不能删除只读变量)

9.在shell脚本中全局变量在函数使用完之后值是不会改变的

10.声明局部变量:例子:local hello="var2"
注意:1、变量赋值时,“=”左右两侧都不能有空格

      2、BASH中的语句结尾不需要分号

11.if语句的使用
例子:
if [   ]
then

    ....
else if [   ]

     then

         .....

      else

         .....

     fi
fi

#fi对应着上一个的if

11.比较
比较操作 整数操作
字符串操作
相同           -eq
            =
不同           -ne
           !=
大于           -gt
            >
小于           -lt
            <
大于或等于 -ge

小于或等于  -le

为空           -z

不为空     -n

例:
比较整数a和b是否相等:if [ $a = $b ] (或eq)

    判断整数a是否大于整数b:if [ $a -gt $b ]

    比较字符串a和b是否相等:if [ $a = $b ]

    判断字符串a是否为空:if [ -z $a ]

    判断整数变量a是否大于b:if [ $a -gt $b ]

注意:
1、在“[”和“]”的左右都留有空格

      2、“=”左右都有空格

12.for循环
for 变量 in [    ]

do

    。。。。。 
done

例子:
for day in Sun Mon Tue Wed Thu Fri Sat
do

    echo $day
done
输出的结果就是:
sun
mon
tue
wed
thu
fri

sat

13.while循环
while 循环的基本结构是:
while [ condition ]   #condition为真执行
do

     。 。。。。。
done

例子:
#!/bin/sh
read COUNT
a=1
add=0
while [ $a -le $COUNT ]
do
add=`expr $add + $a`
a=`expr $a + 1`
done
echo "add = $add
#这个例子是指键盘输入两个数,然后结果为这连个数的遍加

#`这个是键盘上1的左边那个键位

14.until循环
until [ condition ]     #condition为假时执行
do
。。。。
done

15.case语句的使用(类似于c中的switch)

例子:
case 2 in
1) ;;
2) echo "sadasf" ;;
3);;
*);;
esca

#当键盘输入2时,就会显示结果为sadasf

#1、*)相当于default

#2、;;相当于break

16.函数的使用

格式:
function function_name ( )
{

    list of commands

    [ return value ]
}

(1)函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。

(2)Shell 函数返回值只能是整数

(3)删除函数:$unset .f function_name

17.数组的使用

(1)在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:

   

  array_name=(value1 ... valuen)

(2)还可以单独定义数组的各个分量:可以不使用连续的下标,而且下标的范围没有限制。
array_name[0]=value0

        array_name[1]=value1

        array_name[2]=value2

(3)读取数组元素值的一般格式是:

   

        ${array_name[index]}

(4)

使用@ 或 * 可以获取数组中的所有元素:

${array_name[*]}
${array_name[@]}

(5)

获取数组的个数:
number=${#array_name[@]}或length=${#array_name[*]}

取得数组单个元素的长度
length=${#array_name
}

*18.在编写shell脚本时一定要注意空格的使用,不然会出现错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: