私はこの Bash/Shell に慣れていないので、ユニ割り当てのためにネットワーク分析を行う必要があります。
単純なループを実行しようとしているだけですが、2時間のGoogleクロールにもかかわらず修正できなかった奇妙なエラーが発生しました:
#!/bin/bash
x=1
while [ $x -le 5 ]
do
echo "Welcome $x times"
x=$(( $x + 1 ))
done
次の構文を使用して for ループを使用してみました。
#!/bin/bash
for i in {1..5}
do
echo "Welcome $i times"
done
サーバーに最初のスクリプトを配置するたびに、次のメッセージが表示されます。
./temp.sh: line 8: syntax error: unexpected end of file
このファイルを実行する前に、次のコマンドを実行して権限を追加し、ファイルを実行可能にしました。
ls -l temp.sh
chmod +x temp.sh
補足として、ループに関する次のスタックオーバーフローの質問を見つけ、「修正されたコード」をコピーして同じエラーが発生しました: Looping a Bash Shell Script
バージョン 4 以降を実行しており、Windows 7 で G-VIM をテキスト エディターとして使用しています。
これを自分で解決することができました:
私の評判はまだ低すぎるので、現時点では自分で答えることができないので、人々が時間を無駄にするのを止めるために、ここで修正しました:
わかりました、私はこれをなんとか修正したので、周りを見回す他の人のためにこれを残します.
私の問題は、サーバーへの接続に FileZilla を使用していたことです。WinVi または G-Vim を使用してファイルを作成していたにもかかわらず、Windows を実行しているサーバーにファイルを転送したときに、FileZilla がファイルの末尾に何らかの形式の余分な文字を追加していたようです。
接続エージェントとして WinSCP に切り替えて試してみたところ、問題なく動作しました。
他の回答ありがとうございます。
ルイス