如何将括号传递给某些程序的参数?

如何将括号传递给某些程序的参数?

我正在尝试像这样执行命令

python train.py --conv-layers [(512, 10, 5), (512, 8, 4)]

但巴什发誓

-bash: syntax error near unexpected token `('

我需要train.py收到这个。

如何实现?

答案1

[(和 SPC 都是 shell 语法中的特殊字符bash。例如,了解如何使用python和之间的 SPC来分隔要传递给 的两个参数。/作为全局运算符很特殊,,是许多结构的一部分,例如, , ,等。train.py/path/to/python[]()func () ...<(...)(subshell)((arith))

要删除它们的特殊含义,可以使用引用/转义。引用运算符在 shell 之间有所不同。看如何像普通字符一样使用特殊字符?了解详情。

bashshell 中,您可以使用'...'"..."$'...'和反斜杠。在这里,最好是:

python train.py --conv-layers '[(512, 10, 5), (512, 8, 4)]'

如果您打算[(512, 10, 5), (512, 8, 4)]将其作为一个参数传递给/path/to/python(在pythontrain.py和旁边--conv-layers)。

相关内容