BASH初学者指南 - 第1部分 - Hello World

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

现在你可能会认为这是一个愚蠢的想法,但是我发现有些指南跟你说话,就好像你已经是专家了,其他的指导者花了很长时间去追求。

虽然我的LINUX / UNIX shell脚本经验有限,但我是一位贸易软件开发人员,我很喜欢脚本语言,如PERL,PHP和VBScript。

本指南的要点是,你将学习,因为我学习和我拿起的任何信息,我会传递给你。

入门

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

大多数人在学习新东西的时候都想跳进来,先从一些实际的课程开始,并且考虑到这一点,我不会对现在不重要的琐事感到厌烦。

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

文本编辑器

我已阅读的其他指南建议您需要包含命令颜色编码的文本编辑器,推荐的编辑器是VIMEMACS

颜色编码是很好的,因为它会在键入时突出显示命令,但对于绝对的初学者,您可以在开始几周内学习VIM和EMACS,而无需编写一行代码。

除了这两个我更喜欢EMACS,但说实话我更喜欢使用简单的编辑器,如nano ,gedit或leafpad。

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

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

打开终端窗口

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

在哪里放置你的脚本

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

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

cd〜

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

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

PWD

pwd命令会告诉你你目前的工作目录(你在目录树中的位置)。 在我的情况下,它返回/ home /加里。

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

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会导致问题?

第一种方法加载了将helloworld.sh作为输入的bash解释器,并计算出如何处理它。 bash解释器已经有权运行,只需要在脚本中运行命令。

第二种方法可让操作系统确定如何处理脚本,因此需要一个可执行位才能执行。

上面的脚本没问题,但是如果你想显示引号会发生什么?

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

回声\“你好世界\”

这将产生输出“你好世界”。

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

那么你可以逃脱逃生角色

echo \\“\”hello world \\“\”

这将产生输出\“你好世界\”。

现在我知道你在想什么。 但我真的想显示\\“\”你好世界\“”\“

对所有这些转义字符使用echo可能会非常愚蠢。 有一个可以使用的替代命令叫做printf。

例如:

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

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

概要

我们在第一部分中没有涉及太多的内容,但希望您的第一个脚本能够正常工作。

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