Linux执行shell脚本提示文件找不到问题解决办法
2018-04-04 10:05
781 查看
当在Linux系统下执行本来存在的shell脚本文件,但是在执行时就是提示你文件不存在。
此时一般原因就是你shell脚本在编写时的系统跟你的执行脚本的系统不一致,比如你在window系统编写的脚本,当拷贝到Linux系统时就会遇见此问题。原因是在windows下编辑的.sh文件的格式为dos格式,而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。另外就是当你在github上使用windows系统下载源文件中包含shell脚本文件 时,当你解压并拷贝到Linux系统执行时,也可能发生此问题。
解决办法:
我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到文件的格式为
fileformat=dos
3.修改文件format为unix
使用vi/vim修改文件format
命令::set ff=unix
或者::set fileformat=unix
然后:wq保存退出,重新执行脚本就正常了
此时一般原因就是你shell脚本在编写时的系统跟你的执行脚本的系统不一致,比如你在window系统编写的脚本,当拷贝到Linux系统时就会遇见此问题。原因是在windows下编辑的.sh文件的格式为dos格式,而linux只能执行格式为unix格式的脚本。因为在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以修改的sh文件在每行都会多了一个CR,所以Linux下运行时就会报错找不到命令。另外就是当你在github上使用windows系统下载源文件中包含shell脚本文件 时,当你解压并拷贝到Linux系统执行时,也可能发生此问题。
解决办法:
我们可以通过vi编辑器来查看文件的format格式。步骤如下:
1.首先用vi命令打开文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到文件的格式为
fileformat=dos
3.修改文件format为unix
使用vi/vim修改文件format
命令::set ff=unix
或者::set fileformat=unix
然后:wq保存退出,重新执行脚本就正常了
相关文章推荐
- 解决Linux下shell脚本文件执行失败问题
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- Linux终端执行shell脚本,提示权限不够的解决办法
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- Linux终端执行shell脚本,提示权限不够的解决办法
- 运行shell脚本提示找不到该文件的错误,解决办法
- shell脚本中执行时提示“没有那个文件或目录”的解决办法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- MS SQL执行大脚本文件时,提示“内存不足”的解决办法
- MS SQL执行大脚本文件时,提示“内存不足”的解决办法
- 关于scanf与scanf_s的区别,以及用scanf编译出错并且提示找不到可执行文件.exe的解决办法。
- Linux执行.sh文件,提示No such file or directory的问题的解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法(转)
- Linux执行.sh文件,提示No such file or directory的问题的解决方法
- 在Linux下执行一个文件时候提示“权限不够”的解决办法
- linux使用flock文件锁解决脚本重复执行问题
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法