变量与用户输入
学习在脚本中定义和使用变量,并了解如何提示用户输入信息,让脚本具备交互性。
变量与用户输入 是 CoddyKit 上的免费 Linux Command Line & Bash Scripting Mastery 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Command Line & Bash Scripting Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Command Line & Bash Scripting Mastery 课程共包含 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 导师)并解锁 Linux Command Line & Bash Scripting Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Command Line & Bash Scripting Mastery 课程共包含 4 节课。
「变量与用户输入」这节课中我会学到什么?
学习在脚本中定义和使用变量,并了解如何提示用户输入信息,让脚本具备交互性。 你通过在浏览器中直接运行的动手代码来练习 Linux Command Line & Bash Scripting Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Command Line & Bash Scripting Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Command Line & Bash Scripting Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「变量与用户输入」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Command Line & Bash Scripting Mastery 课中编写并运行代码吗?
能。每节 Linux Command Line & Bash Scripting Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。