I would like to define a simple abbreviation of a call to
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$last $1 $2 ...
myscript infile1.pdf infile2.pdf ... outfile.pdf
myscript *.pdf outfile.pdf
The bash variables
$* expand into the list of command line arguments. Generally, you will want to use
"$@" (that is,
$@ surrounded by double quotes). This will do the right thing if someone passes your script an argument containing.
So if you had this in your script:
outputfile=$1 shift gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=$outputfile "$@"
And you called your script like this:
myscript out.pdf foo.ps bar.ps "another file.ps"
This would expand to:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf foo.ps bar.ps "another file.ps"
Read the "Special Parameters" section of the
bash man page for more information.