On Fri, 2005-06-03 at 18:45 +0100, Alan G wrote: > > If I invoke it in a shell.. then it can be verbose > > > > If it is launched from a crontab.. then it is less verbose. > > You need to check who the process owner is. > > That can be done on *Nix by reading the USER environment > variable. Cron jobs are usually run under the 'cron' user > I believe. > > Hoever that won;t work if the python script is executed > in a shell script that is then executed by a user. Its usually > better to make verbosity controllable by a flag > - traditionally -v. Thus the default is non verbode and > verbosity can be switched on(or even given any one of > several levels) as desired. > > Alan G. > I think there's a better solution. Here's a quote from the “bash” manual: “An interactive shell is one started without non-option arguments and without the -c option whose standard input and error are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.”
>From above you can examine the “$-” environment variable and check for “i” in it, if it exist you have an interactive “bash” shell, if not you have a non-interactive “bash” shell. However this only works if you're using “bash” (or, maybe, compatible shells like “ksh”, but I'm not sure). The other option would be to check for the environment variable “$PS1”. If it exist, then it's most likely an interactive shell (and I think it works with other shells like “csh”, again I'm not sure as I never worked with any other shell but “bash”). Hope this helpful to someone. Ziyad. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor