【问题标题】:"If fi" within a "case esac"“case esac”中的“If fi”
【发布时间】:2013-10-20 08:41:37
【问题描述】:

我尝试使用下面的代码:

read choice
case $choice in 
"1")    less /var/log/messages
    if [$? -ne 0]; then 
        less /var/log/syslog
    fi
    ;;
etc
etc
etc
*) echo "Please enter a choice between 1 and 20";;
esac

当执行 ./myScript.sh 我得到了这个:

./myScript.sh: line 4: [1: command not found

我找不到问题!

【问题讨论】:

  • 你需要将[$?以及0]分开。
  • 是的,就是这样。谢谢。

标签: bash if-statement case


【解决方案1】:

在您的if 语句中,在[] 之前放置空格,如

if [ $? -ne 0 ]; then 

【讨论】:

  • 谢谢@Rohan。就是你说的那个空间。
【解决方案2】:

在 (4, 8) 和 (4, 16) 是问题所在。在 (4, 7) 和 (4, 8) 之间放置一个空格,在 (4, 15) 和 (4, 16) 之间放置另一个空格。这些有序对就像 (line, column)。

在第 4 行这样做:

    if [ $? -ne 0 ]; then

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多