bash中的语法错误" if ... elif"脚本

时间:2013-11-01 18:50:45

标签: linux bash if-statement syntax cp

我正在尝试构建我的第一个脚本,以便在bash中使用“if”语句。它结合了我用于创建文件的多个副本的两个脚本,一个名称以数字形式附加,另一个使用A-Z。

我尝试了很多更改,但如果没有错误消息,我绝对无法让它工作

  

./ cpmany.sh:18行:意外标记elif' ./cpmany.sh: line 18: elif附近的语法错误[$ alpha =“A”];然后“

这是我原来的非工作代码:

#!/bin/bash
set -x
echo "input file source"
read INPUT
echo  "Alphabetical or Numerical"
read alpha
if [ $alpha=="N" ]; then
echo "start of range"
read x
echo "end of range"
read y
    for ((i=x; i<=y; i++)); do cp "$INPUT" "$INPUT$i";
elif [ $alpha=="A" ]; then
    for i in {a..z}
    do
    echo "$i"
    cp "$INPUT" "$INPUT$i";
else
    echo "error in selection";
fi
exit 0

这是我当前的代码,在if [$ alpha =“N”]中添加了“完成”和空格

#!/bin/bash
echo "input file source"
read INPUT
echo  "Alphabetical or Numerical"
read alpha


if [ $alpha = "N" ]; then
echo "start of range"
read x
echo "end of range"
read y

    for ((i=x; i<=y; i++)); do cp "$INPUT" "$INPUT$i";
done
elif [ $alpha = "A" ]; then
    for i in {a..z};
    do
    echo "$i"
    cp "$INPUT" "$INPUT$i"; done
else
    echo "error in selection";
fi
done
exit 0

1 个答案:

答案 0 :(得分:3)

您忘记使用for关闭done循环。