我的问题是,以下代码会抛出错误,如
./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无所谓。
答案 0 :(得分:1)
您需要[[
和]]
周围的空格。
如果您阅读了Bash手册,您会发现[[
和]]
是保留字。与元字符(例如(
和)
不同,如果它们与其他普通字符相邻,则不会检测到它们。
答案 1 :(得分:0)
检查Bash条件语法(ex http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-6.html)。 Bash在[和]之前和之后需要空格。此外 - [和]的加倍是不必要的