Skip to main content

Bash的初学者指南 - Hello World

The Complete Linux Course: Beginner to Power User! (可能 2025)

The Complete Linux Course: Beginner to Power User! (可能 2025)
Anonim

互联网上有很多指南显示如何使用BASH创建Shell脚本,本指南旨在给出一个稍微不同的旋转,因为它是由具有非常少的shell脚本编写经验的人编写的。

现在你可能会认为这是一个愚蠢的想法,但我发现有些导游会跟你说话,好像你已经是专家一样,其他导游需要花很长时间来追逐。

虽然我的LINUX / UNIX shell脚本编写经验有限,但我是一名软件开发人员,而且我很熟悉PERL,PHP和VBScript等脚本语言。

本指南的要点是,您将学习我学习的内容以及我收到的任何我将传递给您的信息。

入门

显然有很多理论可以直接传递给你,比如描述不同类型的shell以及使用BASH而不是KSH和CSH的优势。

大多数人在学习新东西的时候都想跳进去,先从一些实践课开始,考虑到这一点,我不会厌倦你现在不重要的琐事。

遵循本指南所需的只是文本编辑器和运行BASH的终端(大多数Linux发行版上的默认shell)。

文字编辑

我读过的其他指南建议您需要一个文本编辑器,其中包括命令的颜色编码,推荐的编辑器是VIM或EMACS。

颜色编码很好,因为它在您键入命令时突出显示命令,但对于绝对的初学者,您可以花费前几周学习VIM和EMACS而无需编写任何代码。

在两者中,我更喜欢EMACS,但说实话,我更喜欢使用简单的编辑器,如nano,gedit或leafpad。

如果您在自己的计算机上编写脚本,并且您知道您将始终可以访问图形环境,那么您可以选择最适合您的编辑器,它可以是图形,例如GEdit,也可以是直接在终端中运行的编辑器如nano或vim。

出于本指南的目的,我将使用nano,因为它本身安装在大多数Linux发行版上,因此您可能有权访问它。

打开终端窗口

如果您使用Linux发行版与Linux Mint或Ubuntu等图形桌面,则可以通过按CTRL + ALT + T打开终端窗口。

在哪里放你的脚本

出于本教程的目的,您可以将脚本放在主文件夹下的文件夹中。

在终端窗口中,通过键入以下命令确保您在主文件夹中:

cd~

cd命令代表更改目录,代字号(〜)是主文件夹的快捷方式。

您可以通过键入以下命令来检查您是否在正确的位置:

PWD

pwd命令将告诉您当前的工作目录(您在目录树中的位置)。在我的情况下它返回/ home / gary。

现在显然你不想将你的脚本直接放到主文件夹中,所以通过输入以下命令创建一个名为scripts的文件夹。

mkdir脚本

键入以下命令切换到新脚本文件夹:

cd脚本

你的第一个脚本

在习惯学习如何编程以使第一个程序只输出“Hello World”这个词时。

在脚本文件夹中输入以下命令:

nano helloworld.sh

现在在nano窗口中输入以下代码。

#!/ bin / bash echo“hello world”

按CTRL + O保存文件,按CTRL + X退出nano。

脚本本身如下:

#!/ bin / bash需要包含在您编写的所有脚本的顶部,因为它允许解释器和操作系统知道如何处理该文件。基本上只记得把它放入并忘记你为什么这样做。

第二行有一个名为echo的命令,它输出紧跟在其后面的文本。

请注意,如果要显示多个单词,则需要在单词周围使用双引号(“)。

您现在可以通过键入以下命令来运行该脚本:

sh helloworld.sh

应该出现“你好世界”这个词。

另一种运行脚本的方法如下:

./helloworld.sh

如果您立即在终端中运行该命令,则可能会出现权限错误。

要以这种方式授予运行脚本的权限,请键入以下内容:

sudo chmod + x helloworld.sh

那么实际发生了什么?为什么你能够在不改变权限的情况下运行sh helloworld.sh但运行./helloworld.sh会导致问题?

第一个方法加载bash解释器,它将helloworld.sh作为输入,并确定如何处理它。 bash解释器已经具有运行权限,只需要在脚本中运行命令。

第二种方法允许操作系统解决如何处理脚本,因此需要可执行位才能执行。

上面的脚本没问题但是如果你想显示引号会怎么样?

有多种方法可以实现这一目标。例如,您可以在引号前加一个反斜杠,如下所示:

回声“你好世界”

这将产生输出“hello world”。

等一下,如果你想要显示“你好世界”怎么办?

那么你也可以逃脱逃脱角色

echo “”hello world “”

这将产生输出“hello world”。

现在我知道你在想什么。但是我真的想要显示“”hello world “”

对所有这些转义字符使用echo可能会非常愚蠢。您可以使用另一个名为printf的命令。

例如:

printf'%s n''“”hello world “”'

请注意,我们要显示的文本位于单引号之间。 printf命令从脚本输出文本。 %s表示它将显示一个字符串, n输出一个新行。

摘要

我们在第一部分中并未真正涵盖太多理由,但希望您的第一个脚本能够正常工作。

在下一部分中,我们将着眼于改进hello world脚本以显示不同颜色的文本,接受和处理输入参数,变量和注释代码。