报错
Linux系统下执行.sh文件,提示No such file or directory:
注意:此处是以.sh 的shell脚本为例,其他如txt格式的文本文件出现无法读取情况时,也要考虑是不是编码格式的原因。
解决方法
原因
在windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示No such file or directory错误,那么一般是文件格式是dos格式的缘故,改成unix 格式即可。一般有如下几种修改办法。
具体步骤
法1
在Windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File–>Conversions–>DOS->UNIX即可。
法2
- 用vim打开该sh文件,输入:
:set ff
回车,显示fileformat=dos,说明是dos格式
2. 重新设置下文件格式:
:set ff=unix
- 保存退出:
:wq
再执行,就可以了
有关vim的操作指令,可参考 链接
法3
也可在Linux中转换:
首先要确保文件有可执行权限
#chmod u+x filename
然后修改文件格式
#vi filename
三种方法都可以方便快速的解决关于Linux执行.sh文件,提示No such file or directory这个问题了。
所以,程序尽量在Linux下编写,迁移时,也许会少很多问题。