ループで5回繰り返すたびに、新しいファイルを生成するスクリプトを作成しようとしています。
#!/bin/bash
counter=1
timestamp="$(($(date +%s%N)/1000000))"
fileName="file"$timestamp".txt"
echo $fileName
while [ $counter -le 5 ]
do
echo $counter
((counter++))
timestamp="$(($(date +%s%N)/1000000))"
echo $counter
if [ $counter == 5 ]
then
echo "Creating new file"
fileName="file"$timestamp".txt"
counter=1
echo "${timestamp}" >> $fileName
sleep 2s
echo $counter
done
スクリプトはエラーを返します。
file1561151901170.txt
ruunn.sh: line 20: syntax error near unexpected token `done'
ruunn.sh: line 20: `done'
該当する条項を削除した場合if
:
#!/bin/bash
counter=1
timestamp="$(($(date +%s%N)/1000000))"
fileName="file"$timestamp".txt"
echo $fileName
while [ $counter -le 5 ]
do
echo $counter
((counter++))
timestamp="$(($(date +%s%N)/1000000))"
echo $counter
echo "${timestamp}" >> $fileName
sleep 2s
echo $counter
done
エラーは発生せず、出力は期待どおりです。
file1561152065603.txt
1
2
2
2
3
3
3
4
4
4
5
5
5
6
6
if
それでは、その条項に問題があるようですが?
if
このセクションがファイル生成プロセスに含まれるようにスクリプトを変更するにはどうすればよいですか?
ベストアンサー1
あなたはif
それの終わりを逃しましたfi
。