[TUHS] Shell control through external commands

arnold at skeeve.com arnold at skeeve.com
Sun Sep 11 15:01:49 AEST 2016


Dave Horsfall <dave at horsfall.org> wrote:

> On Sat, 10 Sep 2016, arnold at skeeve.com wrote:
>
> > I think that the way the shell "recognized" scripts was by having exec 
> > fail, otherwise how would it know?  I think we'll have to go grubbing in 
> > the source archives to be sure.
>
> Correct; if the exec failed then the invoking shell assumed that it was a 
> shell script, and spawned a shell to run it.

I think this happened in the "spawned" shell - so the exec would fail and
then this child shell would just run the script.

	if ((pid = fork()) != 0)
		wait for pid
	else {
		/* in the child */
		exec /path/to/program
		if (errno == ENOEXEC)	/* or whatever it is, I don't remember */
			interpret the script directly
	}

Arnold


More information about the TUHS mailing list