Linux学习笔记(十二):shell script

shell script是利用shell的功能所写的一个脚本,通过将一些语法与命令写在里面,搭配正则表达式、管道命令、数据重定向等功能,达到我们想要的目的。类似于早期的DOS文件,但功能更加强大。

Hello Word!:

shell script文件的首行要表明  #!bin/bash  声明这个script文件要使用的shell名称

程序的内容说明:包括内容与功能、版本信息、作者及联系方式、建立日期、历史记录等以方便修改程序

主要的环境变量的声明,比如PATH等

程序的主体部分(包含适当的程序注释、程序运行信息的说明)

#!bin/bash
# Program:
#    This program shows "Hello Word!" on your screen.
# History:
#    2018/8/6 Wang Yize v0.1

PATH=/bin:/sbin:/usr/bin:/usr/sbin/usr/local/bin:/usr/local/sbin
export PATH

echo -e "Hello Word! \a \n"
exit 0

程序最后的 exit 0 用于我们使用$?来查看上一个程序的运行结果时使用。

1、交互式脚本

有时候我们需要用户输入一个变量的内容,这时可以使用read命令来进行脚本的交互

例如:在script中加入:

read -p "Please input your name: " name #用户输入姓名

           可以实现用户输入姓名。

2、数值运算

可使用declare方式声明一个整形数值进行数值运算,也可以直接使用var=$((运算内容来进行数值运算))

script的执行方式:可以利用直接执行的方式来执行script,但是直接执行的script使用新的bash环境来执行脚本内的命令。因此当程序执行完毕时,在当前bash下并不能查看并使用script内的变量,如果想要查看,则必须要求脚本在当前bash环境下执行,使用source *.sh可以使脚本在当前环境下执行

判断式、

1  利用test命令可以实现测试功能

Linux学习笔记(十二):shell script_第1张图片

Linux学习笔记(十二):shell script_第2张图片

另外,判断符号[]的使用方法和test基本相同,但需要注意的是,为了区分判断符号和通配符号以及正则表达式中的[]功能,我们需要在使用时遵守以下规则:

在[]内的每个组件之间都用空格分隔开;

在[]内的所有变量,都用双引号括起来;

在[]内的所有常量,也用双引号括起来;

2  默认变量

在命令的使用过程中,我们可以使用很多的参数,script也可以跟很多的参数,并且已经设置好了变量的名称:

*.sh opt1 opt2 opt3 opt4 ...
 $0   $1   $2   $3   $4   $...

如上所示,脚本文件的名称使用变量$0表示,第一个参数用$1表示,依此类推,特殊的比如$#表示当前有多少个参数,$*表示所有的参数,中间使用空格分隔。

使用shift关键字,可以忽略参数,例如shift 表示忽略第一个参数,$1表示第二个参数,shift 3表示忽略三个参数,$1表示第四个参数。

3  条件判断式

if [ condition_1 ]; then
    content
elif [condition_2]; then
    content
else
    content
fi

4  case...esac语句

case $variables in
    "content_1")
        content
    ;;
    "content_2")
        content
    ;;
    *)
        content
        exit number
    ;;
esac

5  函数

function fname(){
    content
}

...
fname
...

要注意的是,函数和一个脚本类似,也有自己的内置变量,$0表示函数名,$1表示函数后跟的第一个参数。

6  循环

# while do done
while [ condition ]
do
    content
done

# until do done
until [ condition ]
do
    content
done

# for do done
for var in con1 con2 con3 ...
do
    content
done

for (( 初始值;限制值;执行步长))
do
    content
done

通常一个script可以使用sh命令进行调试:

-n 参数可以只调试而不运行,如果没有错误则没有错误信息

-v 输出脚本内容

-x 将运行的脚本内容输出到屏幕,可以看到执行到某一个位置的时候程序的运行情况,比较常用。

你可能感兴趣的:(ubuntu)