Shell 变量

Shell 变量

定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:var1="hello world"

变量名称规则

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

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

3、不能使用标点符号

4、不能使用bash里的关键字

Shell变量赋值

除了显式地直接赋值,还可以用语句给变量赋值:

result=$(ls -la ./)或者 result=`ls -la ./`


定义变量

使用变量

使用一个定义过的变量,在变量名前加美元符号

使用变量

使用变量重点

echo ${imooc} (变量名外面的花括号是可选的,帮助解释器识别变量的边界)

$(变量)使用

运行结果为:

执行结果

已定义的变量,可以被重新定义

重新定义变量

运行结果为:

执行结果

只读变量,防止变量被污染

使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。

imooc="imooc.com"

readonly imooc

imooc="www.imooc.com"  (报错)

只读变量

运行结果为:

执行结果

删除变量

使用unset命令可以删除变量:

imooc="imooc.com"

unset imooc

变量被删除后不能再次使用

unset命令不能删除只读变量

变量作用域

作用域:

局部变量(在当前shell种有效,其他Shell启动的程序无法访问)

环境变量(所有程序均可访问)

变量数据类型

字符串:

可以用单引号,可以用双引号,可以不用引号

单双引号的区别跟PHP类似

单引号不解析变量

单引号字符串不能出现单独一个的单引号(对单引号使用转译符后也不行),但可成对出现,作为字符串拼接使用

双引号里可以有变量,可以出现转义字符


数据类型

运行结果:

执行结果

转义字符:

转义字符

运行结果:

执行结果

字符串拼接:

"hello,"$your_name"!"

字符串长度

echo ${#string}

字符串长度

运行结果:

执行结果

字符串截取

echo ${string:1:4} 1代表从哪里开始,4代表截取的长度,字符串索引起始位为0

字符串截取
执行结果

字符串查找

echo `expr index "$string" i` expr index是固定写法 i代表要查找的字符 查找出的索引是从1开始

字符串查找


执行结果

数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小

类似于C语言,数组元素的下标由0开始编号。获取数组种的元素要利用下标,下标可以是整数或算数表达式,其值应大于或等于0

在Shell 中,用括号来表示数组,数组元素用空格符号分割开

数组名=(值1 值2 ...值n)

也可以不使用连续的下标,而且下标的范围没有限制

数组定义

读取数组 :${数组名[下标]}

使用@符号可以获取数组中的所有元素 echo ${array_name[@]}

获取数组长度:length=${#array_name[@]}

获取数组单个元素的长度: length=${array_name[n]}

Shell 注释

单行注释 #

多行注释

:<<EOF   ...  EOF

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,483评论 0 5
  • 定义 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:var_name="hello world"...
    海角hust阅读 292评论 0 0
  • Shell 变量 定义变量是,变量名不加$,($,PHP语言中变量需要),如: 注意变量名和等号之间不能有空格,同...
    进击的攻城狮阅读 573评论 0 1
  • 1. 定义变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: 注意,变量名和等号之间不能有空格...
    山的那边是什么_阅读 195评论 0 0
  • 你要去找一个像太阳一样的人 帮你晒晒所有不值一提的迷茫
    大杰儿阅读 164评论 0 1