python - 为什么 python shebang 不接受三个以上的参数?

标签 python bash shebang

我正在尝试运行带有多个参数的Python脚本,选项卡警告,优化 和详细参数,分别为 -t-O-v
#!/usr/bin/python -t -O -v
这是当我尝试以这种方式运行它时出现的错误,./script.py 在 终端。

未知选项:- 用法:/usr/bin/python [选项] ... [-c cmd | -m 模组 |文件| -] [参数] ... 尝试 python -h' 以获取更多信息。

当我在 shebang 中最多有一个参数时,该脚本运行良好。 在 python shebang 中传递多个参数是错误的吗?
运行脚本 python -O -t -v script.py 在终端工作。

我猜这是一个 python 问题,因为我有一个 perl 脚本,其中包含以下内容 shebang #!/usr/bin/perl -w -t 并且运行正常。

我想出的唯一解决方法是创建一个 python_runner.sh 脚本来调用 具有三个参数的 python 解释器:

#!/bin/sh
python -O -t -v $1

最佳答案

假设该文件名为 test.py 并且以 shebang 开头:

#!/usr/bin/python -t -O -v

然后调用./test.py将相当于该命令

/usr/bin/python '-t -O -V' ./test.py

第一个空格之后的所有内容都被视为一个参数,这就是为什么您只能在 shebang 中提供一个参数。幸运的是,您可以将快捷方式链接到 -tOv

关于python - 为什么 python shebang 不接受三个以上的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17354951/

相关文章:

ruby - 需要不带 .rb 扩展名的 ruby​​ 文件?

python - 使用 python 中的 openpyxl 更新行和列

python - 如何抑制 QWebEngineView 错误的控制台输出?

arrays - 将多行字符串读入数组时出错?

python - shebang 无法在 WSL(Windows 子系统 Linux)上工作

python - 如何使 python 或 perl 脚本可移植到 linux 和 windows?

python - 制作正则表达式Python

Python进程没有加入

regex - 用 RegEx 和 awk 或 sed 将一些点 (.) 替换为逗号 (,)

带有 eval、变量和引号的 Bash 问题