变量本质上是存储数据的一个或多个计算机内存地址。
变量分为:本地变量、环境变量、位置参数。其中位置参数用于向shell脚本传递参数,是只读的。
unset var可将var变量清除掉
变量赋值两种特殊情形,使用的时候一定要用$符号和大括号括起来:
${variable:=value} --> 对未赋值的variable,将value值赋给它
${variable:-value} --> 对未赋值的variable,将value值赋给它,但value值不存储到variable对应的地址空间
${variable?value}用来测试变量是否被赋值
# readonly variable --> 设置变量为只读的
6.1.2 无类型的Shell脚本变量
Shell脚本变量是无类型的,这与awk变量是一样的。
Bash不支持浮点型,只支持整形和字符型,默认情况下,bash脚本变量是字符型的,同时,字符型变量还有个整形值0.也就是说你拿字符型变量做数值运算,它的值其实是0
对于空字符串和未定义变量处理方式,shell变量默认就是字符型的,字符型的初始值为空,而且可以不预先定义变量而直接使用它,跟初始化定义它为""效果是一样的。
>>几个环境变量配置文件
由于Linux环境变量数量较多,因此系统管理员不会利用export逐个设置环境变量,而是将export命令放置在特殊的配置文件中,Shell能够在开机的时候自动执行这些配置文件。
.bash_profile:
最最重要的配置文件,当某linux用户登录时,shell会自动执行.bash_profile文件,如果.bash_profile文件不存在,则自动执行系统默认的配置文件/etc/profile
修改此配置文件后要立即生效,请使用 source 或. 命令
.bashrc:
如果用户由当前shell创建一个新的子shell,子shell会尝试读取.bashrc中命令以设置环境变量。.bashrc使得用户登录时的环境变量与子shell环境变量相分离。
.bash_logout:
.bash_logout文件在用户注销时执行
6.1.4 位置参数
位置参数 positional parameters是一种特殊shell变量,用于从命令行向shell脚本传递参数,$1表示第1个参数、$2表示第2个参数等。$0表示脚本名称(带路径) ,$* 或 $@表示从$1开始的全部参数列表
-----------------特殊变量-----------------------
$# 传递到脚本的参数数量
$*或$@ 传递到脚本的所有参数
$$ 脚本运行的进程号
$? 命令的退出状态,0表示没有错误,非0表示有错误
引用符号及其意义:
"" 引用除$、反引号、反斜杠\之外的所有字符
'' 引用所有的字符
反引号 shell将反引号中内容解释为系统命令
\ 转义符,屏蔽下一个字符的特殊意义
6.2.3 转义字符
特殊字符及其意义
特殊字符 | 意义 |
& | 传递到脚本的参数数量 |
* | 0个或多个在*字符前的那个普通字符 |
+ | 匹配1个或多个在其之前的普通字符 |
^ | 匹配行首,或后面字符的非 |
$ | 命令退出状态,0表示没错误,非0... |
` | 反引号,shell引用符号,解析命令 |
" | 双引用,shell引用符号 |
| | 管道符号或表示“或”意义 |
? | 匹配0个或1个其前的普通字符 |
\ | 转义符本身 |
转义符后跟字母表示的特殊意义:
符号 | 意义 |
\n | 换行 |
\r | 回车 |
\t | Tab键 |
\v或\f | 换行但光标停留在原来位置 |
\b | Backspace键 |
\a | 警报声 |
\0xx | ASCII码0xx对应字符 |
# echo $'\t\thello'
使用$' '后,单引号里面的转义加特殊字母就可以解析成特殊意义了。
其他情况下就是原始值了。
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
通过上述内容,我们了解到Linux Shell变量在日常运维中的重要性,以及如何在脚本中正确使用和管理变量,以提高脚本的可读性和可维护性。掌握这些知识对于成为一名合格的Linux运维工程师至关重要。
本文将深入探讨shell脚本中的变量和引用。 一、变量基础 1. 变量分类: - 本地变量:仅在当前shell会话有效,当shell进程结束时失效。 - 环境变量:对所有由登录进程产生的子进程都有效。 - 位置参数:传递给...
了解并熟练掌握这些基本的Shell变量知识,对于编写高效、可靠的Shell脚本至关重要。通过结合条件语句、循环结构和其他Shell特性,你可以创建出功能强大的自动化工具,提高日常Linux系统管理的效率。在实际应用中,...
### Linux实验六 Shell变量知识点详解 #### 一、实验目的 1. **熟悉Shell变量**: - Shell变量是Shell编程中的基本概念之一,用于存储数据。这些数据可以是文件名、数字或文本字符串。 - 变量分为两种类型:用户...
在本文中,我们将深入探讨Linux Shell的基本概念、Shell编程基础、输出和输入、运算符以及Shell脚本文件的创建和使用。 首先,让我们了解一下**Shell的基本概念**。Shell是Linux系统中的一个命令解释器,它为用户...
在IT行业中,Linux Shell编程是系统管理员和开发者必备的技能之一。它允许用户通过命令行接口与操作系统进行交互,执行自动化任务,大大提高工作效率。本文将深入探讨Linux Shell编写的基础知识,包括基本概念、常用...
* 使用“${”和“}”符号来引用变量 * 使用“$()”符号来引用变量 bash 中的控制语句: * if 语句 * case 语句 * while 语句 * for 语句 bash 中的算术运算: * 使用“$”符号来表示算术运算 * 使用“(())”符号...
本文将深入讲解Linux shell脚本中的变量和变量类型,以及相关的编程概念。 首先,回顾一下Vim编辑器的基本操作。Vim分为不同的模式:输入模式、编辑模式、末行模式和可视化模式。在编辑模式下,可以通过i/I/a/A/o/O...
- **变量引用**:始终使用双引号括起变量,防止因特殊字符引起的错误。 9. **正则表达式和grep命令** - **正则表达式**:用于模式匹配和数据提取。 - **grep命令**:搜索含有指定模式的行,常与管道配合使用。 ...
在Linux Shell脚本里,字符串‘’和””表示不同的含义,最大区别就是在于对变量引用的处理。单引号‘’包括之中表示字符串,如果字符串包含保留字符,则保留字符失效,按原样输出。双引号“”包括之中表示字符串,...
##### **2.3 变量引用** 通过 `${variable_name}` 的形式引用变量,例如: ```bash greeting="Hello" name="Alice" echo "$greeting, $name!" ``` ##### **2.4 交互输入变量值** 使用 `read` 命令从标准输入读取...
在Linux环境中,shell脚本是一种强大的自动化工具,用于执行一系列命令和操作。本文将深入讲解Linux shell脚本的几个核心知识点,包括Shebang、变量、作用域、特殊参数变量、状态变量、内置命令、字符串操作以及文件...
### Linux Shell脚本全面学习知识点概述 #### 一、Linux脚本编写基础 **1.1 语法基本介绍** **1.1.1 开头** - **解释**: 每个Shell脚本都需要以 `#!/bin/sh` 开始,这行被称为shebang,用于指示系统如何执行此...
Linux Shell脚本是Linux系统中用于自动化任务的强大工具,它基于Bash或其他Shell解释器,允许用户编写一系列命令,以实现批处理、任务调度或任何需要自动化的工作流程。本PDF文档"shell-script-entry.pdf"提供了18页...
变量是shell脚本中非常重要的概念,变量可以存储可能会变化的值,提高脚本对任务的需求和运行环境的适应能力。 定义变量:变量名=变量值 相关注意事项: 1.若指定的变量名已经存在,相当于为此变量重新赋值。 2....
2. 变量:在Shell脚本中定义变量,如`name="John"`,然后在脚本中可以引用这个变量。 3. 条件语句:`if`、`else`、`elif`用于条件判断,如`if [ -f "$file" ]; then ... fi`检查文件是否存在。 4. 循环结构:`for`、...
- **变量引用**:为了避免Shell解析错误,可以使用大括号明确指定变量引用,例如`echo "this is the ${num}nd"`。 #### 三、Shell命令和流程控制 Shell脚本支持多种类型的命令: 1. **Unix命令**:这些命令用于...
Linux Shell编程基础是掌握Linux系统管理和自动化任务执行的关键技能之一。本文主要介绍如何开始编写Shell脚本,如何处理注释,以及如何执行脚本。同时,我们还将深入探讨Bash中的各种变量,包括环境变量、位置变量...
在学习和实践Linux Shell编程时,建议从简单的脚本开始,逐步增加复杂性。通过解决实际问题,你可以更好地理解和掌握Shell编程的精髓。此外,了解并熟练使用常见的Linux工具,如grep、awk、sed等,将使你的Shell编程...