shell变量


命名规则

  •  首个字符必须是字母(a-z,A-Z)
  •  可以使用大小写字母(a-z,A-Z),下划线,数字
  •  不能使用空格,不能使用bash里的关键字
  •  赋值语句中的‘var=value’不能有空格

变量引用
${var} 获取变量的值

1     name="pz"
2     echo $name
3     echo ${name}

如果在$var时后直接接字符,需要加{},否则会解析失败。
可以对变量值进行修改。

1  name="pz"
2  echo $name
3  name="bobo"
4  echo $name

只读变量
通过readonly进行声明,只读变量的值不能被改变

1     #!/bin/bash
2     age=25
3     readonly age


删除变量
可以删除已经定义的变量

unset var


变量作用域

  •  局部变量-在脚本和命令中定义,仅在当前shell中有效
  •  环境变量-所有的程序都能访问环境变量
  •  shell变量-shell程序设置的特殊变量。


Shell字符串
shell中主要是数字和字符串,字符串可以用单引号和双引号,也可以不用引号

str='my is a string'

  • 单引号里的任何字符都是字符,变量是无效的
  • 单引号的字符串不能出现单引号,用转义字符后也不行
  • 双引号里可以有变量
  • 双引号可以使用转义字符

example

1     string="abcd"
2     echo ${#string} #获取字符串长度
3     
4     string="a good job"
5     echo ${string:1:4} #提取子字符串


Shell数组

  • bash支持一维数组(不支持多维数组),并且没有限定数组的大小
  • 数组元素的下标从0开始,下标可以是整数或算术表达式,其值应大于或等于0
  • 数组的下标没有限制,可以不使用连续的下标
  • 用括号来表示数组,数组元素用空格符号分割。
  • 使用@符号可以获取数组中的所有元素

数组定义

array_name=(v1 v2 ... vn)

读取数组值

${数组名[下标]}

example

 1   a1=(1 2 3 4 5 )
 2 
 3     a1=(
 4     1
 5     2
 6     3
 7     4
 8     5
 9     )
10 
11     a1[0]=1
12     a1[1]=2
13     a1[2]=3
14     a1[3]=4
15     a1[4]=5

获取数组长度

len=${#array_name[@]}
len=${#array_name[*]}

注释
用'#'开头的行会被解释器忽略
shell里没有多行注释.只能每一行加一个#

 

posted @ 2016-09-29 14:27  枯树中的精灵  阅读(164)  评论(0编辑  收藏  举报