我有一个壳变种名为$ JOB_COMMAND具有命令来启动一个映射精简工作,像这样:不需要的问题点这个shell脚本行有什么问题?
[email protected]:/scriptpath# echo $JOB_COMMAND
/var/elastic-mapreduce/elastic-mapreduce --create
--name 'Extrabux-MapReduce'
--num-instances 16 --instance-type c1.medium --key-pair extrabux-keypair
--log-uri s3n://extrabux-log/
--bootstrap-action "s3://extrabux-scripts/startup.sh" |
egrep -o 'j-[a-zA-Z0-9]+'
显然很多的选择,但在一些关闭的机会内容影响答案,它包括在内。
现在,当我尝试从变量运行的命令,我得到这个:
[email protected]:/scriptpath# $JOB_COMMAND
Error: --output must follow one of --streaming
但是,如果我复制和呼应命令的结果糊状,所以我得到如下:
[email protected]:/scriptpath# /var/elastic-mapreduce/elastic-mapreduce --create
--name 'Extrabux-MapReduce'
--num-instances 16 --instance-type c1.medium --key-pair extrabux-keypair
--log-uri s3n://extrabux-log/
--bootstrap-action "s3://extrabux-scripts/startup.sh" |
egrep -o 'j-[a-zA-Z0-9]+'
j-3FV0MT3H7G21S
正如你所看到的,命令运行并成功吐出作业ID
这是我想要做的落榜ID到另一个壳变种什么:
[email protected]:/scriptpath# JOBID=`$JOB_COMMAND`
任何想法为什么运行命令时,它是在一个变种是破的? 仅供参考,我也曾尝试
[email protected]:/scriptpath# JOBID=$($JOB_COMMAND)
而且也给我的错误
感谢您的帮助!
如果在JOB_ARGS字符串参数包含嵌入可能破坏空间。最好将参数存储在一个数组中,然后'result = $($ command“$ {args [@]}”| egrep ...)'' – 2011-05-12 20:21:31