簡體   English   中英

Bash for循環與括號工作在Linux中,而不是在Git Bash中

[英]Bash for loop with Parenthesis working in linux and not in Git Bash

我有一個簡單的bash循環,在Linux中工作正常,而不是在Windows中基於cygwin的本地Git Bash中
我有這個for循環:

  #!/bin/bash

    for (i=2; i<4; ++i); do
        echo "dddd"
    done

在Git Bash中,它給了我這個錯誤:

./test.sh: line 5: syntax error near unexpected token `newline'
./test.sh: line 5: ` done

linux版本的bash

Amazon Linux版本20xx.0x可用。 [user1〜] $ bash --version GNU bash,版本4.2.46(2)-發行版(x86_64-redhat-linux-gnu)版權所有(C)2011自由軟件基金會,公司。許可證GPLv3 +:GNU GPL版本3或更高版本

Git Bash版本

GNU bash,版本4.3.46(2)-發行版(i686-pc-msys)版權所有(C)2013 Free Software Foundation,Inc.許可證GPLv3 +:GNU GPL版本3或更高版本http://gnu.org/licenses/gpl html的

這是免費軟件; 您可以自由更改和重新分發它。 在法律允許的范圍內,沒有任何擔保。

需要兩個括號:

#!/bin/bash

for ((i=2; i<4; ++i)); do
    echo "dddd"
done

將行尾從CRLF更改為LF。 有很多方法可以做到這一點。 您最喜歡的編輯器可以選擇更改行尾,並在保存文件時保留現有的行尾。

不過,最簡單的方法是使用dos2unix 要就地轉換,請使用dos2unix bashtest.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM