Criar um interpretador de comandos

1. Criar um interpretador de comandos

joao paulo
jteodoro

(usa Outra)

Enviado em 24/03/2014 - 16:03h

Olá galera, meu professor de Sistemas Operacionais, passou um trabalho para fazermos um mini shell, ou seja um interpretador para interpretar nossos proprios programas(como o bash), estou com uma dificuldade de saber como começar a fazer isto, gostaria de sugestões de como fazer esta implementação. Uma luz para que eu possa começar, ja que o professor não explicou nada sobre bash nem interpretador de comando. O conhecimento que tenho até o momento é sobre chamadas de sistemas (fork, exec, exit) e processos threads e criação de processos(pthread, pipe), sei que com isso já da para fazer o que foi pedido. Só nao estou conseguindo saber como aplicar este conhecimento e implementar.

Toda ajuda é bem vinda!!

Obg.


  


2. Re: Criar um interpretador de comandos

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/03/2014 - 00:12h

Quando você digita um comando no shell do Unix ou do Windows, como você acha que ele transforma o texto digitado em ações? Será que, por acaso, ele não procura identificar partes diferentes da linha digitada, e então lhes atribui significados?


3. Re: Criar um interpretador de comandos

Luis R. C. Silva
luisrcs

(usa Linux Mint)

Enviado em 25/03/2014 - 11:02h

Bem simples, mas dá uma ideia de como seria:

[code]
#include <stdio.h>
#include <string.h>

main(){
char comando[30];
do{
printf("sh> ");
fflush(stdin);
gets(comando);
system(comando);
}while(strcmp(comando,"exit") != 0);
}
[\code]


4. Re: Criar um interpretador de comandos

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/03/2014 - 17:20h

Acho que não é bem por aí. Como ele mencionou que a matéria ensinou aspectos de gestão de processos e threads, ele não poderia usar system() -- até porque isso seria chamar um shell que já existe, e não fazer um shell --, mas sim decompor a linha de comando em diferentes partes, criar processos filhos, executá-los, controlar a terminação de tais processos, e outros funções relacionadas (como controle de process group, execução em background, pipelines etc.).


5. Ajudaa?

Ramon Souza
RamonS

(usa Outra)

Enviado em 06/11/2014 - 15:19h

Galera , to com o mesmo projeto pro final deste semestre. Alguém pode me ajudar ?


6. Re: Criar um interpretador de comandos

euteste da silva
foxbit3r

(usa Solaris)

Enviado em 06/11/2014 - 18:10h

Sugestão:

Procure na wikipedia o que é um shell.
Os shells mais famosos são: bash, sh, csh e ksh.

Depois abra um terminal do Linux ou o ms-dos e dê alguns comandos, depois coloque em prática o que vc sabe da
linguagem de programação que vc aprendeu.


7. Re: Criar um interpretador de comandos

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 06/11/2014 - 18:51h

Da uma olhada e estudada no código fonte do mini-shell disponível em: https://code.google.com/p/mini-shell/


8. Re: Criar um interpretador de comandos

Joao Manuel Cardoso Soares
jonhy_jotinfor

(usa Outra)

Enviado em 04/06/2017 - 15:16h

Boas pessoal,
Estou com o mesmo problema aqui descrito. Também não posso usar o system(). Alguém me pode ajudar?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts