"if if"在"case esac"中

4m1*_*4j1 2 bash if-statement case

我试着使用下面的代码:

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
Run Code Online (Sandbox Code Playgroud)

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

./myScript.sh: line 4: [1: command not found
Run Code Online (Sandbox Code Playgroud)

我找不到问题!

Roh*_*han 7

在你的if陈述中,将空格放在[之前和之后],如

if [ $? -ne 0 ]; then 
Run Code Online (Sandbox Code Playgroud)