什么是 Bash 变量以及怎样使用它们?

Bash 允许您将整个文本字符串映射到单个变量,从而简化其使用和脚本编写。 它们是怎样工作的,你怎样使用它们? 让我们来了解一下。

什么是变量?

变量是易于记忆的名称,可以包含不同的字母数字值。 它们很有用,因为它们允许将相同的函数应用于不同的值,而无需重写脚本/代码段。 它们还使编写脚本/代码片段变得容易,因为您可以对所有值使用相同的名称,而不是处理单个值。

实时变量

Bash 允许使用变量。 您可以动态创建变量并在当前的 Bash 会话中重复使用它们。 它们可以通过许多不同的方式帮助您使用 Bash,并且在当前会话结束后它们将消失。

为了 example,假设您正在访问大量网站。 您可能正在进行研究或抓取数据。 您可以创建以下变量:

之后,如果您想访问我们的网站 Firefox,你可以输入:

更容易——也更易读。 这 $sitea 变量将保持映射到站点,直到您手动更改其内容或 Bash 会话结束。 而且,当然,您可以创建更多变量,例如 siteb, sitec, 和 sited.

设置新变量时,您可以使用任何您想要的名称并在其中存储任何字母数字字符串。 但是请记住,默认情况下它们区分大小写。 因此, $sitea 不会是一样的 $SiteA. 另请注意,在存储包含特殊字符(包括空格)的字符串时,应使用引号。

脚本中的变量

Bash 中的变量在编写脚本时更有用,因为它们允许您编写单个脚本,然后可以遍历不同的字符串或对自定义数据进行操作。 假设您正在编写一个每个人都可以在他们的计算机上使用的脚本,但每次都会显示个性化的问候语。 如果没有变量,您必须为每个用户编写不同版本的脚本。 使用变量,您可以保持脚本不变,只更改用户名。

这样的脚本如下所示:

怎样使用 Bash 变量 一个简单的脚本

以上 example 可能看起来多余; 然而,随着代码复杂性的增加,变量变得不可或缺。 脚本可能有数百或数千行长,并在不同位置包含用户名。 为了更好地理解它,请考虑以下稍微不同的脚本:

怎样使用 Bash 变量重复变量实例

上面的脚本将使用定义为 username 变量来完成文本。 如果使用实际用户名,则必须键入四次。 然后,对下一个用户执行相同的操作,并为下一个用户再执行四次。 一次又一次。 通过将其分配给变量,您只需为每个用户更改一次,并且文本中每次提及用户名时都会更新。

永久 Bash 变量和别名

我们看到了怎样临时设置变量以及怎样将它们包含在您自己的脚本中,以获得更持久的效果。 但是,难道不能在 Bash 中永久设置变量吗? 答案是一个很大的“是的!” 你只需要编辑一个文件:“~/.bashrc”。

在您喜欢的文本编辑器中打开文件“~/.bashrc”。 因为我更喜欢纳米,所以我这样做了:

怎样使用 Bash 变量 Open Bashrc

我们建议您从测试运行开始,只添加一个变量,这样您就知道如果过程不起作用,您应该去哪里查看。 移至文件末尾,并在新行中添加您的变量。 为了 example,我为我的名字设置了一个变量:

怎样使用 Bash 变量 Bashrc 与新变量

Save 您的文件并退出编辑器。 调整不会立即应用。 Enter 在您的终端中执行以下操作以使其生效:

现在您可以在 Bash 会话中使用新设置的变量:

您可以根据需要设置任意数量的变量,并大大简化您在 Bash 中的日常冒险。

为了额外提高生产力,还值得设置不同类型的变量:别名。 与映射到可以在命令中使用的数据的典型变量不同,使用别名而不是实际命令。

就像您可以使用易于记忆的变量来保存长文本字符串一样,您可以使用别名作为复杂命令的简单替代方法。 您可以在此处找到有关它们的更多信息,我们将整个 7zip 压缩命令转换为两个字符的别名。

最后要注意的是,即使您已经在 .bashrc 中永久设置了一个变量,您也可以临时为它重新分配一个不同的值,正如我们之前看到的。 该变量将显示新内容,直到当前 Bash 会话结束(注销或重新启动后)或您重新获取 .bashrc 文件的源。

相关阅读:

Posted in: LinuxTags: