| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{commands} --- | 
					
						
							|  |  |  |          Wrapper functions for \function{os.popen()}.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | \declaremodule{standard}{commands} | 
					
						
							| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \sectionauthor{Sue Williams}{sbw@provis.com} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | \modulesynopsis{Wrapper functions for \function{os.popen()}.} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-11 06:24:46 +00:00
										 |  |  | 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. | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-03-11 06:24:46 +00:00
										 |  |  | The \module{commands} module is only usable on systems which support  | 
					
						
							|  |  |  | \function{os.popen()} (currently \UNIX{}).  It defines the following | 
					
						
							|  |  |  | functions: | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{getstatusoutput}{cmd} | 
					
						
							| 
									
										
										
										
											1998-03-11 06:24:46 +00:00
										 |  |  | 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()}. | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{getoutput}{cmd} | 
					
						
							| 
									
										
										
										
											1998-03-11 06:24:46 +00:00
										 |  |  | Like \function{getstatusoutput()}, except the exit status is ignored | 
					
						
							|  |  |  | and the return value is a string containing the command's output.   | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \begin{funcdesc}{getstatus}{file} | 
					
						
							|  |  |  | Return the output of \samp{ls -ld \var{file}} as a string.  This | 
					
						
							| 
									
										
										
										
											1998-03-11 06:24:46 +00:00
										 |  |  | function uses the \function{getoutput()} function, and properly | 
					
						
							|  |  |  | escapes backslashes and dollar signs in the argument. | 
					
						
							| 
									
										
										
										
											1997-06-12 16:05:46 +00:00
										 |  |  | \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} |