xref: /xv6-public/sh.c (revision 17a85657)
1*17a85657Srtm #include "user.h"
2*17a85657Srtm #include "types.h"
3*17a85657Srtm #include "fs.h"
4*17a85657Srtm #include "fcntl.h"
5*17a85657Srtm 
6*17a85657Srtm char *args[100];
7*17a85657Srtm 
8*17a85657Srtm int
9*17a85657Srtm main(void)
10*17a85657Srtm {
11*17a85657Srtm   char buf[128];
12*17a85657Srtm   int pid;
13*17a85657Srtm 
14*17a85657Srtm   while(1){
15*17a85657Srtm     write(1, "$ ", 2);
16*17a85657Srtm     gets(buf, sizeof(buf));
17*17a85657Srtm     if(buf[0] == '\0')
18*17a85657Srtm       continue;
19*17a85657Srtm     pid = fork();
20*17a85657Srtm     if(pid == 0){
21*17a85657Srtm       args[0] = buf;
22*17a85657Srtm       args[1] = 0;
23*17a85657Srtm       exec(buf, args);
24*17a85657Srtm       write(1, buf, strlen(buf));
25*17a85657Srtm       write(1, ": not found\n", 12);
26*17a85657Srtm       exit();
27*17a85657Srtm     }
28*17a85657Srtm     if(pid > 0)
29*17a85657Srtm       wait();
30*17a85657Srtm   }
31*17a85657Srtm }
32