Bash语法错误:带有for循环的意外文件结尾

时间:2013-05-20 16:49:17

标签: shell

#!/bin/bash

cp ./Source/* ./Working/ 2> /dev/null
echo "Done"


for filename in *.zip;do unzip “$filename”;
 done

在上面的脚本中,我正在尝试将所有文​​件从源文件复制到工作文件并解压缩工作文件夹中的文件,但我正在查找错误unexpected end of file

2 个答案:

答案 0 :(得分:3)

看起来"$filename"中有不同类型的双引号,请确保两者都是ASCII双引号(十进制34,十六进制22)。尝试使用

分析您的脚本
 od -c scriptname

答案 1 :(得分:0)

这里最多有两个问题。首先,你的报价不是标准的。您可能会复制从MS Word粘贴的内容或自动转换引号的内容。

您可能遇到的第二个问题是您的文件名中可能包含空格。如果您不期望它,这可能会导致脚本中的各种问题。有一些解决方法,但最简单的可能是更改IFS:

OLDIFS=$IFS
IFS="$(echo -e '\t\n')" # get rid of the space character in the IFS
... do stuff ...
IFS=$OLDIFS