Skip to content
Advertisement

os.system() execute command under which linux shell?

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.)

Advertisement