将具有多个子选项的命令行选项传递给python脚本 - shell脚本

时间:2016-06-14 00:34:50

标签: python linux bash shell

我有以下选择:

python runscript.py -O start -a "-a "\"-o \\\"-f/dev/sda1 -b256k -Q8\\\" -l test -p maim\""

runscript需要-O-a,然后将剩余的内容发送到shell脚本1

shell脚本1采用选项-a,并应将剩余的\"-o \\\"-f/dev/sda1 -b256k -Q8\\\" -l test -p maim\"视为shell脚本2的参数

shell脚本2接受参数-o-l-p

任何人都可以帮我解决这种情况。我被困在shell脚本1考虑的地方,并开始解析参数-o。

有简单的方法吗?应该维护调用2的shell脚本1的层次结构。

此致 西

2 个答案:

答案 0 :(得分:0)

你给的命令有点令人困惑。我正在概括这个场景。这是你的意思吗?

python runscript.py -p1 v1 -p2 v2 -p3 v3

  1. runscript.py将采用所有给定的参数。
  2. 并使用选定的参数调用shellsript_1.sh-p2 v2
  3. 然后使用剩余的参数shellscript_2.sh
  4. 来调用-p3 v3

    我们可能需要更准确地解释问题。

答案 1 :(得分:0)

在UNIX中执行此操作的传统方法是将参数列表拆分为一个数据透视表(通常为 - ),以便主脚本使用数据透视表左侧的所有参数,并保留其他脚本的其余参数( S)。如果您的呼叫功能具有灵活性,我建议您这样做。

因此,如果runscript.py和两个shell脚本都需要使用单独的参数列表,那么命令行将如下所示:

python runscript.py <args for runscript> -- <args for 1st script> -- <args for 2nd script>

例如(我只是在你的层次结构中猜测):

python runscript.py -O start -- -l test -p maim -- -f/dev/sda1 -b256k -Q8