On Thu, Apr 29, 2010 at 4:25 PM, Edward A. Berry <ber...@upstate.edu> wrote: > Command-line param like XYZIN don't seem to be shell variables, > but can be set by variables: > > bin/ncont XYZIN $XYZIN <<eof>ncont${XYZIN}.log
Actually command line parameters for CCP4 programs are indeed also shell variables, though they first have to be exported to the environment so they can be picked up by the program. So for example: setenv XYZIN input.pdb setenv XYZOUT output.pdb program_name <<EOF .. EOF produces exactly the same result as: program_name XYZIN input.pdb XYZOUT output.pdb <<EOF .. EOF If the variable is specified both in the environment and on the command line, then the latter is always used. What happens is that when say 'XYZIN input.pdb' is read from the command line (or it could be from anywhere), the function that processes the command line does an internal 'setenv XYZIN input.pdb' (thus overwriting any previous setting of XYZIN). Then whenever the value of the XYZIN variable is needed, say to open a file, the value is read back from the environment by the file-opening function. -- Ian