shell教程(二)——变量

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值