Using PBS Variables
Many PBS jobs are very similar to each other, differing from previous jobs only by one or two parameters, like input filename. PBS allows scripts to use input parameters so scripts don’t have to be rewritten for every job.
An example job that demonstrates this is available on Maple at
The main file is
#PBS -N variable
#PBS -l mem=2gb
#PBS -l ncpus=1
echo "Input file: $INPUT_FILE"
# Run program here
ls -l $INPUT_FILE
The variable in this example is called
INPUT_FILE. First, the script changes to the directory from which the script was submitted. Then it echos the value of the variable passed into the script. Finally, it runs a program on the input file, in this case, just
This PBS script can be submitted by running:
qsub -v INPUT_FILE=file.csv variable_example.pbs
Starting multiple jobs at once
With some shell scripting, multiple jobs can be started at once. For instance, assume you had multiple CSV files that all needed to be processed by the same program. You could submit a separate for for each one by running:
for file in *.csv
qsub -vINPUT_FILE=$file variable_example.pbs
This code is included as
launch_jobs.sh in the example job on Maple.