1
/* This module should be dynamically loaded with enable -f
2
* which would create a new builtin named mypid. You'll need
3
* the source code for GNU bash to recompile this module.
5
* Then, from within bash, enable -f ./mypid enable_mypid, where ./mypid
6
* is the binary obtained from running make. Hereafter, `${MYPID}'
7
* is a shell builtin variable.
17
#define INIT_DYNAMIC_VAR(var, val, gfunc, afunc) \
19
{ SHELL_VAR *v = bind_variable (var, (val), 0); \
20
v->dynamic_value = gfunc; \
21
v->assign_func = afunc; \
36
get_mypid (SHELL_VAR *var)
44
FREE (value_cell (var));
46
VSETATTR (var, att_integer);
47
var_setvalue (var, p);
52
enable_mypid_builtin(WORD_LIST *list)
54
INIT_DYNAMIC_VAR ("MYPID", (char *)NULL, get_mypid, assign_mypid);
59
char const *enable_mypid_doc[] = {
62
"Enables use of the ${MYPID} dynamic variable. ",
63
"It will yield the current pid of a subshell.",
67
struct builtin enable_mypid_struct = {
71
(char**)(void*)enable_mypid_doc,