diff --git a/translated/tech/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md b/published/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md similarity index 70% rename from translated/tech/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md rename to published/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md index f40cff2174..47259c3104 100644 --- a/translated/tech/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md +++ b/published/20230724.0 ⭐️⭐️ Bash Basics Series 7 If Else Statement.md @@ -3,13 +3,17 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lkxed" [#]: translator: "geekpi" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-16083-1.html" Bash 基础知识系列 #7:If Else 语句 ====== +![][0] + +> 如果这样,那就那样,否则就……。还不明白吗?了解了 Bash Shell 脚本中的 if-else 语句后就明白了。 + Bash 支持 if-else 语句,以便你可以在 shell 脚本中使用逻辑推理。 通用的 if-else 语法如下: @@ -32,9 +36,9 @@ fi 正如你所注意到的: -- `elif` 用于 “else if” 类型的条件。 -- if else 条件始终以 `fi` 结尾。 -- 使用分号 `;`和 `then`关键字 +- `elif` 用于 “否则如果” 类型的条件。 +- if-else 条件始终以 `fi` 结尾。 +- 使用分号 `;` 和 `then` 关键字 在展示 if 和 else-if 的示例之前,我先分享一下常见的比较表达式(也称为测试条件)。 @@ -42,35 +46,35 @@ fi 以下是可用于数字比较的测试条件运算符: -| 条件 | 当满足以下条件时为 true | -| :-| :-| -| $a -lt $b | $a < $b($a 是 **小于** $b)| -| $a -gt $b | $a > $b($a 是 **大于** $b)| -| $a -le $b | $a <= $b($a **小于等于** $b )| -| $a -ge $b | $a >= $b ($a **大于等于** $b) -| $a -eq $b | $a 等于 $b | -| $a -ne $b | $a 不等于 $b | +| 条件 | 当满足以下条件时为真 | +| :- | :- | +| `$a -lt $b` | `$a < $b`(`$a` **小于** `$b`)| +| `$a -gt $b` | `$a > $b`(`$a` **大于** `$b`)| +| `$a -le $b` | `$a <= $b`(`$a` **小于等于** `$b` )| +| `$a -ge $b` | `$a >= $b` (`$a` **大于等于** `$b`) +| `$a -eq $b` | `$a == $b` | +| `$a -ne $b` | `$a != $b` | 如果你要比较字符串,可以使用以下测试条件: -| 条件 | 当满足以下条件时为 true | +| 条件 | 当满足以下条件时为真 | | :- | :- | -| “$a”=“$b”| $a 与 $b 相同 | -| “$a”==“$b”| $a 与 $b 相同 | -| “$a”!=“$b”| $a 与 $b 不同 | -| -z“$a”| $a 为空 | +| `"$a" = "$b"` | `$a` 与 `$b` 相同 | +| `"$a" == "$b"` | `$a` 与 `$b` 相同 | +| `"$a" != "$b"` | `$a` 与 `$b` 不同 | +| `-z "$a"` | `$a` 为空字符串 | 文件类型检查也有条件: -| 条件 | 当满足以下条件时为 true | +| 条件 | 当满足以下条件时为真 | | :- | :- | -| -f $a | $a 是一个文件 | -| -d $a | $a 是一个目录 | -| -L $a | $a 是一个链接 | +| `-f $a` | `$a` 是一个文件 | +| `-d $a` | `$a` 是一个目录 | +| `-L $a` | `$a` 是一个链接 | 现在你已经了解了各种比较表达式,让我们在各种示例中看看它们的实际应用。 -### 在 bash 中使用 if 语句 +### 在 Bash 中使用 if 语句 让我们创建一个脚本来告诉你给定的数字是否为偶数。 @@ -88,7 +92,7 @@ if [ $mod -eq 0 ]; then fi ``` -当模数运算 (%) 整除给定数字(本例中为 2)时,它返回零。 +当模数运算(`%`)整除给定数字(本例中为 2)时,它返回零。 > 🚧 特别注意空格。左括号和右括号与条件之间必须有空格。同样,条件运算符(-le、== 等)前后必须有空格。 @@ -100,7 +104,7 @@ fi ### 使用 if else 语句 -现在我在前面的脚本中添加了一条 else 语句。这样,当你得到一个非零模数(因为奇数不能除以 2)时,它将进入 else 块。 +现在我在前面的脚本中添加了一条 `else` 语句。这样,当你得到一个非零模数(因为奇数不能除以 2)时,它将进入 `else` 块。 ``` #!/bin/bash @@ -122,7 +126,7 @@ fi 正如你所看到的,该脚本更好,因为它还告诉你该数字是否为奇数。 -### 使用 elif(else if)语句 +### 使用 elif(否则如果)语句 这是一个检查给定数字是正数还是负数的脚本。在数学中,0 既不是正数也不是负数。该脚本也检查了这一事实。 @@ -146,7 +150,7 @@ fi ### 用逻辑运算符组合多个条件 -到目前为止,一切都很好。但是你是否知道通过使用 AND (&&)、OR (||) 等逻辑运算符可以在一个条件中包含多个条件? 它使你能够编写复杂的条件。 +到目前为止,一切都很好。但是你是否知道通过使用与(&&)、或(||)等逻辑运算符可以在一个条件中包含多个条件? 它使你能够编写复杂的条件。 让我们编写一个脚本来告诉你给定的年份是否是闰年。 @@ -166,7 +170,7 @@ else fi ``` -> 💡 注意上面双括号 [[ ]] 的使用。如果你使用逻辑运算符,则这是强制性的。 +> 💡 注意上面双括号 `[[ ]]` 的使用。如果你使用逻辑运算符,则这是强制性的。 通过使用不同的数据运行脚本来验证脚本: @@ -176,9 +180,9 @@ fi 让我们做一些练习吧 :) -**练习 1**:编写一个 bash shell 脚本,检查作为参数提供给它的字符串的长度。如果未提供参数,它将打印 “empty string”。 +**练习 1**:编写一个 Bash Shell 脚本,检查作为参数提供给它的字符串的长度。如果未提供参数,它将打印 “empty string”。 -**练习 2**:编写一个 shell 脚本来检查给定文件是否存在。你可以提供完整的文件路径作为参数或直接在脚本中使用它。 +**练习 2**:编写一个 Shell 脚本来检查给定文件是否存在。你可以提供完整的文件路径作为参数或直接在脚本中使用它。 **提示**:文件使用 -f 选项 @@ -188,13 +192,11 @@ fi **练习 3**:编写一个接受两个字符串参数的脚本。脚本应检查第一个字符串是否包含第二个参数的子串。 -**提示**:请参阅上一章 [bash 字符串][5] +**提示**:请参阅上一章 [Bash 字符串][5] -你可以在社区中讨论你的解决方案: +我希望你喜欢 Bash 基础知识系列。在下一章中,你将了解如何在 Bash 中使用循环。继续编写 Bash! -[Bash 基础系列练习 #7:If Else 语句][6] - -我希望你喜欢 Bash 基础知识系列。在下一章中,你将了解如何在 Bash 中使用循环。继续编写 bash! +*(题图:MJ/1e8f2f5c-9e47-4c84-b8c1-072808e9cf70)* -------------------------------------------------------------------------------- @@ -203,7 +205,7 @@ via: https://itsfoss.com/bash-if-else/ 作者:[Abhishek Prakash][a] 选题:[lkxed][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -215,3 +217,4 @@ via: https://itsfoss.com/bash-if-else/ [4]: https://itsfoss.com/content/images/2023/07/bash-logical-operators-in-if-else.png [5]: https://itsfoss.com/bash-strings/ [6]: https://itsfoss.community/t/practice-exercise-in-bash-basics-series-7-if-else-statements/10926?ref=itsfoss.com +[0]: https://img.linux.net.cn/data/attachment/album/202308/11/140550zrnniynscp1gnypu.jpg \ No newline at end of file