Shell 中的算术操作

ShellShellBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 Shell 编程中执行基本的算术操作。你将创建一个简单的脚本来计算水果篮的总成本,展示如何在 Bash 中使用变量和算术表达式。本实验专为初学者设计,因此我们将详细解释每个步骤。

创建一个新的 Bash 脚本

让我们从创建一个新的 Bash 脚本文件开始。

  1. 在 WebIDE 中打开你的终端。你应该会看到一个命令提示符,可能类似于这样:labex@ubuntu:~/project$

  2. 我们将在 project 目录中创建脚本。默认情况下,你已经在这个目录中,但为了确保,我们可以使用 cd 命令:

    cd ~/project

    这条命令将当前目录切换到 /home/labex/project

  3. 现在,让我们创建一个名为 fruit_basket.sh 的新文件。我们将使用 touch 命令,它会创建一个空文件:

    touch fruit_basket.sh
  4. 在 WebIDE 编辑器中打开 fruit_basket.sh 文件。你可以通过点击 WebIDE 左侧文件资源管理器中的文件名来打开它。

  5. 每个 Bash 脚本都应该以 "shebang" 行开头。这一行告诉系统使用哪个解释器来运行脚本。在文件的开头添加以下行:

    #!/bin/bash

    这一行指定脚本应使用 Bash 解释器运行。

定义水果成本的变量

现在我们已经有了脚本文件,接下来让我们定义一些变量来存储不同水果和篮子的成本。

将以下内容添加到你的 fruit_basket.sh 文件中:

#!/bin/bash

## 定义成本
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

让我们分解一下这些内容:

  • 在 Bash 中,我们不需要在使用变量之前声明它们。我们只需为变量名赋值即可。
  • 变量名是区分大小写的。按照惯例,我们通常使用大写字母表示常量(不会改变的值)。
  • 在赋值时,= 符号周围不能有空格。
  • 这些值表示以分为单位的成本。例如,COST_PINEAPPLE=50 表示一个菠萝的成本是 50 分。
  • 我们不需要指定数据类型。Bash 默认将这些值视为字符串,但在执行算术运算时会将其视为数字。

计算总成本

现在我们已经定义了成本,接下来让我们计算包含 1 个菠萝、2 根香蕉和 3 个西瓜的水果篮的总成本。

将以下内容添加到你的 fruit_basket.sh 文件中:

#!/bin/bash

## 定义成本
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## 计算总成本
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))

让我们分析一下这行新代码:

  • $(( )) 是 Bash 中用于算术运算的语法。双括号内的任何内容都被视为算术表达式。
  • 在算术表达式中,我们不需要在变量名前使用 $
  • 我们执行了以下操作:
    • COST_PINEAPPLE:1 个菠萝的成本
    • (COST_BANANA * 2):2 根香蕉的成本
    • (COST_WATERMELON * 3):3 个西瓜的成本
    • COST_BASKET:篮子本身的成本
  • 这些值相加后,结果存储在 TOTAL 变量中。

注意:Bash 仅处理整数运算。如果我们需要处理美元和美分,则需要使用 bc 等工具进行浮点运算。

显示总成本

为了查看计算结果,我们需要打印总成本。将以下内容添加到你的 fruit_basket.sh 文件中:

#!/bin/bash

## 定义成本
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## 计算总成本
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))

## 显示总成本
echo "Total Cost is $TOTAL cents"

让我们分解一下这行新代码:

  • echo 是一个将文本打印到终端的命令。
  • 引号内的文本将按原样打印,除了 $TOTAL 部分。
  • 当变量名在字符串中以 $ 开头时,Bash 会将其替换为变量的值。这称为变量扩展。
  • 因此,如果 TOTAL 是 128,输出将是 "Total Cost is 128 cents"。

使脚本可执行并运行它

现在我们的脚本已经完成,我们需要使其可执行并运行它。

  1. 在终端中,使用 chmod 命令使脚本可执行:

    chmod +x ~/project/fruit_basket.sh

    这条命令会更改文件的模式,为用户添加执行(x)权限。

  2. 现在,让我们运行脚本:

    ~/project/fruit_basket.sh

    这条命令告诉 Bash 执行我们的脚本。~/project/ 部分指定了脚本的路径。

你应该会看到类似以下的输出:

Total Cost is 128 cents

这个输出显示了我们水果篮的总成本(1 个菠萝、2 根香蕉、3 个西瓜和篮子本身)是 128 分。

总结

在本实验中,你学习了如何在 Shell 编程中使用基本运算符执行算术操作。你创建了一个 Bash 脚本,通过定义各个成本的变量并使用算术表达式计算总成本,来计算水果篮的总成本。你还学习了如何使脚本可执行并从命令行运行它。

需要记住的关键点:

  1. Bash 脚本以 shebang 行(#!/bin/bash)开头。
  2. 在 Bash 中,变量赋值时 = 符号周围不能有空格。
  3. Bash 中的算术操作在 $(( )) 内执行。
  4. echo 命令用于打印输出。
  5. 脚本需要通过 chmod +x 设置为可执行后才能运行。

这些技能为更复杂的 Shell 脚本任务奠定了基础,并可以应用于需要在脚本中执行计算的各种场景。