当前位置:首页 » 《随便一记》 » 正文

如何在 Linux 中创建并运行 Shell 脚本(Bash 初学者教程)

19 人参与  2023年04月10日 12:26  分类 : 《随便一记》  评论

点击全文阅读


文章目录

1、创建并运行第一个 shell 脚本2、将 shell 脚本转换为 bash 脚本3、为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?4、将 shell 脚本添加到 PATH(以便它可以从任何目录运行)

1、创建并运行第一个 shell 脚本

首先创建一个名为 scripts 的新目录,它将托管我们所有的 bash 脚本。

mkdir scriptscd scripts

现在在这个“脚本目录”中,使用 cat 命令创建一个名为 hello.sh的新文件:

cat > hello.sh

通过在终端中键入以下内容,在其中插入以下行:

echo 'Hello, World!'

Ctrl+D 将文本保存到文件中,同时从 cat 命令中出来。

你还可以使用基于终端的文本编辑器,如 VimEmacsNano。如果你使用的是桌面 Linux,还可以使用图形文本编辑器(如 Gedit)将文本添加到此文件中。

基本上你是在使用echo 命令来打印“Hello World”。你可以直接在终端中使用此命令,但在本测试中,你将通过 shell 脚本运行此命令。

现在使用 chmod 命令使文件 hello.sh 可执行,如下所示:

chmod u+x hello.sh

最后,通过在 hello.sh 前面加上“bash”来运行你的第一个 shell 脚本:

bash hello.sh

你就会看到Hello, World!打印在屏幕上。

这是在上面看到的所有步骤的屏幕截图:

在这里插入图片描述

2、将 shell 脚本转换为 bash 脚本

Bash是“Bourne-Again shell”的缩写,它只是 Linux 中许多可用 shell 的一种。

shell 是一个命令行解释器,它接受并运行命令。如果你以前运行过任何 Linux 命令,那么你已经使用过 shell。当你在 Linux 中打开终端时,你已经在运行系统的默认 shell。

Bash 通常是大多数 Linux 发行版中的默认 shell。这就是为什么 bash 通常是 shell 的同义词。Shell 只是一个程序,而 bash 是它的一个实现。还有其他这样的 shell 程序,如 kshzsh等。如果你安装了其他 shell,你也可以使用它来代替 bash

shell 脚本通常具有几乎相同的语法,但有时也会有所不同。例如,数组索引在 Zsh 中从 1 开始,而不是在 bash 中从 0 开始。如果为Zsh shell编写的脚本有数组,则它在 bash 中将无法正常工作。

为了避免这种错误,你应该告诉解释器你的 shell 脚本是为 bash shell 编写的。你是怎样做的?你可以用shebang来实现这一点。

3、为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?

#!/bin/bash”这一行被称为shebang 行,在某些文献中,它被称为hashbang 行,这是因为它以两个字符hash '#'bang '!' 开头。

#! /bin/bashecho 'Hello, World!'

当你在脚本的最顶部包含“#!/bin/bash”行时,系统知道你想使用 bash 作为脚本的解释器。因此,你现在可以直接运行 hello.sh 脚本,而无需在其前面加上 bash

使用 #!/bin/bash 表示该脚本是 bash shell 脚本,无论系统上正在使用什么 shell,都应该使用 bash 作为解释器运行。如果你使用的是 zsh 特定的语法,你可以通过添加 #! /bin/zsh 作为脚本的第一行。

#!/bin/bash 之间的空格无关紧要。你也可以使用 #!/bin/bash

在这里插入图片描述

4、将 shell 脚本添加到 PATH(以便它可以从任何目录运行)

前面使用 ./hello.sh 来运行脚本;如果省略前导 ./

在这里插入图片描述Bash 认为你正在尝试运行名为 hello.sh 的命令。当你在终端上运行任何命令时,shell 就在存储在 PATH 变量中的一组目录中查找该命令。

可以使用 echo 查看该 PATH 变量的内容:echo $PATH

在这里插入图片描述冒号字符 (:) 分隔每次运行命令时 shell 扫描的每个目录的路径。

echocatLinux 命令可以从任何地方运行,因为它们的可执行文件存储在 bin 目录中。bin 目录包含在 PATH 中。当你运行命令时,系统会检查 PATH 以查找它应该寻找的所有可能位置,以找到该命令的可执行文件。

如果你想从任何地方运行你的 bash 脚本,就像它是一个常规的 Linux 命令,需要将你的 shell 脚本的位置添加到 PATH 变量中。

首先,获取脚本目录的位置(假设在同一目录中),使用 PWD 命令:

pwd

使用 export 命令将脚本目录添加到 PATH 变量。

export PATH=$PATH:/home/ay2021/scripts

运行 hello.sh

在这里插入图片描述

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/59136.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1