【问题标题】:Bash Script If statements comparing user input, command not found [duplicate]Bash Script If语句比较用户输入,找不到命令[重复]
【发布时间】: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


【解决方案1】:

你应该检查逻辑,但你可以试试这个:

if[[ 之间缺少一个空格,[[ 和其中的变量之间也需要一个空格

表达式1 && 表达式2

如果表达式 1 和表达式 2 都为真,则为真。

表达式1 ||表达式2

如果表达式 1 或表达式 2 为真,则为真。

#!/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 || "$hour" -le 7 ]]
then
  echo "It's very early ${name}, you should be asleep"
fi

if [[ "$hour" -ge 8 || "$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

【讨论】:

    猜你喜欢
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2010-09-13
    • 2016-08-09
    • 2016-04-04
    相关资源
    最近更新 更多