> import os > for line in os.popen('alias').readlines(): > print line > > > No aliases are printed. > > I started python from an bash environment that had many aliases > defined. I expected to see the list of aliases from within the > interactive python shell. What could I do to see those aliases defined > in the shell from where I started python?
You can't, really. The 'alias' command is a shell built-in, not an external command, so you can't meaningfully run it from a Python script (and any aliases defined in your shell will probably not be available to Python). Matters are complicated a little bit because when you use os.popen(), your command line is actually passed to *a* shell, usually /bin/sh, so the final command line looks like this: /bin/sh -c 'alias' However, even if /bin/sh is actually bash, dotfiles such as .profile and .bashrc aren't read when using the '-c' option. If you really want to do something to your bash aliases with python, you could pipe them into a python command: $ alias | python myscript.py -- Lars -- Lars Kellogg-Stedman <[EMAIL PROTECTED]> This email address will expire on 2005-11-23. -- http://mail.python.org/mailman/listinfo/python-list