#!是一个约定的标记,告诉系统使用哪个解析器来执行脚本
加个后缀.sh是为了方便我们区分,没有后缀,对脚本的运行无影响
运行脚本的方法
- 作为可执行程序
- 使脚本有执行的权限:chmod
- 进入到脚本所在的目录,执行脚本:./test.sh
- 直接运行解析器,参数就是shell脚本文件名
- /bin/sh test.sh
- /bin/php test.php
shell变量的定义与使用
定义变量时,不需要使用"$"符号($,PHP语言中变量需要),定义变量时,需注意:
- 变量名与等号之间不能存在空格!!
- 命名只能使用字母、下划线、数字,首个字符不能为数字
- 不能使用bash关键字
- 中间也不能包含空格,可以使用下划线。
使用变量时,需要使用"$"符号,比如:
#!/bin/bash
#定义变量
my_name='zhangboyi'
echo $my_name
#使用变量时,推荐给所有变量加上{}
echo ${my_name}
只读变量:readonly,不能修改,修改将报错,语法如下:
readonly variable_name
删除变量:unset,变量删除之后,不能再使用。语法如下:
unset variable_name
shell变量的定义与使用
定义变量时,不需要使用"$"符号($,PHP语言中变量需要),定义变量时,需注意:
- 变量名与等号之间不能存在空格!!
- 命名只能使用字母、下划线、数字,首个字符不能为数字
- 不能使用bash关键字
- 中间也不能包含空格,可以使用下划线。
使用变量时,需要使用"$"符号,比如:
#!/bin/bash #定义变量 my_name='zhangboyi' echo $my_name #使用变量时,推荐给所有变量加上{} echo ${my_name}
只读变量:readonly,不能修改,修改将报错,语法如下:
readonly variable_name
删除变量:unset,变量删除之后,不能再使用。语法如下:
unset variable_name
shell字符串操作
shell数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。下标从0开始
- 定义数组:用括号表示数组,用空格分隔
array_name=(value0 value1 value2 value3)
#可单独定义
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
- 数组操作
-
读取数组
#读取数据元素值 ${数组名[下标]} ${aray[0]} #读取所有元素 ${aray[@]}
-
获取数组长度:与字符串的相似
# 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
shell注释
- 单行注释:以#开头的将会被解释器忽略。
- 多行注释
-
:<<EOF 注释内容...EOF可以更改为其他字符 注释内容... 注释内容... EOF