shell script 之一:变量和赋值

本文详细介绍了Bash脚本中的变量命名规则、赋值方式、使用方法及常见操作技巧,并深入探讨了字符串变量的特性及数组的定义与读取方式。

变量命名:

- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

- 中间不能有空格,可以使用下划线(_)。

- 不能使用标点符号。

- 不能使用bash里的关键字(可用help命令查看保留关键字)。


  无效的变量命名:

    ?var=123
    user*name=runoob


赋值变量:

1:
直接赋值

 name="lily"

  

2:

利用语句赋值 

for i in `ls /boot`;do echo $i ; done

#将/boot目录下的文件名循环赋值给i并打印,可以用$(ls /boot)代替`ls /boot`

 

3:
间接赋值read -p

[root@test ~]# read -p "your name?" name1 name2
your name?666 888 
[root@test ~]# echo $name1 $name2
666 888

  

使用变量
  利用$var或者${var} 调用变量,加{}可以帮助解释器识别变量的边界。
  如$varlog会找varlog的变量,${var}log就没问题。

 



只读变量

var=abc
readonly abc
var=ab 
-bash: i: readonly variable   #报错,只读变量的值不能被改变和删除

 


删除变量

unset var  #变量前不加$符

  


***************************************
变量类型-字符串

1:
单引号''

  name='my name is $i'
  echo $name
  my name is $i

  eg:echo $name 会显示 my name is $i,单引号内的变量不会被读取

  单引号字符串的限制:

  单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

 2: 

双引号""
 

name="my name is $i"

 

  双引号的优点:

  双引号里可以有变量

  双引号里可以出现转义字符

3:

获取字符段长度 ${#var}

  name=sunny
  echo ${#name}
  5 #返回字符段长度5

 

4:

提取字符串,从第n个字符开始提取m个字符${var:n:m}

  name="my name is sunny"
  echo ${name:11:5}      #从第11个字符起提取5个字符。
  sunny

  

 

 

**********************************************************************
变量类型-数组
1:
定义数组
数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

array={v1 v2 v3 v4}
或者
array=(
v1
v2
v3
)

  

2:
读取数组,注意下标由0开始编号
${数组名[下标]}

echo ${array[0]}
v1

 

 

获取数组的所有元素

echo ${array[@]}

  

# 取得数组元素的个数

length=${#array_name[@]}

  

# 取得数组单个元素的长度

length=${#array_name[@]}

 


转载于:https://www.cnblogs.com/sunny18/p/8601949.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值