From 5865a83171c14b8b63014001d456a9b852cb579b Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Mon, 19 Jun 2023 11:02:01 +0800 Subject: [PATCH] RP @geekpi https://linux.cn/article-15921-1.html --- ...s 1 Create and Run Your First Bash Shell Script.md | 193 ++++++++++++++++++ ...s 1 Create and Run Your First Bash Shell Script.md | 188 ----------------- 2 files changed, 193 insertions(+), 188 deletions(-) create mode 100644 published/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md delete mode 100644 translated/tech/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md diff --git a/published/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md b/published/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md new file mode 100644 index 0000000000..e366880ecc --- /dev/null +++ b/published/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md @@ -0,0 +1,193 @@ +[#]: subject: "Bash Basics Series #1: Create and Run Your First Bash Shell Script" +[#]: via: "https://itsfoss.com/create-bash-script/" +[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" +[#]: collector: "lkxed" +[#]: translator: "geekpi" +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15921-1.html" + +Bash 基础知识系列 #1:创建并运行你的第一个 Bash Shell 脚本 +====== + +![][0] + +> 这是一个新教程系列的开始。在这一篇中,你将熟悉 Bash 脚本。 + +本系列假定你对 Linux 终端比较熟悉。你不必精通,但了解基础知识会很好。我建议阅读终端基础知识系列。 + +### 这个系列适合谁? + +任何想开始学习 Bash Shell 脚本的人。 + +如果你是一名将 Shell 脚本作为课程的一部分的学生,那么本系列适合你。 + +如果你是普通的桌面 Linux 用户,本系列将帮助你了解在探索各种软件和修复程序时遇到的大多数 Shell 脚本。你还可以使用它来自动执行一些常见的重复性任务。 + +到本 Bash 基础系列结束时,你应该能够编写简单到中等水平的 Bash 脚本。 + +该系列的所有章节都有示例练习,你可以边做边学。 + +> 🚧 你将在这里学习 Bash Shell 脚本。虽然还有语法基本相同的其他 Shell,但它们的行为在某些方面仍然存在差异。Bash 是最常见和通用的 Shell,因此学习 Shell 脚本从 Bash 开始吧。 + +### 你的第一个 Shell 脚本:Hello World! + +打开一个终端。现在 [创建一个新目录][1] 来保存你将在本系列中创建的所有脚本: + +``` +mkdir bash_scripts +``` + +现在 [切换到这个新创建的目录][2]: + +``` +cd bash_scripts +``` + +让我们在这里 [创建一个新文件][3]: + +``` +touch hello_world.sh +``` + +现在,[编辑该文件][4] 并向其中添加一行 `echo Hello World`。你可以使用 `cat` 命令的追加模式(使用 `>`)执行此操作: + +``` +[abhishek@itsfoss]:~/bash_scripts$ cat > hello_world.sh +echo Hello World +^C +``` + +我更喜欢在使用 `cat` 命令添加文本时添加新行。 + +按 `Ctrl+C` 或 `Ctrl+D` 键退出 `cat` 命令的追加模式。现在,如果你查看脚本 `hellow_world.sh` 的内容,你应该只看到一行。 + +![Creating first shell script][5] + +关键时刻来了。你已经创建了第一个 Shell 脚本。是时候 [运行 Shell 脚本][6] 了。 + +这样做: + +``` +bash hello_world.sh +``` + +`echo` 命令只是显示提供给它的任何内容。在这种情况下,Shell 脚本应该在屏幕上输出 “Hello World”。 + +![Run first shell script][7] + +恭喜! 你刚刚成功运行了第一个 Shell 脚本。多么酷啊! + +以下是上述所有命令的重放,供你参考。 + +![][8] + +#### 另一种运行 Shell 脚本的方法 + +大多数时候,你将以这种方式运行 Shell 脚本: + +``` +./hello_world.sh +``` + +这将产生错误,因为作为脚本的文件还没有执行权限。 + +``` +bash: ./hello_world.sh: Permission denied +``` + +给脚本添加执行权限: + +``` +chmod u+x hello-world.sh +``` + +现在,你可以像这样运行它: + +``` +./hello_world.sh +``` + +![Run shell scripts][9] + +因此,你学习了两种运行 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 来运行脚本。 + +![Run bash shell script][10] + +> 💡 如果你觉得在终端中编辑脚本文件不方便,作为桌面 Linux 用户,你可以使用 Gedit 或其他 GUI 文本编辑器编写脚本并在终端中运行。 + +### 🏋️ 练习时间 + +是时候练习你学到的东西了。以下是该级别的一些基本练习: + +- 编写一个打印 “Hello Everyone” 的 Bash 脚本 +- 编写一个显示当前工作目录的 Bash 脚本(提示:使用 `pwd` 命令) +- 编写一个 Shell 脚本,使用以下列方式打印你的用户名:“My name is XYZ”(提示:使用 `$USER`) + +答案可以在社区论坛的 [这个专门的帖子][11] 中讨论。 + +最后一个练习使用 `$USER`。这是一个打印用户名的特殊变量。 + +这就引出了 Bash 基础系列下一章的主题:变量。 + +请继续关注下面的内容。 + +*(题图:MJ/c8f6458a-84fe-4f77-9a9c-f82fef611935)* + +-------------------------------------------------------------------------------- + +via: https://itsfoss.com/create-bash-script/ + +作者:[Abhishek Prakash][a] +选题:[lkxed][b] +译者:[geekpi](https://github.com/geekpi) +校对:[wxy](https://github.com/wxy) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://itsfoss.com/author/abhishek/ +[b]: https://github.com/lkxed/ +[1]: https://itsfoss.com/make-directories/ +[2]: https://itsfoss.com/change-directories/ +[3]: https://itsfoss.com/create-files/ +[4]: https://itsfoss.com/edit-files-linux/ +[5]: https://itsfoss.com/content/images/2023/06/create-first-shell-script.png +[6]: https://itsfoss.com/run-shell-script-linux/ +[7]: https://itsfoss.com/content/images/2023/06/run-first-shell-script.png +[8]: https://itsfoss.com/content/images/2023/06/create-run-first-shell-script.svg +[9]: https://itsfoss.com/content/images/2023/06/running-shell-scripts.png +[10]: https://itsfoss.com/content/images/2023/06/run-bash-shell-script.png +[11]: https://itsfoss.community:443/t/practice-exercise-in-bash-basics-series-1-create-and-run-your-first-bash-shell-script/10682 +[0]: https://img.linux.net.cn/data/attachment/album/202306/19/110018eyvhy9d0yhjcjhq7.jpg \ No newline at end of file diff --git a/translated/tech/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md b/translated/tech/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md deleted file mode 100644 index 98fe6830e0..0000000000 --- a/translated/tech/20230612.1 ⭐️⭐️ Bash Basics Series 1 Create and Run Your First Bash Shell Script.md +++ /dev/null @@ -1,188 +0,0 @@ -[#]: subject: "Bash Basics Series #1: Create and Run Your First Bash Shell Script" -[#]: via: "https://itsfoss.com/create-bash-script/" -[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" -[#]: collector: "lkxed" -[#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " - -Bash 基础知识系列 #1:创建并运行你的第一个 Bash Shell 脚本 -====== - -这是关于 It's FOSS 的新教程系列的开始。在这一篇中,你将熟悉 bash 脚本。 - -本系列假定你对 Linux 终端比较熟悉。你不必是大师,但了解基础知识会很好。我建议阅读终端基础知识系列。 - -**这个系列适合谁?** - -任何想开始学习 bash shell 脚本的人。 - -如果你是一名将 shell 脚本作为课程的一部分的学生,那么本系列适合你。 - -如果你是普通的桌面 Linux 用户,本系列将帮助你了解在探索各种软件和修复程序时遇到的大多数 shell 脚本。你还可以使用它来自动执行一些常见的重复性任务。 - -到本 Bash 基础系列结束时,你应该能够编写简单到中等的 bash 脚本。 - -该系列的所有章节都有示例练习,你可以边做边学。 - -> 🚧 你将在这里学习 bash shell 脚本。虽然还有其他 shell 的语法基本相同,但它们的行为在某些方面仍然存在差异。Bash 是最常见和通用的 shell,因此开始使用 bash 学习 shell 脚本。 - -### 你的第一个 shell 脚本:Hello World! - -打开一个终端。现在[创建一个新目录][1]来保存你将在本系列中创建的所有脚本: - -``` -mkdir bash_scripts -``` - -现在[切换到这个新创建的目录][2]: - -``` -cd bash_scripts -``` - -让我们在这里[创建一个新文件][3]: - -``` -touch hello_world.sh -``` - -现在,[编辑文件][4]并向其中添加 “echo Hello World” 行。你可以使用 cat 命令的追加模式(使用 >)执行此操作: - -``` -[abhishek@itsfoss]:~/bash_scripts$ cat > hello_world.sh -echo Hello World -^C -``` - -我更喜欢在使用 cat 命令添加文本时添加新行。 - -按 Ctrl+C 或 Ctrl+D 键退出 cat 命令的追加模式。现在,如果你查看脚本 `hellow_world.sh` 的内容,你应该只看到一行。 - -![Creating first shell script][5] - -关键时刻来了。你已经创建了第一个 shell 脚本。是时候[运行 shell 脚本][6] 了。 - -这样做: - -``` -bash hello_world.sh -``` - -echo 命令只是显示提供给它的任何内容。在这种情况下,shell 脚本应该在屏幕上输出 Hello World。 - -![Run first shell script][7] - -恭喜! 你刚刚成功运行了第一个 shell 脚本。多么酷啊! - -以下是上述所有命令的重放,供你参考。 - -![][8] - -#### 另一种运行 shell 脚本的方法 - -大多数时候,你将以这种方式运行 shell 脚本: - -``` -./hello_world.sh -``` - -这将产生错误,因为作为脚本的文件还没有执行权限。 - -``` -bash: ./hello_world.sh: Permission denied -``` - -给脚本添加执行权限: - -``` -chmod u+x hello-world.sh -``` - -现在,你可以像这样运行它: - -``` -./hello_world.sh -``` - -![Run shell scripts][9] - -因此,你学习了两种运行 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 脚本。 - -怎么做? 使用 shebang (#!)。通常,# 用于 shell 脚本中的注释。但是,如果 #! 用作程序的第一行,它的特殊用途是告诉系统使用哪个 shell。 - -因此,更改 hello_world.sh 的内容,使其看起来像这样: - -``` -#!/bin/bash - -echo Hello World -``` - -现在,你可以像往常一样运行 shell 脚本,因为你知道系统将使用 bash shell 来运行脚本。 - -![Run bash shell script][10] - -> 💡 如果你觉得在终端中编辑脚本文件不方便,作为桌面 Linux 用户,你可以使用 Gedit 或其他 GUI 文本编辑器编写脚本并在终端中运行。 - -### 🏋️ 练习时间 - -是时候练习你学到的东西了。以下是该级别的一些基本练习: - -- 编写一个打印 “Hello Everyone” 的 bash 脚本 -- 编写一个显示当前工作目录的 bash 脚本(提示:使用 pwd 命令) -- 编写一个 shell 脚本,使用以下列方式打印你的用户名:My name is XYZ(提示:使用 $USER) - -答案可以在社区论坛的[这个专门的帖子][11]中讨论。 - -最后一个练习使用 `$USER`。这是一个打印用户名的特殊变量。 - -这就引出了 Bash 基础系列下一章的主题:变量。 - -请继续关注下周的内容。 - --------------------------------------------------------------------------------- - -via: https://itsfoss.com/create-bash-script/ - -作者:[Abhishek Prakash][a] -选题:[lkxed][b] -译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) - -本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 - -[a]: https://itsfoss.com/author/abhishek/ -[b]: https://github.com/lkxed/ -[1]: https://itsfoss.com/make-directories/ -[2]: https://itsfoss.com/change-directories/ -[3]: https://itsfoss.com/create-files/ -[4]: https://itsfoss.com/edit-files-linux/ -[5]: https://itsfoss.com/content/images/2023/06/create-first-shell-script.png -[6]: https://itsfoss.com/run-shell-script-linux/ -[7]: https://itsfoss.com/content/images/2023/06/run-first-shell-script.png -[8]: https://itsfoss.com/content/images/2023/06/create-run-first-shell-script.svg -[9]: https://itsfoss.com/content/images/2023/06/running-shell-scripts.png -[10]: https://itsfoss.com/content/images/2023/06/run-bash-shell-script.png -[11]: https://itsfoss.community:443/t/practice-exercise-in-bash-basics-series-1-create-and-run-your-first-bash-shell-script/10682