在windows下用notapad++写的shell脚本,拷贝到Linux下却无法正常工作,而且一碰到空白行就会报错:./place_category.sh: line 2: $’r’: command not found

这些都是由于脚本的格式不对造成的。

因为在windows下,换行符是rn ,在Linux下是 n,所以在Linux下,当遇到空白行时,实际上是当作有一个命令r去执行,当然会报错了。

而且我定义了一个数组,结果也无法能够当作数组形式的数据,完全还是当作字符串一样。

#!/bin/bash
filename=$1
#定义数组,学校类型的关键字。
schools="学院 校"  
array=($schools)
# echo ${array[1]}

解决问题的办法就是在Linux下,或者windows下的cygwin也可以,运行dos2unix file.sh 命令,把shell脚本格式进行转换后即可。