我在Jenkins作业配置中的"execute shell“条目中运行以下命令。
AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX CASS_HOSTNAME=XXX DB_HOSTNAME=XXX DB_PASSWORD=XXX DB_USERNAME=XXX EMAIL_REGION=XXX RED_HOSTNAME=XXXX RED_PORT=XXX npm run我如何为这些参数创建一个变量?我试图声明一个普通的shell常量,例如:
readonly parameters="AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX .."
$parameters npm run init_test_tenant但是我得到了以下错误
/tmp/hudson6912171417213995775.sh: 4: /tmp/hudson6912171717213995775.sh: AWS_ACCESS_KEY_ID=XXX: not
发布于 2016-02-04 09:40:37
为了避免将eval放在所有事物和open a hole in your code前面,您可以使用一个技巧:
export $parameters
npm run init_test_tenant与问题中的尝试不同:所有变量对npm都是可见的,在此之后执行的所有其他命令都是可见的,而VAR=value command语法允许VAR只对command可见。
发布于 2016-02-04 09:40:27
带env前缀
readonly parameters="AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX .."
env $parameters npm run init_test_tenant此外,如果您的nodejs程序中不需要任何其他环境变量,您可以将-i选项添加到env中,以便为npm提供一个干净的环境,但是您必须通过完整路径(例如:/usr/bin/npm )和可能在nodejs程序中运行的所有其他程序来解决npm问题:
readonly parameters="AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX .."
env -i $parameters /usr/bin/npm run init_test_tenant或者将PATH=/usr/bin/添加到$parameters常量中,如下所示:
readonly parameters="PATH=/usr/bin AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=XXX .."
env -i $parameters npm run init_test_tenanthttps://stackoverflow.com/questions/35196816
复制相似问题