Bash 基础知识系列 1:创建并运行你的第一个 Bash Shell 脚本

苏苏 苏苏
249
2023-11-27

翻译并做了调整,来自:https://itsfoss.com/create-bash-script/


这是一个新教程系列的开始。在这一篇中,你将熟悉 bash 脚本。

本系列假定你对 Linux 终端比较熟悉。你不必精通,但了解基础知识会很好。不熟悉也没关系,后期苏苏会抄袭借鉴更新系列文章上去。


这个系列适合谁?

任何想开始学习 Bash Shell 脚本的人。

如果你是一名将 Shell 脚本作为课程的一部分的学生,那么本系列适合你。

如果你是普通的桌面 Linux 用户,本系列将帮助你了解在探索各种软件和修复程序时遇到的大多数 Shell 脚本。你还可以使用它来自动执行一些常见的重复性任务。

如果是纯粹是为了更顺畅地玩VPS,本系列教程也很适合你。

到本 Bash 基础系列结束时,你应该能够编写简单到中等水平的 Bash 脚本。

该系列的所有章节都有示例练习,你可以边做边学。

你将在这里学习 Bash Shell 脚本。虽然还有语法基本相同的其他 Shell,但它们的行为在某些方面仍然存在差异。Bash 是最常见和通用的 Shell,因此学习 Shell 脚本从 Bash 开始吧。


你的第一个 Shell 脚本:Hello World!

打开一个终端。现在 创建一个新目录 来保存你将在本系列中创建的所有脚本:

mkdir bash_scripts

现在 切换到这个新创建的目录:

cd bash_scripts

让我们在这里 创建一个新文件:

touch hello_world.sh

现在,编辑该文件 并向其中添加一行 echo Hello World。你可以使用 cat 命令的追加模式(使用 >)执行此操作:

cat > hello_world.sh 
echo Hello World
^C

我更喜欢在使用 cat 命令添加文本时添加新行。

按 Ctrl+C 或 Ctrl+D 键退出 cat 命令的追加模式。现在,如果你查看脚本 hellow_world.sh 的内容,你应该只看到一行。

关键时刻来了。你已经创建了第一个 Shell 脚本。是时候 运行 Shell 脚本 了。

这样做:

bash hello_world.sh

echo 命令只是显示提供给它的任何内容。在这种情况下,Shell 脚本应该在屏幕上输出 “Hello World”。

恭喜! 你刚刚成功运行了第一个 Shell 脚本。多么酷啊!

以下是上述所有命令的重放,供你参考。


另一种运行 Shell 脚本的方法

大多数时候,你将以这种方式运行 Shell 脚本:

./hello_world.sh

这将产生错误,因为作为脚本的文件还没有执行权限。

bash: ./hello_world.sh: Permission denied

给脚本添加执行权限:

chmod u+x hello-world.sh

现在,你可以像这样运行它:

./hello_world.sh

因此,你学习了两种运行 Shell 脚本的方法。是时候让我们将注意力转回 Bash 了。


把你的 Shell 脚本变成 Bash 脚本

感到困惑? 实际上,Linux 中有几种可用的 Shell。Bash、Ksh、Csh、Zsh 等等。其中,Bash 是最受欢迎的,几乎所有发行版都默认安装了它。

Shell 是一个解释器。它接受并运行 Linux 命令。虽然大多数 Shell 的语法保持不变,但它们的行为在某些点上可能有所不同。例如,条件逻辑中括号的处理。

这就是为什么告诉系统使用哪个 Shell 来解释脚本很重要。

当你使用 bash hello_world.sh 时,你明确地使用了 Bash 解释器。

但是当你以这种方式运行 Shell 脚本时:

./hello_world.sh

系统将使用你当前使用的任何 Shell 来运行脚本。

为避免由于不同的语法处理而导致不必要的意外,你应该明确告诉系统它是哪个 shell 脚本。

怎么做? 使用释伴(#!)。通常,# 用于 Shell 脚本中的注释。但是,如果 #! 用作程序的第一行,它的特殊用途是告诉系统使用哪个 Shell。

因此,更改 hello_world.sh 的内容,使其看起来像这样:

#!/bin/bash
echo Hello World

现在,你可以像往常一样运行 Shell 脚本,因为你知道系统将使用 Bash Shell 来运行脚本。

如果你觉得在终端中编辑脚本文件不方便,作为桌面 Linux 用户,你可以使用 Gedit 或其他 GUI 文本编辑器编写脚本并在终端中运行。


练习时间

是时候练习你学到的东西了。以下是该级别的一些基本练习:

编写一个打印 “Hello Everyone” 的 Bash 脚本

编写一个显示当前工作目录的 Bash 脚本(提示:使用 pwd 命令)

编写一个 Shell 脚本,使用以下列方式打印你的用户名:“My name is XYZ”(提示:使用 $USER)


答案可以在社区论坛的 这个专门的帖子 中讨论:https://itsfoss.community/t/practice-exercise-in-bash-basics-series-1-create-and-run-your-first-bash-shell-script/10682

最后一个练习使用 $USER。这是一个打印用户名的特殊变量。

这就引出了 Bash 基础系列下一章的主题:变量。

请继续关注下面的内容。


特别申明: 若无说明,文章均为原创,转载时请注明本文地址,谢谢合作!

本站仅为分享信息,绝对不是推荐,所有内容均仅代表个人观点,读者购买风险自担。如果你非要把风险推苏苏头上,不要这么残忍,好吗?
本站保证在法律范围内您的个人信息不经由本站透露给任何第三方。
所有网络产品均无法保证在中国任何地区,任何时间,任何宽带均有相同的访问体验,那种号称某机房绝不抽风的不是骗子就是呵呵.
任何IDC都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现.

加入群1:569839985

欢迎IDC提交优惠信息或者测试样机,提交信息请Eamil至admin#138vps.com,苏苏不保证一定会进行发布。

但请IDC留意以下内容:
无官方正式首页、无可用联络方式暂不发布;
曾经有过倒闭和跑路经历者重开不到6个月不做发布;
从本日起(2016-07-18)不接受任何形式的免费赞助和VPS馈赠,不接受任何评测报告的投稿,不接受任何付费发布和付费删除评论,所有IDC若有必要提交测试样机,请在7日后自行删除。
公告
欢迎加入qq群:569839985
本站诚换友情链接。在您的网站加上本站的友情链接后发邮件到 admin#138vps.com, 苏苏会自行审核,一周内会上线您的友情链接。
要求:建站一年以上,百度权重1,收录数量不低于一千。
请尽量使用 PayPal 进行交易,PayPal 对资金的保护政策更照顾买家。
年度爆文