这是我的代码 -
#!/bin/bash
find FileFrom -type f -name "*" > prodRefresh.txt
filename="prodRefresh.txt"
while read -r line; do
name=$line
echo "Name read from file - $name"
done < $filename
尝试通过命令提示符执行时,出现以下错误 -
copyAndCreate.sh: line 7: syntax error near unexpected token `done'
copyAndCreate.sh: line 7: `done < $filename'
请帮我解决这个问题。谢谢
答案1
如果您的文件有 Windows 样式的行尾 ( \r\n
) 而不是常规的 Unix 样式 ( \n
),就会发生这种情况。您可能在 Windows 环境中编辑过此文件,并且更改了行尾,而额外的内容\r
会弄乱您的脚本。解决方案是修复行尾:
dos2unix copyAndCreate.sh
或者,如果您没有dos2unix
,请尝试:
sed -i 's/\r//' copyAndCreate.sh