在文件的帮助下执行 shell 命令时,这称为 shell 脚本。在本文中,我们将了解 shell 命令是如何工作的?如何更有效地使用命令?并了解shell上命令的解释逻辑。 Bash 或 Bourne Again Shell 是使用最广泛的 shell,它预装在大多数 Linux 发行版中。
单引号解释:
单引号不会将变量、反斜杠等任何内容解释为其他形式。例如:
# h = 5
# echo '$h'
$: $ sign is used in the shell to retrieve the value of variables.
echo: echo command is used to print the text or string to the shell or output file.
在这里,我们初始化了一个变量名“h”和 5,然后我们使用 echo 命令使用单引号中的 $ 符号打印值。现在让我们在一个名为 SHELL 的预定义变量上试试这个,这个预定义变量存储了 shell 的路径。
# echo '$SHELL'
即使变量 SHELL 包含 shell 的路径,它也没有在输出中打印路径,因为我们使用了单引号 ‘ ‘。
外壳脚本:
我们可以使用文件做同样的事情,使其可执行并运行它会产生类似的输出。
我们将使用:
- nano:它是 Linux 发行版的命令行文本编辑器。
- cat: cat 命令将用于查看文件的内容。
- chmod:此命令将用于授予可执行权限。
在 nano 编辑器中打开一个文件,命名为 program.sh。 “.sh”扩展名用于 shell 脚本文件。
将内容写入文件:
h = 5
echo '$h'
按 ctrl + o 保存并按 ctrl + x 退出,现在授予 program.sh 文件执行权限:
# chmod 777 program.sh
运行文件:
# ./program.sh
双引号解释:
双引号将解释带有变量、反斜杠等的命令。双引号在处理各种变量和用户输入时非常有用。让我们举同样的例子:
# h = 5
# echo "$h"
是的,这次 h 的实际值被打印为“”,解释语句中出现的特殊情况。同样,现在只需使用 SHELL 等预定义变量检查它。
# echo "$SHELL"
外壳脚本:
现在让我们使用 shell 脚本文件来尝试整个过程。
使用 nano 编辑器打开一个名为 newProgram.sh 的文件:
# nano newProgram.sh
写出下面给出的内容:
h = 5
echo "$h"
授予权限使其可执行:
# chmod +x newProgram.sh
运行文件以查看输出:
# ./newProgram.sh
下表是了解单引号和双引号行为的表格。首先,我们初始化一些变量。
# name = (hemant)
# number = 40
Input | Output | Interpretation |
---|---|---|
echo “$name“ | hemant | Variable get interpreted |
echo ‘$name‘ | $name | Literal meaning get printed |
echo “$number“ | 40 | interpreted |
echo ‘$number‘ | $number | No interpretation of variable |
echo ‘“$number“‘ | “$number” | ” ” is treated literally inside ‘ ‘ |
echo “hello\t$name“ | hello\themant | Interpreted but by default escape sequence in off |
echo -e “hello\t$name“ | hello hemant | Worked with -e option |
“\’“ | \’ | \’ is interpreted inside ” “ but has no significance for ‘ |