shell脚本在windows上可以执行,Linux上面不能执行是因为复制粘贴,然后有一些看不见的特殊字符。 cat -v 命令 在Linux执行cat -v 可以看到有很多^M的字符,这个是windows的换行,所以在Linux中执行脚本会失败。而在windows中可以识别这些换行,所以可以正常执行脚本。 解决办法 vi 文件名 命令模式下输入: :set fileformat=unix :w 然后重新cat -v一下看到^M都没有了,这样脚本就可以在Linux中运行了