前端运维之Linux基础--04Shell变量

1. 局部变量局部变量指的是只能在当前Shell脚本内被访问到的变量。2. 环境变量环境变量是可以被当前Shell脚本及其子进程访问到的变量。


创新互联公司是一家专注于成都网站制作、成都网站建设与策划设计,扎囊网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:扎囊等地区。扎囊做网站价格咨询:13518219792

作为一名前端工程师,如果你想要在工作中更加高效地进行开发和部署,那么了解Linux操作系统是必不可少的。而在Linux中最基本的命令行操作就是使用Shell脚本来完成各种任务,在这其中变量也扮演着非常重要的角色。

所谓变量,就是将一个值或者字符串赋给一个名称,并且可以通过该名称来访问这个值或者字符串。在Shell脚本中,我们可以定义两种类型的变量:局部变量和环境变量。

1. 局部变量

局部变量指的是只能在当前Shell脚本内被访问到的变量。它们通常用于存储临时性数据以及函数参数等信息。我们可以使用以下语法来定义一个局部变量:

```

variable_name=value

例如:

name="John"

echo $name

上述代码将会输出"John"。

当然,在实际编写脚本时我们还需要注意以下几点:

- 变量名字母大小写敏感;

- 变量赋值号两边不能有空格;

- 如果对包含空格字符、特殊字符(如$,*)等内容进行赋值,则应该使用引号括起来;

2. 环境变量

环境变量是可以被当前Shell脚本及其子进程访问到的变量。它们通常用于存储全局性数据,比如系统路径、用户信息等。在Linux中,我们可以通过export命令来将一个局部变量转换为环境变量。

export name

3. 预定义变量

除了自己定义的局部和环境变量外,在Shell脚本中还有一些预定义的特殊字符或者字符串,它们用于表示当前执行状态、运行时所需参数等信息。下面列举几个常见的预定义变量:

- `$0`:表示当前脚本文件名;

- `$1-$9`:表示第1~9个位置参数(即传入脚本时带上的参数);

- `$#`:表示所有位置参数总数;

- `$*`或者`${array[*]}`:以单个字符串形式返回所有位置参数,并且每个值之间使用空格分隔开;

- `$$`:表示当前Shell进程ID号;

4. 变量替换

在编写Shell脚本过程中,有时候我们需要对某些字符串进行操作和处理。这就需要用到一些类似正则表达式的语法来实现替换操作了。下面列举几种常见的变量替换方式:

- `${variable#pattern}`:从变量开头删除匹配到的最短字符串;

- `${variable##pattern}`:从变量开头删除匹配到的最长字符串;

- `${variable%pattern}`:从变量结尾删除匹配到的最短字符串;

- `${variable%%pattern}`:从变量结尾删除匹配到的最长字符串;

str="hello world"

echo ${str#*l}

上述代码将会输出"lo world",因为它找到了第一个字母l,并且把这个字符及之前所有字符全部删掉了。

5. 数组

在Shell脚本中,我们还可以使用数组来存储一系列值。数组是由多个元素组成的有序集合,在访问时需要指定对应元素所处位置(索引)。下面是一些基本操作:

定义数组:

array_name=(value1 value2 ... valuen)

获取数组中某个元素:

${array_name[index]}

获取整个数组:

${array_name[*]}或者${array_name[@]}

```

my_array=(apple banana orange)

echo ${my_array[0]}

echo ${my_array[*]}

上述代码将会输出"apple"和"apple banana orange"。

综上所述,Shell脚本中使用各种类型和方式定义、操作和处理变量非常重要。只有深入了解这些知识点,才能够更加高效地完成各种任务。希望本文能够对大家有所启发和帮助。

当前名称:前端运维之Linux基础--04Shell变量
标题链接:http://www.hantingmc.com/qtweb/news32/15432.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联