Linux系统中包含了许多可由用户设置的选项。其中一个非常著名和有用的命令组是 "Set builtin"。Set Built-in有很多标志,可以用它的简单命令在Bash中设置任何环境变量。今天,我们将讨论并实现一些例子,看看Ubuntu 20.04 Linux操作系统中不同的Set Builtin命令。首先,从你的系统登录开始。使用桌面上的 "Ctrl+Alt+T "快捷键打开你的shell终端。要获得有关 "Set Built "命令的信息,在终端中使用 "help "命令和 "set "关键字,如图所示。
$ help set
例子01:设置-x
让我们从使用 "set -x "内置命令开始我们的第一个例子。set -x "命令是用来扩展shell中使用的任何表达式或查询,并对其进行解释。这意味着它将告诉你它在执行时要做什么。在终端内,我们使用了echo语句来显示字符串 "Linux"。现在,我们没有设置任何内置值。
$ echo'Linux
让我们在shell中使用 "set -x",如图所示。设置之后,我们用同样的 "echo "命令在终端显示一个字符串 "Linux"。set -x "已经扩大了它的输出,显示该命令将 "echo "字符串 "Linux"。在下一行,它执行了该文件并显示了 "Linux"。
echo'Linux' 。
要扭转 "set -x "的效果或使其成为默认值,请使用 "set +x",如图所示。
$ set+x
设置为默认值后,让我们在shell中再做一个bash代码。我们已经用 "Ubuntu "这个值初始化了一个字符串变量 "v"。然后,我们试图用 "echo "语句来显示这个变量的值。它只是显示了变量 "v "的输出。
#!/bin/bash
v="Ubuntu"
v
让我们再一次设置 "set -x "内置程序。
$ set -x
再次运行上述同样的代码。你可以看到,"set -x "内置是通过表达和显示将命令扩展到一行或多行的原因。
#!/bin/bash
v=" Ubuntu"
v
你还可以看到扩展后的命令,它们在使用运算符时对字符串类型的计算。所以,我们定义了两个字符串变量v1和v2。
v2="Ubuntu"
"set -x "已经被用来再次扩展。echo语句将两个变量连接起来。由于 "set -x "的内置功能,命令首先扩展显示将发生什么,然后字符串被串联起来。
echo v2
数学表达式也可以在 "expr "命令的帮助下进行评估。要减去两个整数,你必须使用下面的语法。结果显示,"expr "命令将计算出减法的结果。下一个扩展行显示,计算结果将由 "echo "显示。最后,结果已经显示出来了。
$ echo'expr 55-12'
例02:Set -e
set -e内置程序在bash中用于在遇到任何非零状态时退出bash代码。让我们先创建并打开一个bash文件。"set -e "只在函数中起作用。
nanonew.sh
在添加了bash扩展后,已经定义了一个方法show(),其中包含两个回声语句。它还在回声语句之间包含了 "返回1 "子句。在方法定义之后,使用了内置的 "set -e"。在这之后,show()方法被调用。
运行该代码文件后,它只执行了第一个 "echo "语句。这是因为 "set -x "在第一个echo语句后遇到了 "return 1",导致退出执行。
$ bashnew.sh
让我们再一次更新代码。我们交换了第二个echo语句与 "return 1 "的位置。在该方法之后,我们使用了 "set -e "并调用了该方法。再次使用了 "set +e",并且再次调用了该函数。
在执行之后,shell中显示了两个echo语句的文本。show()方法只被执行了一次,因为在它的第一次执行中,"set -e "遇到了 "return 1",程序终止了。
$ bashnew.sh
例子03:设置-u
在内置组中,"set -u "命令被用来在遇到任何没有设置值的变量时声明错误。所以,打开文件 "new.sh "来更新代码。添加bash扩展名,并添加set内置 "set -u"。它可以在有函数和无函数的情况下工作。声明一个字符串变量 "a",其值为 "Linux",如图所示。使用echo语句来打印这个变量值。另一个echo语句被用来打印一个未设置的变量 "v1 "的值,如下图所示。
当我们运行bash代码时,它显示的是第一个变量的值 "a",即Linux。当执行第二个echo语句时,它遇到了一个未设置的变量。它显示了错误。
$ shnew.sh
例04:set -o
内置的 "set -o "与 "set -u "的作用相同。但是它可以和bash代码中的关键字 "nounset "一起使用。因此,我们打开文件,将 "set -u "替换为 "set -o",并加上关键字 "nounset"。其余的代码则没有改变。
运行代码后显示的输出与上面的 "set -u "相同。
$ shnew.sh
例子05:设置-n
当你不想执行bash代码中列出的命令时,可以使用内置的 "set -n"。因此,我们再次更新了代码,用 "set -n "替换了 "set -o"。之后,所有的变量和语句都被定义了。保存并退出该代码。
运行这段更新的bash代码后,我们没有得到任何结果。这是因为内置的 "set -n "不允许它发生。
$ shnew.sh
总结。
这篇文章包含了对Bash脚本中Set Builtin的解释。在这篇文章中,我们讨论了大部分内置的set命令,即set -x, set -e, set -u, set -o, set -n。还有许多其他的内置集也可以使用。我们非常相信,这将有助于bash的初级用户和专家用户。