运行bash脚本中的if语句时出错

时间:2019-02-10 02:28:59

标签: bash loops if-statement nested-loops

这里我写了一个基本的bash脚本。我希望if块组织将输出写入何处。我编写条件逻辑的方式是否存在语法错误?我得到的错误是我有一个if或elif语句的每一行。我相信这可能与-eq比较运算符有关,或者可能与之缺少或括号有关。

这是我遇到的错误的一个示例(最后一个错误发生在终端中;最接近底部):

./ lit:第17行:[2:找不到命令

./ lit:第20行:[2:找不到命令

./ lit:第23行:[2:找不到命令

./ lit:第28行:[3:未找到命令

./ lit:第31行:[3:未找到命令

./ lit:第34行:[3:找不到命令

./ lit:第37行:[3:找不到命令

./ lit:第42行:[3:找不到命令

./ lit:第45行:[3:找不到命令

./ lit:第48行:[3:找不到命令

./ lit:第51行:[3:找不到命令

./ lit:第56行:[3:未找到命令

./ lit:第59行:[3:未找到命令

./ lit:第62行:[3:未找到命令

./ lit:第65行:[3:未找到命令

for i in {0..2};
do
    for j in {0..3};
    do
        for k in {0..3}
        do
            for l in {0..3}
            do

                START=$(date +%s.%N)
                  #some command here
                END=$(date +%s.%N)
                DIFF=$(echo "$END - $START" | bc)

                if ["$i" -eq "0"];
                then
                    echo "test$i$j$k$l $DIFF" >> repeatSample.txt;
                elif ["$i" -eq "1"]
                then 
                    echo "test$i$j$k$l $DIFF" >> writeZeroes.txt
                elif ["$i" -eq "2"]
                then
                    echo "test$i$j$k$l $DIFF" >> repeatPacket.txt
                fi

                if [$j -eq 0]
                then
                    echo "test$i$j$k$l $DIFF" >> byte15.txt
                elif [$j -eq 1]
                then
                    echo "test$i$j$k$l $DIFF" >> byte100.txt
                elif [$j -eq 2]
                then
                    echo "test$i$j$k$l $DIFF" >> byte500.txt
                elif [$j -eq 3]
                then
                    echo "test$i$j$k$l $DIFF" >> byte1000.txt
                fi

                if [$k -eq 0]
                then
                    echo "test$i$j$k$l $DIFF" >> loss10.txt
                elif [$k -eq 1]
                then
                    echo "test$i$j$k$l $DIFF" >> loss22.txt
                elif [$k -eq 2]
                then
                    echo "test$i$j$k$l $DIFF" >> loss37.txt
                elif [$k -eq 3]
                then
                    echo "test$i$j$k$l $DIFF" >> loss50.txt
                fi

                if [$l -eq 0]
                then
                    echo "test$i$j$k$l $DIFF" >> pinkpanth.txt
                elif [$l -eq 1]
                then
                    echo "test$i$j$k$l $DIFF" >> poeee.txt
                elif [$l -eq 2]
                then
                    echo "test$i$j$k$l $DIFF" >> dooors.txt
                elif [$l -eq 3]
                then
                    echo "test$i$j$k$l $DIFF" >> simplehead.txt
                fi

            done
        done
    done
done

0 个答案:

没有答案