bash和linux内核中的线程限制?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (37)

我执行由zc.buildout自动生成的Python脚本,。我的问题是,shebang行(#!)太长,无论是bash(80个字符的限制)还是直接执行(一些Linux内核常量我都不知道)。

这是一个示例脚本来帮助您重现我的问题:

#!/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././././bin/bash
echo Hola!

如何配置bash或内核以允许更大的shebang行?

提问于
用户回答回答于

它在内核中受到限制BINPRM_BUF_SIZE...include/linux/binfmts.h...

用户回答回答于

如果不想重新编译内核以获得更长的Shebang行,可以编写一个包装器:

#!/bin/bash
script="$1" 
shebang=$(head -1 "$script")
interp=( ${shebang#\#!} )        # use an array in case a argument is there too
# now run it
exec "${interp[@]}" "$script"

然后运行脚本如下:wrapper.sh script.sh

扫码关注云+社区

领取腾讯云代金券