I have a shell script foo.sh which is a qsub job with content:

 #!/bin/bash -l #$ -S /bin/bash #$ -N $2 echo $1 

I would like to pass two arguments. If I call qsub foo.sh a b the first argument gets correctly processed and echoed to the command line as 'a'. However, I do not know how to pass an argument in the second case starting with '#$ -N'. In this case $2 does not get evaluated to 'b' but actually '$2' is set. Help would be much appreciated.

10

2 Answers

Works fune for me.

I don't know what the -N command means, but

#!/bin/bash -l #$ -S /bin/bash #$ -N $2 echo $1 echo $2 

when called by sh foo.sh a b promptly echoes

a b 
1

No you can't. The # at the beginning of the line makes it so that the $2 won't be replaced by the argument to the script. The way to do what you're trying to do is

qsub foo.sh -N <name> 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy