Shell变量

在所有的编程语言中,几乎都有变量这个概念,变量是用来存放各种数据的一块内存地址,在 Shell 中,也支持变量的定义,Shell 变量定义时不需要指定数据类型。

获取Shell变量值

在 Shell 变量定义后,我们才可以访问变量的值,在 Shell 中,访问变量的值,我们使用 `$` 符号加上变量名即可。

Shell变量单引号与双引号

在定义 Shell 变量时,如果变量中包含空格,我们可以使用单引号或者双引号,但单引号与双引号是有区别的。

命令结果赋值给Shell变量

我们可以将一个 Linux 命令的结果,赋值给一个 Shell 变量,在 Shell 中,我们需要将一个命令的输出结果赋值给一个 Shell 变量,有两种方式, 即使用反引号和使用 `$` 符号。

Shell只读变量

我们在定义 Shell 变量时,默认定义的变量就是可以被修改的,我们还可以定义一个不能被修改的变量,即,使用 readonly 来定义变量。

Shell删除变量

我们在定义 Shell 变量后,如果不想继续使用该变量,我们可以使用 unset 删除该变量,变量被删除后不能再次使用;unset 命令不能删除只读变量。

Shell变量作用域

几乎所有的编程语言的变量都有作用域,Shell 中的变量同样有作用域,Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围)。

Shell命令行参数

运行 Shell 脚本文件时我们可以给它传递一些参数,这些参数在脚本文件内部可以使用 `$n` 的形式来接收,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。

Shell特殊变量

运行 Shell 脚本文件时我们可以给它传递一些参数,这些参数在脚本文件内部可以使用 `$n` 的形式来接收,同时 Shell 还为我们提供了一些特殊的变量。

Shell $与$@区别

Shell 中的 $* 和 $@ 都表示传递给函数或脚本的所有参数,当 $* 和 $@ 不被双引号 `" "` 包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。

Shell获取命令退出状态

Shell 中的 $? 是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值。所谓退出状态,就是上一个命令执行后的返回结果。

Shell字符串

几乎所有的编程语言中都有字符串类型,字符串(String)就是一系列字符的组合。字符串是 Shell 编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)。

Shell字符串长度

在 Shell 中,我们要获取字符串的长度,只需要使用 `${#str}` 的形式即可。

Shell字符串拼接

几乎所有的编程语言的字符串都支持拼接,在 Shell 中,字符串同样可以支持拼接,在 Shell 中,我们要拼接字符串,只需要将两个字符串写在一起即可。

Shell字符串截取

在 Shell 中,我们需要截取字符串,通常有两种方式,即,从指定位置开始截取和从指定字符开始截取。

Shell指定字符字符串截取

在 Shell 中,我们需要截取字符串,通常有两种方式,即,从指定位置开始截取和从指定字符开始截取。

Shell数组

和其他编程语言一样,Shell 也支持数组。数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element)。Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。和 C++、 Java、C# 等类似,Shell 数组元素的下标也是从 0 开始计数。

Shell数组长度

在 Shell 中,我们要获取数组的长度,我们需要使用 `@` 或者 `*` 将数组扩展成列表,然后再次使用 `#` 获取数组的长度。

Shell数组拼接

在 Shell 中,数组也是支持拼接的,也就是将数组进行合并,就是将两个数组连接成一个数组。拼接数组,我们只需要将数组转成列表,并写在一起即可。

Shell删除数组元素

在 Shell 中,数组的元素是可以支持删除的,我们要删除数组的指定下标的元素,我们只需要使用 unset 来删除即可。

Shell内置命令

在 Shell 中,命令可以分为内部命令和外部命令,所谓 Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。

Shell命令别名

在 Shell 中,alias 命令用来给命令创建一个别名。若直接输入该命令且不带任何参数,则列出当前 Shell 进程中使用了哪些别名。

Shell删除命令别名

在 Shell 中,alias 命令用来给命令创建一个别名。如果我们不需要创建的别名了,我们可以使用 unalias 命令来删除别名。

Shell echo命令

在 Shell 中,echo 命令,是一个内置命令,用来在终端输出字符串,并在最后默认加上换行符。

Shell read命令

在 Shell 中,read 也是一个内置命令,用来从标准输入中读取数据并赋值给变量。如果没有进行重定向,默认就是从键盘读取用户输入的数据;如果进行了重定向,那么可以从文件中读取数据。

Shell exit命令

在 Shell 中,exit 也是一个内置命令,用来用来退出当前 Shell 进程,并返回一个退出状态;使用 `$?` 可以接受这个退出状态。

Shell declare和typeset命令

在 Shell 中,declare 和 typeset 都是 Shell 内建命令,它们的用法相同,都用来设置变量的属性。不过 typeset 已经被弃用了,建议使用 declare 代替。