Nik*_*s R 43 python macos env shebang osx-mountain-lion
我的Python脚本beak包含以下shebang:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时$ ./beak,我得到了
env: python\r: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我之前从存储库中提取了此脚本.这可能是什么原因?
ccp*_*zza 45
在vim或vi中打开文件,并管理以下命令:
:set ff=unix
Run Code Online (Sandbox Code Playgroud)
保存并退出:
:wq
Run Code Online (Sandbox Code Playgroud)
完成!
ff代表文件格式,并且可以接受unix(\n),dos(\r\n)和mac(\r)的值(仅用于预先的英特尔mac,在现代的mac上使用unix)..
要阅读有关该ff命令的更多信息:
:help ff
Run Code Online (Sandbox Code Playgroud)
:wq代表W rite和Q uit,更快的等价是Shift+ zz(即按住Shift然后按z两次).
必须在命令模式下使用这两个命令.
没有必要在vim中实际打开文件.可以直接从命令行进行修改:
vi +':wq ++ff=unix' file_with_dos_linebreaks.py
Run Code Online (Sandbox Code Playgroud)
要处理多个*.py文件:
for file in *.py ; do
vi +':w ++ff=unix' +':q' ${file}
done
Run Code Online (Sandbox Code Playgroud)
fal*_*tru 33
该脚本包含CR字符.shell将这些CR字符解释为参数.
解决方案:使用以下脚本从脚本中删除CR字符.
with open('beak', 'rb+') as f:
content = f.read()
f.seek(0)
f.write(content.replace(b'\r', b''))
f.truncate()
Run Code Online (Sandbox Code Playgroud)
Ron*_*ndo 19
您可以将结尾的行转换为*nix友好的行
dos2unix beak
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38365 次 |
| 最近记录: |