msh: stop trying to parse variables in "msh SCRIPT VAR=val param".
They should be passed as ordinary parameters.
This commit is contained in:
parent
7e497527ea
commit
fee2d0c256
23
shell/msh.c
23
shell/msh.c
@ -5337,19 +5337,22 @@ int msh_main(int argc, char **argv)
|
|||||||
|
|
||||||
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
|
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
|
||||||
signal(SIGINT, onintr);
|
signal(SIGINT, onintr);
|
||||||
|
|
||||||
|
/* Handle "msh SCRIPT VAR=val params..." */
|
||||||
|
/* Disabled: bash does not do it! */
|
||||||
|
#if 0
|
||||||
|
argv++;
|
||||||
|
/* skip leading args of the form VAR=val */
|
||||||
|
while (*argv && assign(*argv, !COPYV)) {
|
||||||
|
argc--;
|
||||||
|
argv++;
|
||||||
|
}
|
||||||
|
argv--;
|
||||||
|
#endif
|
||||||
dolv = argv;
|
dolv = argv;
|
||||||
dolc = argc;
|
dolc = argc;
|
||||||
dolv[0] = name;
|
dolv[0] = name;
|
||||||
if (dolc > 1) {
|
|
||||||
for (ap = ++argv; --argc > 0;) {
|
|
||||||
*ap = *argv++;
|
|
||||||
if (assign(*ap, !COPYV)) {
|
|
||||||
dolc--; /* keyword */
|
|
||||||
} else {
|
|
||||||
ap++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
setval(lookup("#"), putn((--dolc < 0) ? (dolc = 0) : dolc));
|
setval(lookup("#"), putn((--dolc < 0) ? (dolc = 0) : dolc));
|
||||||
|
|
||||||
DBGPRINTF(("MSH_MAIN: begin FOR loop, interactive %d, global_env.iop %p, iostack %p\n", interactive, global_env.iop, iostack));
|
DBGPRINTF(("MSH_MAIN: begin FOR loop, interactive %d, global_env.iop %p, iostack %p\n", interactive, global_env.iop, iostack));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user