将空格分隔的参数从 .sh 传递到 python

问题描述 投票:0回答:1

我想用简单的命令运行我的Python脚本,比如

opr -n 1 -o "op1 op2 op3 etc"

所以我创建了一个 .sh 脚本来:

  1. 激活 python venv
  2. cd
    到包含脚本的文件夹(我想在脚本中使用相对路径)
  3. 运行类似
    python3 path_to_my_python_script $@
    的命令(
    <-
    使用
    $@
    在此处传递所有参数)

然后我将此行添加到我的

~/.bash_profile

alias opr=path_to_my_sh

但是当我尝试通过 sh 脚本传递空格分隔的参数行时:

opr -n 2 -o "op1 op2"

它说

error: unrecognized arguments: op2

我的 python 脚本中的打印告诉它接收参数作为分隔列表,如下所示:

[path_to_python_script, '-n', '2', '-o', 'op1', 'op2']

如果我直接这样做

python3 path_to_python_script -n 2 -o "op1 op2"

正如我所料,一切顺利。

那么如何通过 .sh 脚本传递空格分隔的参数,或者也许有更好的解决方案?

顺便说一句,我正在使用 macos。

python bash arguments
1个回答
0
投票

正如 Yevhen Kuzmovych 所说,用引号将

"$@"
括起来可以解决问题

© www.soinside.com 2019 - 2024. All rights reserved.