【问题标题】:Unix Shell Scripting ifelse errorUnix Shell 脚本 ifelse 错误
【发布时间】:2016-03-22 12:36:21
【问题描述】:

请帮忙,此脚本在执行时出现以下错误:

然后出乎意料 未找到 Str1 未找到 Str2

#!/bin/ksh 

echo ">>Please press y or n :"
read Str

Str1="y"
Str2="n"
if[[$Str1 == $Str]];then
echo "You pressed Y."
elif[[$Str2 == $Str]]; then
echo "You pressed N."
else
echo "Error."
fi

【问题讨论】:

  • 错误 1:语法错误:'then' 意外错误 2:'Str1'未找到错误 3:'Str2'未找到
  • 使用shellcheck.net - 我真的希望我能找到一个像样的副本来解决这个与[ 周围缺少空格有关的常见问题。

标签: shell unix if-statement scripting


【解决方案1】:

您缺少空格。

#!/bin/ksh 

echo ">>Please press y or n :"
read Str

Str1="y"
Str2="n"
if [[ $Str1 == $Str ]]; then
    echo "You pressed Y."
elif [[ $Str2 == $Str ]]; then
    echo "You pressed N."
else
    echo "Error."
fi

【讨论】: