Linux 执行 Shell 脚本提示文件找不到问题解决办法

问题描述

当在 Linux 系统下执行本来存在的 Shell 脚本文件时,系统提示文件不存在。

原因分析

这个问题的主要原因是 Shell 脚本在编写时的系统与执行脚本的系统不一致,具体表现为:

  1. 在 Windows 系统编写的脚本,拷贝到 Linux 系统执行时会出现此问题
  2. 从 GitHub 下载包含 Shell 脚本的源文件,在 Windows 系统解压后拷贝到 Linux 系统执行时也可能发生此问题

这是因为:

  • Windows 系统下的文件格式为 DOS 格式
  • Linux 系统只能执行 UNIX 格式的脚本
  • DOS/Windows 下按回车键实际输入的是"回车 (CR)"和"换行 (LF)"
  • Linux/UNIX 下按回车键只输入"换行 (LF)"
  • 因此 Windows 格式的脚本在每行都会多一个 CR,导致 Linux 下运行时报错

解决方案

我们可以通过 vi 编辑器来查看和修改文件的格式,具体步骤如下:

1、使用 vi 命令打开文件:

vi test.sh

2、在 vi 命令模式中查看文件格式:

:set ff

此时会显示文件格式为:

fileformat=dos

3、修改文件格式为 UNIX:

:set ff=unix

或者:

:set fileformat=unix

4、保存并退出:

:wq

完成以上步骤后,重新执行脚本即可正常运行。

参考:Linux 执行 shell 脚本提示文件找不到问题解决办法

posted @ 2025-05-17 16:54  Higurashi-kagome  阅读(262)  评论(0)    收藏  举报