一 、第一个shell脚本
1、打开文本编辑器 vi/vim test.sh
2、输入代码 echo "Hello World!"
3、保存 :wq
4、执行 ./test.sh
运行Shell脚本有两种方法:
- 作为可执行程序
chmod +x ./test.sh 或 chmod 744 ./test.sh
备注: 直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里
- 作为解释器参数
/bin/sh test.sh
二、Shell变量
1、定义变量
变量名的命名须遵循如下规则:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线 _。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
your_name="allen"
2、使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可
echo $your_name
echo ${your_name} //推荐使用这种
3、只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
readonly your_name
4、删除变量
使用 unset 命令可以删除变量。
三、Shell字符串
1、单引号
str='this is a string'
备注: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
2、双引号
str="Hello, I know you are \"$your_name\"! \n"
备注: (1)双引号里可以有变量 (2) 双引号里可以出现转义字符
3、获取字符串长度
echo ${#your_name} #结果是5
4、提取子字符串
echo ${your_name:1:4} # 字符串第2个字符开始截取4个字符
5、查找子字符串
echo `expr index "abcdefg" d` #结果是4
四、Shell数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
数组元素的下标由 0 开始编号。获取数组中的元素要利用下标。
1、定义数组
数组名=(值1 值2 ... 值n) # name=(allen mini jack)
2、读取数组
(1)${数组名[下标]}
echo ${name[1]} # mini
(2)使用 @ 符号可以获取数组中的所有元素: ${数组名[@]}
echo ${name[@]} # allen mini jack
echo ${name[*]}
3、获取数组长度
echo ${#name[@]} # 3
echo ${#name[*]} # 3
echo ${#name[1]} # 4 打印的是mini的长度
五、Shell 传递参数
执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
六、Shell 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
1、算术运算符
注意:
1、原生bash不支持简单的数学运算,但可以通过 expr
来实现 。
2、完整的表达式要被 `` 包含,使用的是反引号 ,而不是单引号 。
3、表达式和运算符之间要有空格
,例如 2+2 是不对的,必须写成 2 + 2。
4、条件表达式要放在方括号之间,并且要有空格,例如: [
a
=
=
a==
a==b] 是错误的,必须写成 [ $a == $b ]
5、乘号(*)前边必须加反斜杠()才能实现乘法运算 ----- 报错 #expr: syntax error