【发布时间】:2013-05-09 02:22:09
【问题描述】:
我的 python 脚本顶部有规范的 shebang。
#!/usr/bin/env python
但是,当我运行我的脚本时,我仍然经常想将无缓冲的输出导出到日志文件,所以我最终调用了:
$ python -u myscript.py &> myscript.out &
我可以像这样在 shebang 中嵌入 -u 选项吗...
#!/usr/bin/env python -u
并且只调用:
$ ./myscript.py &> myscript.out &
...仍然获得非缓冲?我怀疑这行不通,并想在尝试之前检查一下。有什么东西可以做到这一点吗?
【问题讨论】:
-
是的,你应该这样做。 “shebang”只是一个指向负责脚本的二进制应用程序的指针。如果没有,您可以创建一个别名
alias ppython="python -u"并使用#!/usr/bin/env ppython -
Torxed,你试过你的答案了吗?这种方法在 OSX 或 Linux 中不起作用。如果它适用于您的操作系统,请分享详细信息,因为这会很有趣。它在 OSX 或 Linux(或者我相信任何类型的 unix)中不起作用的原因是
env在路径上搜索可执行文件,而别名不在路径上。别名不能以同样的方式在 shebang 线上工作,原因与内置插件不能在 shebang 线上工作的原因相同。如果您的操作系统允许,请分享!
标签: python linux command-line