たとえば
#! /usr/bin/bash
i=0
while test $i -le 9
do
let j=i+1
echo $j > $i.dat
let i=i+1
done
を実行すると、
line9: syntax error: unexpected end of file
と出てしまいます。
基本的な構文をチェックしようと、以下を試しました。
#! /usr/bin/bash
for i in 1 2 3 4
do
echo $i
done
すると、今度は以下のエラーメッセージがでました。
line 3: syntax error near unexpected token '$'do¥r''`do
エラーの原因が分かりません。教えていただけませんでしょうか?
ちなみに私はcygwinもlinuxも初心者です。
上記シェルスクリプトはMeadowにて編集しました。
改行コードの問題だと思います。
Windowsでは、改行コードがCRLF(\r\n)となっていて、
Linux, cygwinではLF(\n)のみです。
そのため、\rを改行ではなく、文字として認識するためエラーが発生しているのではないでしょうか。
Cygwin memoなどが参考になると思います。
> line 3: syntax error near unexpected token '$'do¥r''`do
多分、改行コードがCR+LFの為です。
私のCygwin環境で改行コードをCR+LFにして実行すると同様の現象が再現できました。
作成したシェルスクリプトの改行コードをCR+LFではなくLFのみにししてください
改行コードをLFのみに変換したら流れました。
ありがとうございました。
dos2unixを試したところ、流れました。
ありがとうございました。