comparison scripts/deprecated/shell_cmd.m @ 14018:5d5685216876

Deprecate shell_cmd function and update system, dos, unix commands * NEWS: Announce deprecation of shell_cmd. * deprecated/shell_cmd.m: New file to hold documentation and warning for shell_cmd. * deprecated/module.mk: Add shell_cmd to build system. * mk_undocumented_list: Remove shell_cmd from undocumented list. * install.txi: Replace reference to shell_cmd with system. * dos.m, unix.m: Update docstrings and add %!test block. * toplev.cc (system): Update docstring and add %!test block.
author Rik <octave@nomad.inbox5.com>
date Thu, 08 Dec 2011 17:25:30 -0800
parents
children 72c96de7a403
comparison
equal deleted inserted replaced
14017:0b94080d2b0f 14018:5d5685216876
1 ## Copyright (C) 2011 Rik Wehbring
2 ##
3 ## This file is part of Octave.
4 ##
5 ## Octave is free software; you can redistribute it and/or modify it
6 ## under the terms of the GNU General Public License as published by
7 ## the Free Software Foundation; either version 3 of the License, or (at
8 ## your option) any later version.
9 ##
10 ## Octave is distributed in the hope that it will be useful, but
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 ## General Public License for more details.
14 ##
15 ## You should have received a copy of the GNU General Public License
16 ## along with Octave; see the file COPYING. If not, see
17 ## <http://www.gnu.org/licenses/>.
18
19 ## "-*- texinfo -*-
20 ## @deftypefn {Built-in Function} {} shell_cmd (@var{string})
21 ## @deftypefnx {Built-in Function} {} shell_cmd (@var{string}, @var{return_output})
22 ## @deftypefnx {Built-in Function} {} shell_cmd (@var{string}, @var{return_output}, @var{type})
23 ## @deftypefnx {Built-in Function} {[@var{status}, @var{output}] =} shell_cmd (@dots{})
24 ## @deftypefnx {Built-in Function} {[@var{status}, @var{output}] =} shell_cmd (@var{string}, @var{return_output}, @var{type})
25 ## Execute a shell command specified by @var{string}.
26 ## If the optional argument @var{type} is "async", the process
27 ## is started in the background and the process id of the child process
28 ## is returned immediately. Otherwise, the process is started and
29 ## Octave waits until it exits. If the @var{type} argument is omitted, it
30 ## defaults to a value of "sync".
31 ##
32 ## If the optional argument @var{return_output} is true and the subprocess
33 ## is started synchronously, or if @var{shell_cmd} is called with one input
34 ## argument and one or more output arguments, then the output from the command
35 ## is returned. Otherwise, if the subprocess is executed synchronously, its
36 ## output is sent to the standard output.
37 ##
38 ## The @code{shell_cmd} function can return two values. The first is the
39 ## exit status of the command and the second is any output from the
40 ## command that was written to the standard output stream. For example,
41 ##
42 ## @example
43 ## [status, output] = shell_cmd ("echo foo; exit 2");
44 ## @end example
45 ##
46 ## @noindent
47 ## will set the variable @code{output} to the string @samp{foo}, and the
48 ## variable @code{status} to the integer @samp{2}.
49 ##
50 ## For commands run asynchronously, @var{status} is the process id of the
51 ## command shell that is started to run the command.
52 ## @seealso{system, unix, dos}
53 ## @end deftypefn
54
55 ## Deprecated in version 3.6
56
57 function [status, output] = shell_cmd (varargin)
58 persistent warned = false;
59 if (! warned)
60 warned = true;
61 warning ("Octave:deprecated-function",
62 "shell_cmd is obsolete and will be removed from a future version of Octave; please use system instead");
63 endif
64
65 [status, output] = system (varargin{:});
66
67 endfunction
68