我有一個殼變種名爲$ 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