shell脚本基础知识汇总2

电子说

1.3w人已加入

描述

1.3 注释

单行以 # 开头的行就是注释,会被解释器忽略。

多行以:*<开始,以EOF*结束,中间的都为注释,示例如下:

# 注释内容...


:<<EOF
注释内容...
注释内容...
注释内容...
EOF

1.4 变量

定义变量

格式如下,“=”左右两边不能有空格

变量名=值

其中变量名的要求为:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线 _。
  • 不能使用标点符号。
  • 不能使用bash里的关键字

值的话没有要求,可以为整数、字符串、数组等,赋值完某个类型后,后面还可以继续再赋值为其他类型,示例如下:

# 定义一个字符串变量
var="hello word"
# 定义一个值为1的变量
var=1
# 定义一个包含a、b、c的数组变量
var=(a b c)

使用变量

使用一个定义过的变量,只要在变量名前面加美元符号 $ 即可,示例如下:

var="hello word"
# 打印变量var的值,
echo $var
# 如果变量没有定义过,则值为空
echo $test


# 输出结果
hello word

只读变量

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

readonly val="ready only"
# 给只读变量再次赋值会报错
val="test"


# 输出结果
-bash: val:只读变量

删除变量

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

unset variable_name

变量被删除后不能再次使用。 unset 命令不能删除只读变量 。示例如下:

var="hello word"
unset var
echo $var


# 输出结果为空

1.5 字符串

字符串定义

字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号(不用引用的情况中间不能有空格)。

str="this is string"
str='this is string'


# 正确示例,无引号无空格
str=thisisstring
# 错误示例,无引号有空格
str=this is string

获取字符串长度

通过${#variable_name}方式获取,示例如下:

string="abcd"
echo ${#string}


# 输出结果
4

1.6 索引数组

索引数组定义

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。数组元素的下标由 0 开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 value2 ... valuen)

赋值也支持指定索引位置赋值,示例如下:

# 数组赋值常见的两种方式
array_name=("abc" "def")


array_name[0]="abc"
array_name[1]="def"

获取数组长度

同获取字符串长度一样,也是通过${#variable_name}方式获取,示例如下:

array_name=("abc" "def")
# 打印数组长度
echo ${#array_name}


# 输出结果:
2

读取数组元素

指定索引位置的使用${array_name[index]},全部的使用${array_name[*]},示例如下:

array_name=("abc" "def")
# 读取数组指定索引元素
echo ${array_name[0]}
# 读取数组全部的元素
echo ${array_name[*]}


#输出结果
abc
abc def
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分