我有几个运行良好的 python 脚本,但是如果我尝试从 bash 运行它,一个脚本(从今天早上开始)开始给我这个错误:
: No such file or directory
我可以通过执行 python script_name.py
来运行“损坏的”脚本,环顾四周后,我发现的一般想法是,也许我的 hashbang 行尾已更改(默默地)所以我通过 VI 中的 :set list
选项查看了一个工作脚本的行尾和一个损坏的脚本,如这个问题中所示 -> View line-endings in a text file
这两个文件似乎都使用相同的字符(a $
)结尾,所以我有点不知如何从这里开始。具体来说,如果 set list
不是正确的方法,如何实际“查看”行结尾。
PS:该脚本是可执行的,shebang 在那里,我说只有这 1 个脚本在周末之前工作正常,但从今天早上开始给我这个错误。
-- 编辑:--
通过 dos2unix
运行脚本确实让它再次工作,但我想知道有什么方法可以可视化以 VI(M) 结尾的行,或者为什么 Geany 以某种方式转换了以 VI(M) 结尾的行第一名(因为我从来没有在 dos/windows 系统上工作过)。
最佳答案
从上面的评论来看,您似乎有 dos 行结尾,因此没有正确处理 hashbang 行。
在 Vim 中 :set list
不显示行结束样式,因为该选项仅在读/写文件时使用。在内存中,行尾始终是行尾。用于文件的行结束样式保存在 Vim 每个文件选项中,奇怪地称为 fileformat
。
要从 Vim 查看/更改行结束样式,可以使用以下命令:
:set fileformat
:set ff
它将显示dos
或unix
。你当然想要 unix
;-).
要快速更改它,您可以使用以下方式保存文件:
:w ++ff=unix
或者如果你愿意:
:set ff=unix
然后正常保存文件。
所以查看所有详细信息只需执行 :help fileformat
、:help file-formats
和 :help fileformats
关于Python 脚本给出 `: No such file or directory`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43480581/