0Pricing
DevOps Bootcamp · 课时

变量与用户输入

学习在脚本中定义和使用变量,并了解如何提示用户输入信息,让脚本具备交互性。

变量与用户输入 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

什么是变量?

在 Bash 脚本编程中,变量就像存放数据的命名容器。您可以把它们看作脚本中要使用或修改的信息占位符。

变量可以存储文本、数字甚至命令输出等值,从而让脚本更加灵活、可复用,也更易于管理。

声明和赋值变量

要在 Bash 中创建变量,只需为名称赋予一个值即可。不需要使用var或let之类的特殊关键字。

  • 使用VARIABLE_NAME=value语法。
  • 重要提示:=符号两侧不要加空格。
  • 值可以是文本(字符串)或数字。

让我们尝试为变量赋一些值:

#!/bin/bash

# Assigning a string
MY_NAME="CoddyKit"

# Assigning a number
LESSON_NUMBER=2

echo "Name: $MY_NAME"
echo "Lesson: $LESSON_NUMBER"

访问变量值

声明变量后,可以在变量名前加上$符号来访问它的值。这会告诉 Bash 将变量名替换为其中存储的值。

例如,如果您有MY_VAR="Hello",那么echo $MY_VAR会打印“Hello”。

#!/bin/bash

CITY="New York"
TEMPERATURE=75

echo "The city is $CITY."
echo "The temperature is $TEMPERATURE degrees."

# You can also enclose in curly braces for clarity (optional)
echo "It's ${TEMPERATURE}F in ${CITY}."

变量命名规则

恰当的变量名可以让脚本更易于理解。以下是一些规则和最佳实践:

  • 名称可以包含字母(a-z、A-Z)、数字(0-9)和下划线(_)。
  • 名称必须以字母或下划线开头。
  • 变量名区分大小写(myVar与myvar不同)。
  • 通常使用 ALL_CAPS 表示环境变量和脚本常量,使用 mixedCase 或 snake_case 表示脚本中的局部变量。

只读变量

有时您希望某个变量的值在整个脚本运行期间保持不变。可以使用readonly命令使变量不可更改。

变量设置为readonly后,您就不能重新为它赋值。尝试这样做会导致错误。

#!/bin/bash

APP_VERSION="1.0.0"
readonly APP_VERSION

echo "App Version: $APP_VERSION"

# Uncommenting the next line would cause an error:
# APP_VERSION="1.0.1"
# echo "New App Version: $APP_VERSION"

让脚本实现交互

到目前为止,我们的脚本执行命令时不需要任何实时输入。但如果您希望脚本向用户询问信息,该怎么办呢?

这时用户输入就派上用场了!交互式脚本可以根据用户输入的内容调整行为,因此更加灵活,也更易于使用。

`read` 命令

用于获取用户输入的主要命令是read。执行read后,脚本会暂停,等待用户输入内容并按下 Enter 键。

用户输入的文本随后会存储在您指定的变量中。

#!/bin/bash

echo "Please enter your name:"
read USER_NAME

echo "Hello, $USER_NAME! Welcome to CoddyKit."

使用 `read -p` 添加提示

前面的示例可以正常工作,但需要两行代码:一行用于使用echo显示提示,另一行用于执行read。您可以将read与-p(提示)选项结合使用,将它们合并起来。

这样可以让脚本的交互更加简洁直接。

#!/bin/bash

read -p "What is your favorite animal? " ANIMAL

echo "Oh, so you like $ANIMAL! That's cool."

使用 `read -s` 隐藏输入

对于密码等敏感信息,您不会希望用户输入的内容显示在屏幕上。将read与-s(静默)选项结合使用,可以在用户输入时抑制输出。

使用read -s后,最好添加一个echo命令来打印换行符,否则下一个提示可能会与隐藏的输入显示在同一行。

#!/bin/bash

read -sp "Enter your secret passphrase: " PASSPHRASE
echo # This adds a newline after the hidden input

echo "Passphrase received (not displayed for security)."

快速检查:变量和输入

请考虑以下 Bash 脚本:

#!/bin/bash

FAVORITE_FOOD="Pizza"
read -p "What's your favorite drink? " DRINK

echo "I like $FAVORITE_FOOD and $DRINK!"

回顾:变量和用户输入

做得很好!您已经学会了让 Bash 脚本变得动态且具有交互性的基础知识。

  • 变量使用NAME=value存储值。
  • 使用$NAME访问变量值。
  • readonly可将变量设为常量。
  • read命令用于获取用户输入。
  • 使用read -p "Prompt"显示行内提示。
  • 使用read -s处理需要静默输入的敏感信息。

这些工具对于构建灵活且易于使用的脚本至关重要!

常见问题解答

「变量与用户输入」课时是免费的吗?

是的 — 「变量与用户输入」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「变量与用户输入」这节课中我会学到什么?

学习在脚本中定义和使用变量,并了解如何提示用户输入信息,让脚本具备交互性。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「变量与用户输入」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 第一个 Bash 脚本与 Shebang
  2. 变量与用户输入
  3. 条件语句(if、else、elif)
  4. 在 Bash 中使用数组
← 返回 DevOps Bootcamp