I am using Grid Engine on a Linux cluster. I am running many jobs with different programs and different input files. I don't want to create multiple specific job scripts for each pair of program and input file. Instead I want to be able to specify the program name and the input file on the qsub line.
Therefore I can use qsub job.sh <programNameAndLocation> <inputFileName>
Where job.sh takes two arguments. This works fine. But there is another twist: my programs are located in a very very long directory which I don't want to type every time I submit a job - so aliases are an obvious choice.
So I want to do something like qsub job.sh <programNameAndLocationAlias> <inputFileName>
I initially set the alias in my .bashrc but was getting the error: <programNameAndLocationAlias>: command not found
So I set the alias in submit.sh. But I am getting the same error.
Thoughts on how can I can get the command qsub job.sh $1 $2 to accept aliases also?

${!<programNameAndLocation>}then?qsub job.sh ${!<programNameAndLocationParameter>} <inputFileName>. I am setting my parameter in my.bashrcviaexport <programNameAndLocationParameter>=<programNameAndLocation>. Now however I am getting an error which is telling me that bash is trying to execute my input file and it is not being read by my program. Any thoughts?programNameAndLocationParameter? A path? Two or more arguments?<programNameAndLocationParameter>is a path and program name. e.g./exports/programs/solverwhere "solver" is my program to be executed. The executed program itself accepts one argument. Which is the input file path and name (<inputFilName>).