sh文件在windows下修改后无法执行的解决方法以及shell脚本中含中文乱码

时间:2023-02-07 18:47:40

sh文件在windows下修改后无法执行的解决方法

因为大部分人使用的操作系统是windows,同时也因为windows的可视化界面做得比较人性化,所以在修改linux的一个sh文件时,为了方便拉到window上用editplus编辑,上传回linux去后,这个SH却不能运行,错误提示是:: command not found。

原因是CR/LF问题,在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以linux下运行时就会报错找不到命令。

解决办法:

1. windows下使用UltraEdit编写shell脚本,编写完毕后,可通过下列方式避免因windows的回车符与LINUX的回车符不同而引起的command notfound错误和中文乱码错误。

1. 可设置文件 ->转换->DOS->UNIX.

2. 修改完毕后需要点击文件->设置另存为,编码方式选为UTF-8-BOM,保存(UNIX换行符-LF)。如下图所示。

sh文件在windows下修改后无法执行的解决方法以及shell脚本中含中文乱码