AE executes CIAO and HEASOFT programs using the IDL spawn command to create a Unix shell which then parses and executes CIAO/HEASOFT command lines. Five requirements govern your choice of Unix shell and the configuration of that shell:
If you use a shell (such as bash) that does not offer setenv, there should be no need to change the default shell of your account. Instead, you should be able to alter the SHELL environment variable in whatever window will be launching IDL so that the new shells that IDL will create will be csh (or tcsh). For example, if you use the bash shell then launch IDL like this:
export SHELL=`which csh` idlThe csh shells spawned by IDL should inherit your unix path ($PATH) from bash. However, you will have to establish other csh configurations (described below) via the file ~/.cshrc, which csh/tcsh executes when it starts.
alias ciao 'source /usr/astro/cxc/bin/ciao.csh -o'
alias heasoft 'source $HEADAS/headas-init.csh'
If the aliases ciao and heasoft are available in your normal interactive shells, but AE reports that those aliases are not defined, then you need to look for the reason that those alias statements in your shell configuration file would not be executed in the non-interactive shells that IDL spawns. First, confirm that IDL is spawning the shell that you expect:
spawn, 'echo $SHELL'
Second, note that shells often look for multiple configuration files at start-up, some of which are skipped for non-interactive shells.
For example, a non-interactive zsh shell will execute the configuration file .zshenv but will skip .zprofile, .zlogin, and .zshrc.
Finally, your shell configuration file could contain a branch (or bug) of some kind which skips the definition of the CIAO and HEASOFT aliases for non-interactive shells.
echo $TMPDIRIf the value is different in the two shells, then you must set TMPDIR yourself in your shell's configuration file, e.g.:
setenv TMPDIR /tmp/