我正在尝试编写一个 bash 脚本,它将创建一定数量的文件,这些文件将传递给一个参数,并用相关信息填充该文件。但是,由于某种原因,我无法让它正常工作,谷歌搜索什么也没找到。
我希望它创建如下文件:文件名:
Prob_3_ch_17.cpp
填写如下:
/*
User: Johnny Smith
Prob: 3
Output:
*/
其中第一个命令行参数是章节号。第二个是起始编号,第三个是结束编号。因此,如果运行以下内容
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'
我用谷歌搜索并发现其他人也有同样的问题,但我并不完全理解解决方案中的含义。有人可以帮帮我吗?我不是最擅长编写 shell 脚本,我正在尝试通过制作这样的脚本来学习。
先谢谢了。