62 lines · 2.1 KB · TeX
RawDownload
\section{\module{commands} ---         Utilities for running commands} \declaremodule{standard}{commands}  \platform{Unix}\modulesynopsis{Utility functions for running external commands.}\sectionauthor{Sue Williams}{sbw@provis.com}  The \module{commands} module contains wrapper functions for\function{os.popen()} which take a system command as a string andreturn any output generated by the command and, optionally, the exitstatus. The \module{subprocess} module provides more powerful facilities forspawning new processes and retrieving their results.  Using the\module{subprocess} module is preferable to using the \module{commands}module. The \module{commands} module defines the following functions:  \begin{funcdesc}{getstatusoutput}{cmd}Execute the string \var{cmd} in a shell with \function{os.popen()} andreturn a 2-tuple \code{(\var{status}, \var{output})}.  \var{cmd} isactually run as \code{\{ \var{cmd} ; \} 2>\&1}, so that the returnedoutput will contain output or error messages. A trailing newline isstripped from the output. The exit status for the command can beinterpreted according to the rules for the C function\cfunction{wait()}.\end{funcdesc} \begin{funcdesc}{getoutput}{cmd}Like \function{getstatusoutput()}, except the exit status is ignoredand the return value is a string containing the command's output.  \end{funcdesc} \begin{funcdesc}{getstatus}{file}Return the output of \samp{ls -ld \var{file}} as a string.  Thisfunction uses the \function{getoutput()} function, and properlyescapes backslashes and dollar signs in the argument.\end{funcdesc} Example: \begin{verbatim}>>> import commands>>> commands.getstatusoutput('ls /bin/ls')(0, '/bin/ls')>>> commands.getstatusoutput('cat /bin/junk')(256, 'cat: /bin/junk: No such file or directory')>>> commands.getstatusoutput('/bin/junk')(256, 'sh: /bin/junk: not found')>>> commands.getoutput('ls /bin/ls')'/bin/ls'>>> commands.getstatus('/bin/ls')'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'\end{verbatim} \begin{seealso}  \seemodule{subprocess}{Module for spawning and managing subprocesses.}\end{seealso}