【发布时间】:2020-09-08 00:43:29
【问题描述】:
我是一名计算机科学专业的学生,目前正在从事一项分解为多个任务的 Linux 作业。
我正在处理的当前任务要求我提示用户输入他们的姓名和一天中的小时,然后使用 if 语句来评估输入并输出适当的消息我还必须查找文件和如果不存在,则输出适当的消息,我在下面插入了我的尝试。
#!/bin/bash
echo "Enter your name"
read name
echo "What hour is it?"
read hour
echo "$name $hour"
if ["$hour" -gt 23]
then
echo "That hour is not correct"
fi
if ["$hour" -ge 0 -o "$hour" -le 7]
then
echo "It's very early $name, you should be asleep"
fi
if ["$hour" -ge 8 -o "$hour" -le 22]
then
echo "Good day $name"
fi
if ["$hour" -eq 23]
then
echo "Time for bed $name"
fi
if [-f "fandmf13.txt"]
then
cat fandmf13.txt
else
echo "File not found"
fi
当我执行此代码时,我收到以下错误消息:
./fandmf4.sh: line 9: [8: command not found
./fandmf4.sh: line 14: [8: command not found
./fandmf4.sh: line 19: [8: command not found
./fandmf4.sh: line 24: [8: command not found
./fandmf4.sh: line 29: [-f: command not found
File not found
如果有人能给我一些关于我哪里出错的指示或提示,那就太好了
【问题讨论】:
-
先检查shellcheck.net上的代码
-
[]前面需要加空格 -
这能回答你的问题吗? if, elif, else statement issues in Bash
-
@DigvijayS 啊谢谢,不知道 shellcheck.net 我一定会去看看!
-
你需要在[和-f之间有一个空格,否则bash正在寻找一个名为“[-f”的命令
标签: bash