【问题标题】:Elements of a bash array as separate command line arguments to pythonbash 数组的元素作为 python 的单独命令行参数
【发布时间】:2019-08-08 09:08:48
【问题描述】:

我有一个 bash 数组,它的元素是字符串形式的路径。

${arr[0]} = "path/to/json1"
${arr[1]} = "path/to/json2"
${arr[2]} = "path/to/json3"

等等……

现在我想将所有这些元素作为命令行参数同时传递给同一个 bash 脚本中的 python 命令

python3 script.py ${arr[0]} ${arr[1]} ${arr[2]}

但问题是 arr 中的元素数量是变化的,并且不是固定的。所以我不能像上面那样将每个元素硬编码为单独的参数。

我们如何将 bash 数组的所有元素作为命令行参数传递给 python 命令?

【问题讨论】:

    标签: arrays python-3.x bash


    【解决方案1】:

    使用${arr[@]} 来引用整个数组。

    python3 script.py "${arr[@]}"
    

    这并不特定于 Python,它是您将所有数组元素传递给任何命令的方式。

    除非您有充分的理由不这样做,否则您还应该始终引用 shell 变量。

    【讨论】:

    • 这不是连接数组中的所有路径并将其作为单个字符串传递(如 python3 scripy.py "path/to/json1 path/to/json2 path/to/json3") ?我想分别传递所有路径元素(如 python3 scripy.py "path/to/json1" "path/to/json2" "path/to/json3")。
    • 不,"${arr[*]}" 会发生这种情况,但 [@] 的处理方式不同。
    猜你喜欢
    • 2016-12-10
    • 2011-07-19
    • 2012-09-24
    • 2016-02-07
    • 2011-02-19
    • 2015-06-26
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    相关资源
    最近更新 更多