The bash variables $@
and $*
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 whitespace.
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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…