-
Shell 变量
-
Shell变量
-
使用变量
#!/bin/bash # 注意your_name与=间不能有空格 # 变量名外面的花括号是可选的 your_name="qinjx" echo $your_name echo ${your_name}
for skill in Ada coffe Action Java; do echo "I am good at ${skill}Script" done
# 已定义的变量可以被重新定义 # 使用变量时才需要加$,重新赋值时不需要 your_name="tom" echo $your_name your_name="alibaba" echo $your_name
-
只读变量
#!/bin/bash # 使用readonly命令可以将变量定义为只读变量 myUrl="https://www.google.com" readonly myUrl
-
删除变量
#!/bin/bash # 使用unset命令可以删除变量 myUrl="http://www.google.com" unset myUrl echo $myUrl
-
变量类型
- 局部变量:仅在当前shell实例中有效
- 环境变量:所有程序都能访问的变量
- shell变量:shell程序设置的特殊变量,一部分是环境变量,一部分是局部变量。
-
-
Shell字符串
-
单引号
单引号里的任何字符都会原样输出。
-
双引号
#!/bin/bash # 双引号里可以有变量 your_name='runoob' str="Hello, I know you are \"$yourname\"!\n"
-
拼接字符串
#!/bin/bash your_name="runoob" # 使用双引号拼接 greeting="hello, "$your_name" !" greeting1="hello, ${your_name} !" echo $greeting $greeting1 # 使用单引号 greeting2='hello, '$your_name' !' greeting3='hello, ${your_name} !' # 无法拼接出变量值
-
获取字符串长度
#!/bin/bash string="abcd" echo ${#string} # 输出4 expr length "$string"
-
提取子字符串
#!/bin/bash # 第一个字符的索引值为0 string="runoob is a great site" echo ${string:1:4} # 输出unoo 从第2个字符开始截取4个字符
假设有变量 var=“http://www.aaa.com/123.htm”
-
删除左边字符,保留右边字符
echo ${var#*//} #结果为www.aaa.com/123.htm
-
删除左边字符,保留右边字符
echo ${var##*//} # 结果为123.htm
-
删除右边字符,保留左边字符
echo ${var%/*} # 结果是http://www.aaa.com
-
删除右边字符,保留左边字符
echo ${var%%/*} # 结果是http:
-
从左边第几个字符开始,及字符的个数
echo ${var:0:5} # 结果是http:
-
从左边第几个字符开始,直到结束
echo ${var:7} # 结果是www.aaa.com/123.htm
-
从右边第几个字符开始,及字符的个数
echo ${var:0-7:3} # 结果是123
-
从右边第几个字符开始,直到结束
echo ${var:0-7} # 结果是123.htm
-
-
查找子字符串
#!/bin/bash # 查找字符i或o的位置(哪个字符先出现就计算哪个) string="runoob is a great site" echo `expr index "$string" io` # 输出4
-
-
Shell数组
Shell仅支持一维数组。
-
定义数组
- 用括号来表示数组,数组元素间用“空格”分割。
- 可以使用不连续的下标,而且下标的范围没有限制。
数组名=(值1 值2 值3 。。。 值n) array_name=(value0 value1 value2 value3) array_name1=( value0 value1 value2 value3 ) array_name2[0]=value0 array_name2[1]=value1 array_name2[2]=value2 array_name2[3]=value3
-
读取数组
${数组名[下标]} valuen=${array_name[n]}
-
使用@符号可以获取数组中的所有元素
echo ${array_name[@]}
-
-
获取数组长度
# 取得数组元素的个数 length=${#array_name[@]} length1=${#array_name[*]} # 取得数组中单个元素的长度 lengthn=${#array_name[n]}
-
-
Shell注释
-
多行注释
# 为单行注释 # 以下为多行注释格式,EOF也可以用其它符号 :<<EOF ... ... EOF :<<' 注释内容。。。 注释内容。。。 注释内容。。。 ' :<<! 注释内容。。。 注释内容。。。 注释内容。。。 !
-
-
RUNOOB Linux Shell学习笔记——Shell变量
最新推荐文章于 2023-03-06 14:42:21 发布