]> git.ipfire.org Git - thirdparty/bash.git/blob - builtins/eval.def
bash-4.4 rc1 release
[thirdparty/bash.git] / builtins / eval.def
1 This file is eval.def, from which is created eval.c.
2 It implements the builtin "eval" in Bash.
3
4 Copyright (C) 1987-2016 Free Software Foundation, Inc.
5
6 This file is part of GNU Bash, the Bourne Again SHell.
7
8 Bash is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 Bash is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with Bash. If not, see <http://www.gnu.org/licenses/>.
20
21 $PRODUCES eval.c
22
23 $BUILTIN eval
24 $FUNCTION eval_builtin
25 $SHORT_DOC eval [arg ...]
26 Execute arguments as a shell command.
27
28 Combine ARGs into a single string, use the result as input to the shell,
29 and execute the resulting commands.
30
31 Exit Status:
32 Returns exit status of command or success if command is null.
33 $END
34
35 #include <config.h>
36 #if defined (HAVE_UNISTD_H)
37 # ifdef _MINIX
38 # include <sys/types.h>
39 # endif
40 # include <unistd.h>
41 #endif
42
43 #include "../shell.h"
44 #include "bashgetopt.h"
45 #include "common.h"
46
47 /* Parse the string that these words make, and execute the command found. */
48 int
49 eval_builtin (list)
50 WORD_LIST *list;
51 {
52 if (no_options (list))
53 return (EX_USAGE);
54 list = loptend; /* skip over possible `--' */
55
56 return (list ? evalstring (string_list (list), "eval", SEVAL_NOHIST) : EXECUTION_SUCCESS);
57 }