There are numerous books written of shell programming or the like - a manual like this cannot be expected to cover the subject in the depth that these books go into. Instead a simple annotated example will be given using the C-Shell commonly used on UNIX systems. To aid description, line numbers are given on the left side of each line (these line numbers are not part of the shell script).
1: #!/bin/csh 2: 3: # Delete any datasets called "multi.uv". 4: 5: rm -rf multi.uv 6: 7: fits in=MULTI.UV op=uvin out=multi.uv 8: 9: foreach srcnam ( 1934-638 0823-500 vela ) 10: uvaver vis=multi.uv "select=source(${srcnam})" out=${srcnam}.uv 11: end 12: 13: mfcal vis=1934-638.uv interval=10 refant=3 14: gpcal vis=1934-638.uv interval=10 options=xyvary refant=3 15: gpcopy vis=1934-638.uv out=0823-500.uv 16: 17: gpcal vis=0823-500.uv interval=10 \ 18: options=nopol,xyvary,qusolve refant=3 19: 20: gpboot vis=0834-500.uv cal=1934-638.uv 21: uvplt vis=0823-500 stokes=i,q,u,v axis=real,imag device=0823.ps/ps 22: 23: lpr 0823.ps
#!/bin/csh
. This allows the system to determine the
appropriate interpreter for the script (i.e. the C-shell).
multi.uv
. The
r
flag (recursive) is needed to delete a directory (which is
how Miriad stores a dataset). The f
(force) flags causes rm
to
work in non-interactive mode.
MULTI.UV
), and saves it as a Miriad dataset
(multi.uv
).
${srcnam}
with the current value of the srcnam
variable.
Thus the select parameter being successively
set with source(1934-638), source(0823-500) and
source(vela) on the three times through the loop. The output dataset of the command also changes.
Note that the select parameter is quoted ("select=
...
"
).
This is as brackets (()
) are special to the shell. Quoting them
prevents this interpretation. Note however that the ${srcnam}
is
still treated as special, even though it is in quotes (software does not have
to be consistent!).
On UNIX systems, after having developed a script, you will need to change the ``file mode'' of the script to indicate that the script is executable. For example, to mark the shell script calibrate as executable, use the UNIX command
% chmod +x calibrate
Miriad manager