0720_Shell脚本基础(1)

148 阅读1分钟

基础概念

脚本的作用是将一组操作封装进入文件,方便重复执行,也能够很方便的进行调试。

脚本文件的文件名一般以 .sh 后缀结尾。

Shebang 行

在脚本文件的第一行通常会指示某个解释器来解析这个脚本,在 shell 脚本中通常是 #!/bin/bash, 表示在 用 /bin/ 目录下的 bash 进行执行,但是呢,为了保险起见,我们一般会这样去写 #!/usr/bin/env bash

可执行权限与执行

在 Linux 上创建的文件,默认是没有执行权限的,所以我们一般会给文件赋予相应的权限。

# 给用户 用户组 其他用户都赋予 可执行权限

$ chmod a+x test.sh

要执行程序的话,有三种方式方式


# 以切换到当前文件所在的目录
# 当然也可以直接使用 绝对路径


$ bash test.sh

# 不能省略 ./
$ ./test.sh

$ source test.sh


命令(或脚本)的返回值

在 linux 中,每执行完一条命令,或者执行完一个脚本,会有一个数字写入到 预定义变量 $1 之中,默认 0 表示成功、 其他值表示失败(一般是 1,但也可以自定义)。

通过这个变量,我们能够判断上一个命令是否执行成功,根据成功与否选择接下来的操作。

基本语法

注释很重要,在 Linux 的注释是使用 # 字符标识,进行单行注释,当然 Linux shell 也提供多行注释的方法


# 这是注释

# 这也是注释

ls -l  # 注释还能够写在这里


<<EOF

可以多行注释
啊

EOF


脚本参数

之前写命令的时候,有参数的概念,命令后面根据参数的不同,进行不同的操作。同样一个脚本文件也能够在后面跟上不同的参数,然后脚本文件里面根据特定的语法来获取参数。

# 这个是文件

#!/bin/bash

echo "全部参数: " $@
echo "参数的数量" $#

echo "第一个参数" $1

# ... 依次类推到 9

# 十个以上的参数,需要 额外的写法

echo "第十个参数" ${10}


for arg in $@
do
    echo $arg
done


$ bash test.sh 1 2 3 4 5 6 7 8 9 10 11 12 13 14

# 输出
11
1
2
3
4
5
6
7
8
9
10
11
12
13
14