shell脚本语法基础


shell即将各类命令预先放入一个文件中,方便一次性执行的一个程序文件,方便系统管理员来管理操作系统。目前大多数服务器使用linux操作系统,学习shell脚本,有助于简化日常的服务器管理工作。本篇主要是shell脚本的基本语法。

一、变量

1. shell变量的声明和使用

shell的变量声明与python类似,有以下特点:

  • 只能使用字母数字和下划线
  • 必须以字母或者下划线开头
  • 不能使用shell关键字(用help命令可以查看所有保留关键字)
  • 可以使用语句赋值 例如:
    name='ianzhi'
    age=12
    _money=100
    for file in `ls`

2. 常量

shell中没有类似于常规编程语言中的常量概念,但是可以使用readonly关键字将变量声明为只读类型,例如:

readonly name='ianzhi'

3. 销毁变量

当变量不再使用以后,为了性能,我们通常会销毁变量。在shell脚本中,可以使用unset来销毁变量,例如:

name='ianzhi'
unset name

二、数据类型

shell是弱类型语言,输入的时候无论是数字还是字符串,shell都是以字符串类型来存储的。

1. 字符串

在shell脚本中定义字符串变量可以使用单引号或者双引号,也可以不使用引号,不适用引号与使用双引号基本相同。 使用单引号性能会更好,但是将不会解析字符串中的变量。

2. 数组

bash中支持一维数组,定义数组用小括号包含以空格分隔的字符串即可。数组中的元素下标以0开始。例如:

friends=(zhangsan lisi wangwu)

三、语法

主要需要注意以下几点:

  • 变量赋值,=两侧不能有空格,会报错
  • 行尾不需要添加;
  • 一般在文件首行定义使用的解释器
  • 使用echo来输出内容

1. 注释

#号开头的行就是注释,多行注释可以使用#号,或者也可以使用大括号括起来。

2. 流程控制

2.1 if

if condition;then
    command
fi

2.2 if,else

if condition;then
    command
else
    command
fi

2.3 if,elseif

if condition;then
    command
elif condition;then
    command
else
    command
fi

通过这篇文章,相信大家对于shell脚本的语法有了一个大概的了解,以后的文章,我会将主要内容放在介绍shell脚本在日常服务器管理中的应用方面,欢迎关注~