引数に渡される特定の数のファイルを作成し、そのファイルに関連情報を入力するbashスクリプトを作成しようとしています。しかし、何らかの理由で正しく動作させることができず、グーグルで検索しても何も見つかりませんでした。
次のようなファイルを作成したい: FileName:
Prob_3_ch_17.cpp
次のように入力します。
/*
User: Johnny Smith
Prob: 3
Output:
*/
最初のコマンド ライン引数は章番号です。2 番目が開始番号で、3 番目が終了番号です。したがって、次が実行された場合
sh ../FileMaker.sh 17 1 10
第 17 章用に、それぞれ適切なデータと適切なファイル名で満たされた 10 個のファイルが作成されます。これが私が思いついたスクリプトです。
#!/bin/bash
# Syntax:
# $1 = Chapter Number
# $2 = Starting Number
# $3 = Ending Number
CHAPTER=$1
FIRST=$2
LAST=$3
U_NAME="Johnny Smith"
# Name: Prob_$NUMBER_Ch_$1.cpp
for ((NUMBER=$FIRST; $NUMBER<=$LAST; $NUMBER++));
do
if [ -e "Prob_$NUMBER_Ch_$CHAPTER.cpp" ]; then
echo "File Prob_$NUMBER_Ch_$CHAPTER.cpp already exists!"
else
echo "/* \n User: $U_NAME \n Problem: $NUMBER \n Output: \n */" >> "Prob_$NUMBER_Ch_$CHAPTER.cpp"
done
ただし、実行されません。次のエラーが表示されます。
../FileMaker.sh: line 21: syntax error near unexpected token `done'
../FileMaker.sh: line 21: `done'
私はグーグルで調べて、他の人が同じ問題を抱えていることを発見しましたが、解決策の意味を完全には理解していませんでした. 誰か助けてくれませんか?私はシェル スクリプトが得意ではなく、このようなスクリプトを作成することで学習しようとしています。
ありがとうございます。