os.system()

Heiko Wundram modelnine at ceosg.de
Mon Mar 7 14:25:49 CET 2005


On Monday 07 March 2005 14:10, Diez B. Roggisch wrote:
> Showing us what commands actually fail would certainly help.

Actually, this sounds like the subshell isn't getting an alias that the normal 
interactive shell has. Maybe because ~/.bashrc isn't read on os.system(), or 
something of the like? This depends largely on your default system settings, 
and especially on /etc/profile.

You might check whether the command that works in the interactive shell is an 
alias by typing

heiko at heiko ~ $ alias
alias ls='ls --color=auto'
heiko at heiko ~ $

This shows all currently set aliases, and at least on Gentoo, the above alias 
is set in ~/.bashrc, and thus isn't set when os.system() is called. This 
means that the output from running ls in an interactive shell is colorized, 
whereas running os.system("ls") from Python is not colorized, although 
TERM="xterm" in os.environ, and thusly in the subshell spawned using 
os.system, and ls could colorize the output using VT100 escape sequences.

All the above explanations assume that your default shell /bin/sh is the 
Bourne Again Shell, but all other "higher shells" such as the (T)C-Shell and 
the Korn-Shell support command aliasing too, in some way or another, and will 
suffer from the same quirks.

And, btw., it'll help if you read the commented start-up files (at least on 
Gentoo and SuSE (IIRC) they are very well commented) and the bash man-page, 
they explain pretty clearly which initialization files (~/.bashrc, 
~/.bash_profile, /etc/profile, /etc/bash/bashrc, and several others) get 
executed when and where, depending on whether a shell is a login shell (your 
normal interactive shell), or not (spawned by os.system, for example).

Hope this explanation helps!

-- 
--- Heiko.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20050307/56c26b6d/attachment.pgp>


More information about the Python-list mailing list