Day 4 bash shell脚本预习

Shell命令

Linux系统中的Shell种类众多,常见的有bashcsh以及ksh等。不同的Shell语法有所不同,不能互换使用,但每种Shell都有其特色之处。这里我们选择bash来讲述Shell脚本编程的基础知识。Shell命令可以事先写在一个文件中,使用时Shell读取文件中的命令逐条解释,这种文件被称为脚本。

  • 如何创建shell脚本

1. 编写一个简单的Shell脚本输出字符串Hello Word

hello.sh注意echo命令的功能是在屏幕上显示一段文字后面的字符串可以加引号也可以不加引号。如果加引号,将字符串原样输出;如果不加引号,将字符串中的各个单词用一个空格来分割。

脚本文件编辑完成之后,将其保存为test.sh。在执行脚本之前,需要将其属性改为可执行的,如下所示:

chmod +x test.sh

执行脚本的方法为./test.sh

 

Shell脚本就是将一系列的Linux命令放在一个文件中执行的实用程序Shell脚本可以利用vim等文本编辑器来编写。Shell脚本的格式是固定的,如下所示:

#!/bin/bash

# 注释

命令

第一行中的符号#!用来指定解释执行该脚本文件的Shell程序。如果脚本文件中缺少该行,在执行过程中,会报出错误信息。除了第一行外,所有以#字符开头的行都是注释行,如果一行未完成,可以在行尾加上\字符,表示与下一行合并为一行。

二.特殊符号

引号分为双引号、单引号和反引号

1、由双引括起来的字符,除$`(反引号)\保留其特殊功能外,其余全为普通字符号

例如:

(1)$用于变量的引用;

变量的定义引用和清除:

                      STR=“Hello world”         #对变量STR进行赋值

                      echo $STRecho ${STR}  #$对其进行引用

                      unset STR                        #清除STR变量

(2)echo现在的地址是`pwd`,输出结果为:现在的地址是/root(`pwd`解释为命令)

(3)\为转义字符,使用-e进行解析,如:echo -e "a\nd"       //  \n自动换行

另外,在某个字符前面利用反斜杠(\)能够阻止shell把后面的字符解释为特殊字符。

2、单引号内部不能使用$`(反引号)\,作为普通字符对待。

三.常用脚本命令

echo ${#STR}                                    #计算长度(字母个数)

echo ${STR:1:3}                                 #显示第2,3,4个字符

echo “`expr index “$STR” 23`”       #在变量STR23 谁先出现 显示谁位置

 

数组:

array1=(0 1 2 3 4)                                     #3定义赋值数组(括号)

echo ${array1[0]}                                     #显示数组值

echo ${#array1[@]}echo ${#array1[*]} #计算数组长度

 

算数运算

c=`expr $a + $b`                           #.sh中的加减乘除

c=`expr $a \* $b`                          #.sh中的乘法

四.数值测试

数值测试可用的操作符包括:

-eq:两个数相等;(=

-ne:两个数不相等;(!=

-gt:第一个数大于第二个数;(>

-lt:第一个数小于第二个数;(<

-le:第一个数小于等于第二个数;(<=

-ge:第一个数大于等于第二个数。(>=

五.字符串测试

字符串测试的主要操作符包括:

==:两个字符串相等;

!=:两个字符串不等;

-z:字符串为空;

-n:字符串不为空。

六.结构控制语句

if语句用来实现条件分支结构,它的一般格式为:

     if 条件1

     then 

            命令1

     elif条件2

     then 

            命令2

     else 

            命令3

     fi

 

注意:if语句以它的反写fi结尾。如果条件1成立,则执行then后面的命令1;如果条件1不成立,但条件2成立,则执行命令2;如果两个条件都不成立,则执行命令3。如图所示。

for循环的一般格式为:

     for变量名in [列表]

          do

              命令命令

     done

 

     for循环中,使用变量名来遍历列表中所有取值,当变量值在列表中时,即执行一次所有命令。for循环的程序流程如图所示。

while循环的一般格式为:

     while 条件

          do 

              命令命令2  ...

     done

 

     当条件成立时,dodone之间的命令才会被执行,执行完成后重新测试条件,如果不成立则终止循环。while循环的程序流程如图所示。

猜你喜欢

转载自blog.csdn.net/j_xianyu/article/details/81138229
今日推荐