不是有效的标识符.:read: `KEY
miniftpd.sh:行3: 未预期的符号 `$'in\r'' 附近有语法错误
'iniftpd.sh:行3: `case "$KEY" in
脚本语法是没有错误的,网上查询后应该是格式问题
解决办法:安装一个文本转化工具dos2unix。
各个平台使用的文本编码规范不同,导致了同一文本在不同平台中显示不同。
大家知道,windows中的文本文件的换行符是"\r\n",而linux中是"\n"。由于换行符的不同,造成多行文本显示混乱,有时候会发生一些莫名其妙的状况。
DOS格式的文本文件在Linux下,用较低版本的vi打开时行尾会显示‘^M’,而且很多命令都无法很好的处理这种格式的文件,如果是个shell脚本,而Unix格式的文本文件在Windows下用Notepad打开时会拼在一起显示。
为了解决这个问题,我们可以使用文本转化工具dos2unix,该工具是一个工具集,包括unix2dos、unix2mac、dos2unix、mac2unix四个工具。
这些工具不仅可以解决回车符号不统一的问题,还可以将文本所使用的编码进行转化,支持的编码包括ASCII、ISO-8859-1、UTF-8、UTF-16。
# yum install -y dos2unix
# dos2unix miniftpd.sh
dos2unix: converting file miniftpd.sh to Unix format ...
# bash miniftdp.sh
成功解决。