![有人可以告诉我我做错了什么/如何修复这个 shell 脚本吗?](https://linux22.com/image/106637/%E6%9C%89%E4%BA%BA%E5%8F%AF%E4%BB%A5%E5%91%8A%E8%AF%89%E6%88%91%E6%88%91%E5%81%9A%E9%94%99%E4%BA%86%E4%BB%80%E4%B9%88%2F%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%E8%BF%99%E4%B8%AA%20shell%20%E8%84%9A%E6%9C%AC%E5%90%97%EF%BC%9F.png)
我想要实现的是,如果名称是“Instructor”,它会回复“Good Afternoon, Instructor”,如果是其他名称,它将回复“Good Evening, 'name'”并将结果发送到 file.txt 文件。
#!/bin/bash
read -p "what's your name?"
if [ "$name" = "Instructor" ]
then
echo "Good Afternoon, Instructor"
else
echo "good Evening, "$name" >> file.txt
fi
答案1
您不是从用户那里读取名称,而是使用name
和 then NAME
(这是两个不同的变量)。另外,$name
应该在 if 语句中使用双引号。
要将用户的输入读入变量name
,请使用read
:
read name
如果您愿意bash
,还可以使用read
来显示自定义提示:
echo 'Hello!'
read -p "What's your name? > " name
如果你不给出read
变量的名称,文本将进入REPLY
默认调用的变量。