Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4623290
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 22, 20262026-05-22T02:57:57+00:00 2026-05-22T02:57:57+00:00

I have a shell var called $JOB_COMMAND that has the command to launch a

  • 0

I have a shell var called $JOB_COMMAND that has the command to launch a map reduce job like so:

user@server:/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]+'

Obviously lots of those options are not needed for the point of the question, but in some off chance the content affects the answer, it’s included.

Now when I try to run the command from the variable, I get this:

user@server:/scriptpath# $JOB_COMMAND
Error: --output must follow one of --streaming

However if I copy and paste the result of echoing the command like so I get the following:

user@server:/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

As you can see, the command runs and successfully spits out a job id

Here is what I would like to do, get the job ID into another shell var:

user@server:/scriptpath# JOBID=`$JOB_COMMAND`

Any idea why running the command when it is inside a var is breaking?
FYI, I have also tried

user@server:/scriptpath# JOBID=$($JOB_COMMAND)

and that also gives me the error

Thanks for your help!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-22T02:57:58+00:00Added an answer on May 22, 2026 at 2:57 am

    The problem is that the parsing of the pipeline (the | in your example) happens before the variable $JOB_COMMAND is expanded. In Bash, parsing the line happens first, then variables are expanded, split based on $IFS, and substituted into the commands. So in your command, the | egrep and everything following it are being passed as literal arguments to your elastic-mapreduce command; the error about --output is probably due to the -o argument.

    As the Bash FAQ points out, you shouldn’t be storing commands in variables, you should use shell functions instead.

    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]+'
    }
    

    And now you can call it as follows:

    JOBID=$(job_command)
    

    Using shell functions would also allow you to pass parameters in to your command, which you may find to be useful.

    If you really want to store a command in a variable for some reason, you will need to use eval, but this is not recommended:

    eval $JOB_COMMAND
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a Windows shell script that opens an application. I'd like to modify
I have a single windows shell command I'd like to run (via EXEC master..xp_cmdshell)
I have an application that manages documents called Notes. Like a blog, Notes can
#!/bin/bash for((i=1;i <=10;i++)) do php /var/www/get.php done I have the above shell script that
I have a shell script ( /home/user/send_report.sh ) that runs my rake task: cd
I have a shell script that executes a number of commands. How do I
I have a Bash shell script in which I would like to pause execution
I have some simple shell scripting tasks that I want to do For example:
I have a bash shell script that loops through all child directories (but not
I have a pair of shell programs that talk over a named pipe. The

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.