8 printf ("Shell starting...\n");
11 char command[80], *cp;
16 /* Read and echo command. */
21 read (STDIN_FILENO, &c, 1);
30 /* Back up cursor, overwrite character, back up again. */
34 case 27: /* Escape. */
35 case ('U' - 'A') + 1: /* Ctrl+U. */
36 /* Clear entire line. */
42 /* Add character to line. */
44 if (cp >= command + sizeof command - 1)
53 /* Execute command. */
54 if (!strcmp (command, "exit"))
56 else if (cp == command)
62 pid_t pid = exec (command);
64 printf ("\"%s\": exit code %d\n", command, wait (pid));
66 printf ("exec failed\n");
70 printf ("Shell exiting.");