shell变量
定义变量时,变量名不加美元符号(PHP语言需要):
your_name='runoob.com
注意,变量名和等号之间不能有空格
- 命名只能用英文字母,数字和下划线,首个字符不能以数字开头
- 中间不能有空格,可以使用下划线_
- 不能使用标点符号
- 不能使用bash里的关键字,可使用help命令查看
RUNOOB
LD_LIBRARY_PATH
_VAR
var2
用语句给变量赋值
for file in 'ls /etc'
#或
for file in $(ls /etc)
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号
your_name='qinjx'
echo $your_name
echo ${your_name}
变量名外面的花括号是可选的,用于帮助解释器识别边界
for skill in Ada Coffe Activation Java:do
echo ''I am good at ${skill} Script''
done
已定义的变量可以重新定义
your_name='tom'
echo $your_name
your_name='alibaba'
echo $your_hame
shell字符串
字符串是shell里最常用最有用的数据类型。
单引号
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号的字符串中的变量是无效的
- 单引号字符串中不能出现单独一个的单引号,但可成对出现,作为字符串拼接使用
双引号
your_name='runoob'
str=''Hello, I know you are \''$your_name\''! \n''
echo -e $str
双引号优点
- 双引号里可以有变量
- 双引号里可以出现转义字符
拼接字符串
your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
获取字符串长度
string=''abcd''
echo ${#string}
提取子字符串
string=''runoob is a great site''
echo ${string:1:4}
查找字符串
string=''runoob is a great site''
echo `expr index ''$string'' io`
shell数组
bash支持一位数组,不支持多维。数组元素下表由0开始。
定义数组
在shell中,用括号表示数组,数组元素用空格符号分隔开。定义数组的一般形式为:
数组名={值1 值2 ... 值n}
array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
读取数组
读取数组元素值的一般格式是:
${数组名[下标]}
例如:
valuen=${array_name[n]}
使用@符号可以获取数组中的所有元素,例如
echo ${array_name[@]}
获取数组的长度
length=${#array_name[@]}
#或者
length=${#array_name[*]}
#取得数组单个元素的长度
length=${#array_name[n]}
shell注释
以#开头的行就是注释,会被解释器忽略。
多行注释
:<<!
注释内容...
注释内容...
注释内容...
!
参考http://www.runoob.com/linux/linux-shell-passing-arguments.html