【问题标题】:Passing arguments to python interpreter from bash script从 bash 脚本将参数传递给 python 解释器
【发布时间】:2013-09-01 21:07:39
【问题描述】:

抱歉,这是一个非常新手的问题,但我似乎无法让它发挥作用。

在我的 bash 脚本中,我有

python=/path/to/python
script=$1
exec $python $script "$@"

我如何将参数传递给 python 解释器,比如 -O?我试过了:

执行 $python -O $script "$@"

并尝试将 python 变量更改为“/path/to/python -O”,以及将 -O 传递给脚本,但是每次我执行这三个中的任何一个时,我都会收到模块的导入错误,当我删除了 -O。

所以我的问题是如何告诉 python 解释器使用 bash 脚本中的 -O 参数运行?

谢谢。

【问题讨论】:

  • 虽然您的脚本似乎没有解决任何有用的问题(并且缺少shift),但显而易见且正确的解决方案是您已经尝试过的,即python -O scriptname.py "$@"。找出为什么这些模块不能与 -O 一起使用。在此处发布错误消息,或者最好发布一个新问题 - 或许删除这个问题 - 似乎是前进的道路。

标签: python linux bash


【解决方案1】:

您应该将位置参数向左移动 1,以排除包含在第一个参数中的脚本到 python 的参数中。

#!/bin/sh
python=/path/to/python
script=$1; shift
exec "$python" -O "$script" "$@"

然后以bash script.sh your_python_script arg1 arg2 ...sh script.sh your_python_script arg1 arg2 ... 运行脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 2015-05-13
    • 1970-01-01
    • 2019-12-20
    • 2016-09-15
    • 2021-11-18
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多