相关疑难解决方法(0)

禁用输出缓冲

Python的解释器默认启用输出缓冲sys.stdout吗?

如果答案是肯定的,那么禁用它的所有方法是什么?

建议到目前为止:

  1. 使用-u命令行开关
  2. 包装sys.stdout在每次写入后刷新的对象
  3. 设置PYTHONUNBUFFEREDenv var
  4. sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

是否有任何其他方式来设置一些全局标志sys/ sys.stdout程序执行过程中?

python stdout buffered

487
推荐指数
10
解决办法
25万
查看次数

"#!/ usr/bin/env bash"和"#!/ usr/bin/bash"有什么区别?

bash脚本的标题中,这两个语句之间的区别是什么?

  1. #!/usr/bin/env bash

  2. #!/usr/bin/bash

当我试图看到env手册页时,我得到了这个定义:

 env - run a program in a modified environment
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

unix linux bash shell shebang

319
推荐指数
4
解决办法
13万
查看次数

如何使用shebang(即#!)为awk使用多个参数?

我想用shebang 执行一个gawk脚本--re-interval."幼稚"的方法

#!/usr/bin/gawk --re-interval -f
... awk script goes here
Run Code Online (Sandbox Code Playgroud)

不起作用,因为gawk是用第一个参数调用的"--re-interval -f"(不是在空白处分开),它不明白.有解决方法吗?

当然你可以不直接调用gawk,而是将它包装成一个分割第一个参数的shell脚本,或者创建一个shell脚本,然后调用gawk并将脚本放到另一个文件中,但我想知道是否有某种方法可以做这在一个文件中.

shebang行的行为因系统而异 - 至少在Cygwin中它不会通过空格分割参数.我只关心如何在一个行为类似的系统上做到这一点; 该脚本不是便携式的.

unix shell awk shebang gawk

114
推荐指数
5
解决办法
3万
查看次数

python中的无缓冲的stdout(如在python -u中)来自程序内部

可能重复:
Python输出缓冲

有没有办法从我的代码中获得运行python -u的效果?如果失败了,我的程序可以检查它是否在-u模式下运行并退出并显示错误消息,如果没有?这是在linux上(ubuntu 8.10服务器)

python

53
推荐指数
4
解决办法
5万
查看次数

如何在正常调用时让python脚本调用"python -i"?

我有一个我喜欢运行的python脚本python -i script.py,它运行脚本然后进入交互模式,以便我可以使用结果.

是否可以让脚本本身调用此选项,以便我可以运行python script.py并且脚本在运行后将进入交互模式?

当然,我可以简单地添加-i,或者如果需要付出太多努力,我可以编写一个shell脚本来调用它.

python python-interactive

19
推荐指数
3
解决办法
1070
查看次数

我可以在shebang线上使用带/ bin/env的perl开关吗?

我想继续perl -w使用env.这在命令行上运行正常:

$ /bin/env perl -we 'print "Hello, world!\n"'
Hello, world!
Run Code Online (Sandbox Code Playgroud)

但它不适用于脚本中的shebang行:

#!/bin/env perl -w
print "Hello, world!\n";
Run Code Online (Sandbox Code Playgroud)

这是错误:

/bin/env: perl -w: No such file or directory
Run Code Online (Sandbox Code Playgroud)

显然env不明白-w我要传递的旗帜perl.怎么了?

scripting perl command-line system

17
推荐指数
3
解决办法
4061
查看次数

Why does this snippet with a shebang #!/bin/sh and exec python inside 4 single quotes work?

I'm trying to understand one of the answers to this question:

Cannot pass an argument to python with "#!/usr/bin/env python"

#!/bin/sh
''''exec python -u -- "$0" ${1+"$@"} # '''
Run Code Online (Sandbox Code Playgroud)

This works well, but I do not understand why it works with four ticks at the beginning of that line rather than three.

In addition, why the hash near the end of that string?

python bash arguments shebang sh

15
推荐指数
1
解决办法
2878
查看次数

Git:如何处理不同的shebang

人们如何处理本地和远程之间不同的shebang?

例如,我的本地python是/ usr/bin/python,而我的web主机是〜/ local/bin/python上专用的python.首席开发人员可能在/ usr/bin/ruby​​上有ruby,而我的是/ usr/local/bin/ruby​​.

我手动编辑shebang,但随后git将其标记为更改.理想情况下,我希望git忽略文件的第一行,或者忽略文件中行的正则表达式匹配.

在我看来,这一定是一个非常普遍的问题,但我找不到任何提及它.

我使用git,但我不会在任何方面称自己为专家.

git shebang

11
推荐指数
2
解决办法
1182
查看次数

如何在启用了环境和警告的情况下运行Ruby脚本?

我更喜欢使用哈希爆炸行来调用Ruby脚本,使用#!/bin/env ruby它可以让我使用本地Ruby安装而不与系统Ruby安装冲突。但是如何在Linux系统上启用警告?我的测试脚本:

#!/usr/bin/env ruby -w

FOO
Run Code Online (Sandbox Code Playgroud)

在Mac上,我得到:

maasha@mel:~$ ./test.rb
./test.rb:3: warning: possibly useless use of a constant in void context
./test.rb:3:in `<main>': uninitialized constant FOO (NameError)
Run Code Online (Sandbox Code Playgroud)

在Linux上,我得到:

maasha@orsted:~$ ./test.rb
/usr/bin/env: ruby -w: No such file or directory
Run Code Online (Sandbox Code Playgroud)

ruby warnings

5
推荐指数
1
解决办法
1189
查看次数

如何使用--harmony选项使nodejs文件可执行

一般来说,我使一个nodejs文件可以直接用下面的样式执行

#/usr/bin/env node
nodejs code here
Run Code Online (Sandbox Code Playgroud)

但是,当节点0.11支持生成器时,我尝试下面

#/usr/bin/env node --harmony
nodejs code here
Run Code Online (Sandbox Code Playgroud)

它输出

/usr/bin/env: "node --harmony": No such file or directory
Run Code Online (Sandbox Code Playgroud)

linux node.js

5
推荐指数
1
解决办法
1369
查看次数

make#!/ usr/bin/env python -u shebang portable

我有这个非便携式的shebang:

#!/usr/bin/env python -u
Run Code Online (Sandbox Code Playgroud)

它不可移植,因为python -u它作为一个单独的arg馈送到env我的系统上.

挑战:让这个shebang便携式只改变shebang - 也就是说一个单线.

换句话说,没有解决方案

python shebang

-1
推荐指数
1
解决办法
804
查看次数