Bash如果elif和其他人在我的linux脚本中没有工作

时间:2016-10-29 14:27:18

标签: linux bash

我的问题是,以下代码会抛出错误,如

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

我的代码是:

#!/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

我的系统是使用Fish作为shell的Arch Linux,但我觉得这个deosn无所谓。

2 个答案:

答案 0 :(得分:1)

您需要[[]]周围的空格。

如果您阅读了Bash手册,您会发现[[]]保留字。与元字符(例如()不同,如果它们与其他普通字符相邻,则不会检测到它们。

答案 1 :(得分:0)

检查Bash条件语法(ex http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html)。 Bash在[和]之前和之后需要空格。此外 - [和]的加倍是不必要的