#!
告诉系统其后面的路径指定的程序就是此脚本文件的shell程序。
注释
- 单行注释:
#
- 多行注释:
#!/bin/bash
:<<EOF
注释内容 ...
EOF
变量
定义普通变量
变量名=变量值
- 变量名和等号之间不能有空格
- 命名只能使用英文字母、数字、下划线,首字符不能以数字开头
- 变量名不能与bash关键字同名
for
循环语法定义变量
#!/bin/bash
for file in `ls /etc`
do
echo $file
done
# 打印/etc下的所有文件
定义只读变量
- 使用
readonly
关键字可以将普通变量定义为只读变量
#!/bin/bash
name="ahaoozhang"
readonly name
# name被声明为只读变量,如果代码中出现修改name的行为时,程序将会报错
使用变量
- 使用一个定义过的变量,需要在变量名前加上美元符
$
#!/bin/bash
name="ahaoozhang"
echo $name
echo ${name}
# {}大括号可以有效的让代码解释器识别变量名的边界
删除变量
- 使用关键字
unset
可以删除普通变量,unset
不能删除只读变量,被删除的变量不能被再次使用
变量类型
- 局部变量:仅在当前shell中有效的变量
- 环境变量:所有的程序都能访问的变量
- shell变量
字符串
定义字符串可以用单引号、双引号、也可以不用引号
单引号字符串的限制:
- 单引号字符串中的任何字符都会原样输出,在单引号字符串中使用变量是无效的
- 单引号字符串中不能使用转义字符
拼接字符串
- 使用双引号拼接
#!/bin/bash
name="ahaoozhang"
str="my name is $name"
# 在双引号字符串中使用变量名拼接字符串
- 使用单引号拼接
#!/bin/bash
name="ahaoozhang"
str='my name is '$name''
# 在单引号中使用变量需要另外使用单引号括起来
获取字符串长度
- 使用
#
字符
#!/bin/bash
name="ahaoozhang"
echo ${#name} # 输出name字符串的长度
字符串切片
#!/bin/bash
name