I am using /bin/tcsh
as my default shell.
However, the tcsh style command os.system('setenv VAR val')
doesn’t work for me. But os.system('export VAR=val')
works.
So my question is how can I know the os.system()
run command under which shell?
Advertisement
Answer
os.system()
just calls the system()
system call (“man 3 system
“). On most *nixes this means you get /bin/sh
.
Note that export VAR=val
is technically not standard syntax (though bash
understands it, and I think ksh
does too). It will not work on systems where /bin/sh
is actually the Bourne shell. On those systems you need to export and set as separate commands. (This will work with bash
too.)