为 runcmd 设置环境变量

为 runcmd 设置环境变量

使用 cloud-init,我可以指定一个runcmd部分并执行如下操作:

runcmd: [
  'MYVAR=VALUE some-command --a A --b B'
]

它可行,并在环境中设置some-command为时运行。它在 shell 下运行。MYVARVALUE

但是,我实际上想使用参数化形式,如下所示:

runcmd: [
  [
    'some-command',
    '--a', 'A',
    '--b', 'B'
  ]
]

原因是其中一些参数值将被动态替换,并且我不希望 shell 尝试解释它们。

因此,我可以使用这个字符串数组来运行命令,但是如何为它们指定环境呢?

答案1

您可以使用以下env命令来完成此操作:

runcmd: [
  [
    'env',
    'MYVAR=VALUE',
    'some-command',
    '--a', 'A',
    '--b', 'B'
  ]
]

查看env手册页了解更多信息。

相关内容