Shell
Shell 变量
- 定义变量
【例子】:your_name="小明"
注意:
- 首个字符必须为字母。
- 变量名中间不能有空格,可以使用_。
- 不能使用标点符号。
- 不能使用bash中的关键字。
- 使用语句对变量进行赋值
or file inls /etc
– 将会把/etc目录下的文件名循环出来 - 使用变量
使用一个定义过的变量,在变量名前面加美元符号即可
your_name="小明"
echo $your_name
# {}是可选的。
echo ${your_name}
花括号是为了帮助解释器识别变量的边界
例如:
for skill in Ada Coffe Action Java do
echo "I am good at ${skill}Script"
done
已经定义过的变量可以重新定义
Shell字符串
字符串可以用单引号,也可以用双引号,也可以不用引号。
- 单引号:
str='xiaoming'
- 单引号字符串的限制:
单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
- 双引号:
your_name='xiaoming'
str = "hello, I know your are \"$your_name\"! \n"
- 双引号的优点:
双引号里可以有变量
双引号里可以出现转义字符
- 拼接字符窜:
your_name="xiaoming"
greet="hello, "$your_name" !"
greet_1="hello, ${your_name} !"
echo $greeting $greeting_1
- 获取字符串长度:
string="xiaoming"
echo ${#string}
#输出 8
- 提取字符串:
string="xiaoming is a great boy"
echo ${string:1:4}
#输出iaom
- 查找子字符串:
string="xiaoming is a great boy"
echo `expr index "$string" io`
# 那个字母先出现就计算那个字母的下表
Shell数组
bash支持一维数组,没有限定数组的大小
数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0。
- 定义数组
用括号来表示数组,数组元素用"空格"符号分割开。语法:数组名=(值1 值2 ... 值n)
【例子】:
age=(1 2 3 4 5 6)
或者:
age=(
1
2
3
4
)
单独定义数组的各个分量:
age[0]=1
age[1]=2
age[2]=3
可以不使用连续的下标,而且下标的范围没有限制。
- 读取数组
读取数据元素值的语法:${数组名[下标]}
valuet=${age[n]}
使用 @ 符号可以获取数组中的所有元素
echo ${age[@]}
- 获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同
# 取得数组元素的个数
length=${#age[@]}
# 或者
length=${#age[*]}
# 取得数组单个元素的长度
lengthn=${#age[n]}
Shell注释
以 # 开头的行就是注释,会被解释器忽略。
通过每一行加一个 # 号设置多行注释,
#--------------------------------------------
# 这是一个注释
# author:xiaoming
# site:www.xiaoming.com
#--------------------------------------------
- 多行注释
语法:
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
或者:
:<<'
注释内容...
注释内容...
注释内容...
'
:<<!
注释内容...
注释内容...
注释内容...
!