| \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 and | 
 | return any output generated by the command and, optionally, the exit | 
 | status. | 
 |  | 
 | The \module{commands} module defines the following functions: | 
 |  | 
 |  | 
 | \begin{funcdesc}{getstatusoutput}{cmd} | 
 | Execute the string \var{cmd} in a shell with \function{os.popen()} and | 
 | return a 2-tuple \code{(\var{status}, \var{output})}.  \var{cmd} is | 
 | actually run as \code{\{ \var{cmd} ; \} 2>\&1}, so that the returned | 
 | output will contain output or error messages. A trailing newline is | 
 | stripped from the output. The exit status for the command can be | 
 | interpreted according to the rules for the C function | 
 | \cfunction{wait()}. | 
 | \end{funcdesc} | 
 |  | 
 | \begin{funcdesc}{getoutput}{cmd} | 
 | Like \function{getstatusoutput()}, except the exit status is ignored | 
 | and 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.  This | 
 | function uses the \function{getoutput()} function, and properly | 
 | escapes 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} |