#!/bin/bash# read命令:在脚本运行时询问用户并等待用户回答。# read命令从标准输入(键盘)或另一个文件描述符中接受输入。# 获取输入后,read命令会将数据存入变量。# using the read commandecho-n"Enter your name: "read name
echo"hello $name, welcome to my script."
运行结果
Enter your name: li er gou
hello li er gou, welcome to my script.
echo"****** -p选项:允许直接指定提示符******"# using the read command with the -p optionread-p"Please enter you age: " age
days=$[$age * 363]echo"That means you are over $day days old!"
运行结果
****** -p选项:允许直接指定提示符******
Please enter you age: 40
That means you are over days old!
代码解释
这段代码是一个简单的 Shell 脚本示例,用于计算年龄对应的天数。代码的解释如下:
1. `read-p"Please enter your age: " age`
- 这一行代码使用 `read` 命令提示用户输入年龄,并将输入值赋值给变量 `age`。
- `-p` 选项用于在终端上显示提示消息。
2. `days=$[ $age * 363]`
- 这一行代码将变量 `age` 的值乘以 363,并将结果赋值给变量 `days`。
- 这里假设一年有 363 天。可以根据实际情况进行调整,例如使用 365 天来近似计算。
3. `echo"That means you are over $days days old!"`
- 这一行代码使用 `echo` 命令在终端上打印一条消息,表示计算出的年龄对应的天数。
- 变量 `$days` 会被替换为计算结果。
上述代码通过使用 Shell 脚本中的 `read` 命令获取用户输入的年龄,并使用乘法运算符 `*` 计算年龄对应的天数。最后,使用 `echo` 命令打印出计算结果。
指定多个变量
echo"read命令会将提示符后输入的所有数据分配给单个变量。"echo"如果指定多个变量,则输入的每个数据值都会分配给变量列表中的下一个变量。"echo"如果变量数量不够,那么剩下的数据就全部分配给最后一个变量。"# using the read command for multiple variablesread-p"Enter your first and last name: " first last
echo"checking data for $last, $first ..."
运行结果
read命令会将提示符后输入的所有数据分配给单个变量。
如果指定多个变量,则输入的每个数据值都会分配给变量列表中的下一个变量。
如果变量数量不够,那么剩下的数据就全部分配给最后一个变量。
Enter your first and last name: li er gou zi
checking data for er gou zi, li ...
代码解释
这段代码是一个简单的 Shell 脚本示例,用于获取用户输入的名字,并输出一条检查数据的消息。代码的解释如下:
1. `read-p"Enter your first and last name: " first last`
- 这一行代码使用 `read` 命令提示用户输入名字,并将输入值赋值给变量 `first` 和 `last`。
- `-p` 选项用于在终端上显示提示消息。
2. `echo"checking data for $last, $first ..."`
- 这一行代码使用 `echo` 命令在终端上打印一条消息,表示正在检查数据。
- 变量 `$last` 和 `$first` 会被替换为用户输入的姓和名。
上述代码通过使用 Shell 脚本中的 `read` 命令获取用户输入的姓和名,并使用 `echo` 命令打印出检查数据的消息,其中包含用户输入的姓和名。这样可以实现与用户的简单交互,并以用户输入的数据为基础进行后续处理。
特殊环境变量REPLY
echo"也可以在read命令中不指定任何变量,这样read命令会将接收到的所有数据放在特殊环境变量$REPLY"# using the read command with REPLY variableread-p"Enter your name: "echoecho"hello $REPLY, welcome to my script."echo"REPLY环境变量包含输入的所有数据,可以在shell脚本中像其它变量一样使用。"
运行结果
也可以在read命令中不指定任何变量,这样read命令会将接收到的所有数据放在特殊环境变量
Enter your name: li er gou zi
hello li er gou zi, welcome to my script.
REPLY环境变量包含输入的所有数据,可以在shell脚本中像其它变量一样使用。