我想用简单的命令运行我的Python脚本,比如
opr -n 1 -o "op1 op2 op3 etc"
所以我创建了一个 .sh 脚本来:
cd
到包含脚本的文件夹(我想在脚本中使用相对路径)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。
正如 Yevhen Kuzmovych 所说,用引号将
"$@"
括起来可以解决问题