#include "main.h"
int main(int argc, const char *argv[])
{
while (1)
{
show();
int i = 0;
int j = 0;
char buff[256] = {0};
fgets(buff,sizeof(buff),stdin);
i = strlen(buff);
buff[i-1] = '\0';
char *arg[10] = {NULL};
arg[0] = strtok(buff," ");
while (arg[j] != NULL)
{
j++;
arg[j] = strtok(NULL, " ");
if (NULL == arg[j])
{
break;
}
}
if (NULL == arg[0])
{
continue;
}
else if (0 == strcmp(arg[0],"exit"))
{
break;
}
else if (0 == strcmp(arg[0],"cp"))
{
compy(arg[1],arg[2]);
}
else if (0 == strcmp(arg[0],"mv"))
{
Mymv(arg[1],arg[2]);
}
else if(0 == strcmp(arg[0],"touch"))
{
Mytouch(arg[1]);
}
else if(0 == strcmp(arg[0],"ls"))
{
if (NULL == arg[1])
{
Myls();
}
else if(0 == strcmp(arg[1],"-l"))
{
Mylsl();
}
else if(0 == strcmp(arg[1],"-a"))
{
Myals();
}
}
else if(0 == strcmp(arg[0],"mkdir"))
{
Mymkdir(arg[1]);
}
else if(0 == strcmp(arg[0],"rmdir"))
{
Myrmdir(arg[1]);
}
else if(0 == strcmp(arg[0],"pwd"))
{
Mypwd();
}
else if(0 == strcmp(arg[0],"cd"))
{
Mycd(arg[1]);
}
else if(0 == strcmp(arg[0],"ln"))
{
if(0 == strcmp(arg[1],"-s"))
{
Mylns(arg[2],arg[3]);
}
else
{
Myln(arg[1],arg[2]);
}
}
else if(0 == strcmp(arg[0],"remove"))
{
Myremove(arg[1]);
}
else
{
printf("没有该命令!!!\n");
}
}
return 0;
}
项目需求:
1. 获取终端用户输入的命令,并输出相应的执行结果。
touch
cp
mv
ls
ls -a
ls -l
mkdir
rmdir
pwd
cd
ln
ln -s
exit ----------》退出minishell
2. 使用多文件方式实现,使用Makefile管理