2016-10-29 79 views
0

我的問題是,下面的代碼拋出這樣的錯誤猛砸如果elif和else從句

./sync.sh: Line 25: Syntaxerror at `then [translated to english] 

我的代碼不會因爲它應該工作在我的Linux腳本是:

#!/bin/bash 

[...] 

if [["$input1" == 1 && "$input2" == 1]] 
    then 
     #local herunterladen 
     echo "Es wird nun local herunterladen" 
    elif[["$input1" == 1 && "$input2" == 2]] 
    then 
     #local hochladen 
     echo "Es wird nun local hochgeladen" 
    elif [["$input1" == 2 && "$input2" == 1]] 
    then 
     #online herunterladen 
     echo "Es wird nun online herunterladen" 
    elif[["$input2" == 2 && "$input2" == 2]] 
    then 
     #online hochladen 
     echo "Es wird nun online hochgeladen" 
    else 
     echo "${red}Du hast einmal nicht ${green}1${red} oder ${green}2${red} gedrückt!${reset}" 
fi 

我的系統是用Linux作爲shell的Arch Linux,但我認爲這並不重要。

+1

運行它[shellcheck](http://www.shellcheck.net/) –

回答

1

您需要[[]]附近的空格。

如果您閱讀Bash手冊,您會發現[[]]保留字。與元字符(如())不同,如果它們緊挨着其他普通字符,則不會被檢測到。