clumsy cd
This commit is contained in:
parent
fbd8857d4d
commit
9863fea78c
1 changed files with 8 additions and 0 deletions
8
sh.c
8
sh.c
|
@ -157,6 +157,14 @@ main(void)
|
||||||
|
|
||||||
// Read and run input commands.
|
// Read and run input commands.
|
||||||
while(getcmd(buf, sizeof(buf)) >= 0){
|
while(getcmd(buf, sizeof(buf)) >= 0){
|
||||||
|
if(buf[0] == 'c' && buf[1] == 'd' && buf[2] == ' '){
|
||||||
|
// Clumsy but will have to do for now.
|
||||||
|
// Chdir has no effect on the parent if run in the child.
|
||||||
|
buf[strlen(buf)-1] = 0; // chop \n
|
||||||
|
if(chdir(buf+3) < 0)
|
||||||
|
printf(2, "cannot cd %s\n", buf+3);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(fork1() == 0)
|
if(fork1() == 0)
|
||||||
runcmd(parsecmd(buf));
|
runcmd(parsecmd(buf));
|
||||||
wait();
|
wait();
|
||||||
|
|
Loading…
Reference in a new issue