在Linux系统上运行现有的shell脚本,但会显示一条消息,确认文件不存在。
在这种情况下,常见原因是编写shell脚本时的系统与运行脚本的系统不匹配。 例如,如果在window系统上编写脚本,将其复制到Linux系统并运行,则会出现此问题。 这是因为在windows上编辑的. sh文件格式为dos格式,而在linux上只能运行unix格式的脚本。 在dos/window中按一次回车键,实际上输入的是“换行(CR )”和“换行(LF )”,而在Linux/unix中只按一次回车键就输入了“换行(LF )” 如果在运行Linux时找不到命令,则会报告错误,或者如果在github上使用windows系统下载源文件中包含shell脚本的文件,然后将其解压缩并复制到Linux系统中运行,则也是如此
解决办法:
在vi编辑器中显示文件的格式
在vi命令打开文件vi test.sh命令模式下使用:set ff命令时,文件格式如下
fileformat=dos使用vi/vim将文件格式更改为unix :set ff=unix或:set fileformat=unix,在:wq上保存并退出,然后重新运行脚本