脚本中的变量
本课属于 Coddy Terminal 学习旅程的“基础知识”单元。第 68 课,共 82 课。
变量可以让你的脚本更灵活,也更容易重复使用。你可以把值存储在变量中,并在脚本中随时引用它们,而不是把值直接写死。
要在脚本中创建变量,请使用你在终端中学过的相同语法:等号两边不要加空格。要使用变量的值,请在变量名前加上美元符号:
#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"这个脚本会输出 Hello, World!。变量 greeting 和 name 用来存储文本,脚本运行时会替换这些文本。
当你需要多次使用同一个值时,变量会特别有用。如果你在多个地方引用同一个文件路径,把它存储在变量中,就只需要修改一次:
#!/bin/bash
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir"注意 "$backup_dir" 两边的引号。用双引号括起变量是个好习惯,因为这样可以正确处理包含空格的路径或值。如果不加引号,像 /my documents 这样的路径会导致命令出错。
脚本中的变量和终端中的变量用法相同,但它们只在脚本运行时存在。脚本运行结束后,这些变量就会消失。
挑战
简单创建一个名为 intro.sh 的 shell 脚本,使用变量显示个性化消息。
你的脚本应该:
- 以 shebang 行(
#!/bin/bash)开头 - 创建一个名为
language、值为Bash的变量 - 创建一个名为
skill、值为scripting的变量 - 使用
echo按以下格式输出这两个变量:Learning Bash scripting!
让脚本可执行并运行它。输出应该是:
Learning Bash scripting!你写的每一行都要用单引号括起来:
echo 'echo "Hello $name"' >> script.sh。写入文件时,单引号可以防止 shell 替换$name,因此脚本会保留这个变量,并在运行时展开它。双引号会立即替换变量的值。
提示:使用带重定向的
echo创建脚本。记得在 echo 语句中使用$来引用变量,例如echo "Learning $language $skill!"
亲手试试
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Terminal 在线编辑器