blob: 74e7023a791a1ab5463c5d148040a574d03c2203 [file] [log] [blame]
Fred Drake295da241998-08-10 19:42:37 +00001\section{\module{commands} ---
Fred Drakebf0f4341999-04-22 15:53:35 +00002 Utilities for running commands}
Fred Drakeb91e9341998-07-23 17:59:49 +00003
Fred Drake47894d21999-04-22 15:19:01 +00004\declaremodule{standard}{commands}
5 \platform{Unix}
6\modulesynopsis{Utility functions for running external commands.}
7\sectionauthor{Sue Williams}{sbw@provis.com}
Fred Drakeb91e9341998-07-23 17:59:49 +00008
Fred Drake4fd12921997-06-12 16:05:46 +00009
Fred Drakefdbd51d1998-03-11 06:24:46 +000010The \module{commands} module contains wrapper functions for
11\function{os.popen()} which take a system command as a string and
12return any output generated by the command and, optionally, the exit
13status.
Fred Drake4fd12921997-06-12 16:05:46 +000014
Fred Drake47894d21999-04-22 15:19:01 +000015The \module{commands} module defines the following functions:
Fred Drake4fd12921997-06-12 16:05:46 +000016
Fred Drake4fd12921997-06-12 16:05:46 +000017
Fred Drake4fd12921997-06-12 16:05:46 +000018\begin{funcdesc}{getstatusoutput}{cmd}
Fred Drakefdbd51d1998-03-11 06:24:46 +000019Execute the string \var{cmd} in a shell with \function{os.popen()} and
20return a 2-tuple \code{(\var{status}, \var{output})}. \var{cmd} is
21actually run as \code{\{ \var{cmd} ; \} 2>\&1}, so that the returned
22output will contain output or error messages. A trailing newline is
23stripped from the output. The exit status for the command can be
Fred Drake47894d21999-04-22 15:19:01 +000024interpreted according to the rules for the C function
Fred Drakefdbd51d1998-03-11 06:24:46 +000025\cfunction{wait()}.
Fred Drake4fd12921997-06-12 16:05:46 +000026\end{funcdesc}
27
28\begin{funcdesc}{getoutput}{cmd}
Fred Drakefdbd51d1998-03-11 06:24:46 +000029Like \function{getstatusoutput()}, except the exit status is ignored
30and the return value is a string containing the command's output.
Fred Drake4fd12921997-06-12 16:05:46 +000031\end{funcdesc}
32
33\begin{funcdesc}{getstatus}{file}
34Return the output of \samp{ls -ld \var{file}} as a string. This
Fred Drakefdbd51d1998-03-11 06:24:46 +000035function uses the \function{getoutput()} function, and properly
36escapes backslashes and dollar signs in the argument.
Fred Drake4fd12921997-06-12 16:05:46 +000037\end{funcdesc}
38
39Example:
40
41\begin{verbatim}
42>>> import commands
43>>> commands.getstatusoutput('ls /bin/ls')
44(0, '/bin/ls')
45>>> commands.getstatusoutput('cat /bin/junk')
46(256, 'cat: /bin/junk: No such file or directory')
47>>> commands.getstatusoutput('/bin/junk')
48(256, 'sh: /bin/junk: not found')
49>>> commands.getoutput('ls /bin/ls')
50'/bin/ls'
51>>> commands.getstatus('/bin/ls')
52'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'
53\end{verbatim}