prosta powłoka w C

0

mamy "grupowo" (tylko takie to będzie grupowe, że 99,9% wykonania i starań będzie moje) na studiach wykonać projekt powłoki (szczegóły niżej), stąd moje pytanie: nie miałem okazji bliżej zagłębiać się w tematy powłoki linuksa, bo nie było mi to w sumie potrzebne, ale może ktoś podpowiedzieć jak zacząć lub podać jakieś ciekawe przykłady/podpowiedzi bym mógł na czymś bazować? :P

treść zadania:

W ramach projektu należy stworzyć uproszczoną wersję powłoki pracującej w systemie Linuks.
Minimalna funkcjonalność powinna obejmować:

  1. Wbudowaną obsługę zmiennych środowiskowych, tzn. możliwość ustawiania i wyświetlania
    dowolnej zmiennej środowiskowej.
  2. Wbudowane polecenie pwd wyświetlające aktualny katalog roboczy
  3. Wbudowane polecenie cd pozwalające na zmianę katalogu roboczego. Polecenie powinno
    akceptować nazwy ścieżkowe. Wykonane bez argumentu powinno zmieniać katalog roboczy
    na katalog domowy użytkownika.
  4. Wbudowane polecenie ls wyświetlające zawartość katalogu roboczego (jeżeli podane bez
    argumentów) lub dowolnego podanego jako argument.
  5. Wbudowane polecenie ll odpowiadające poleceniu ls l.
    Funkcjonalność jak w pkt 4.
  6. Możliwość uruchomienia dowolnego programu poprzez podanie jego nazwy (ew. nazwy
    ścieżkowej).
0
0

jak się uzyskiwało odczytywanie wpisanego przez siebie polecenia?
np. dam "pwd" jako polecenie, a nie żeby mi wczytywało po jakimkolwiek tekście wprowadzonym w konsoli

0

Eee ale wtf? Bo ja nadal nie rozumie. Nie umiesz wczytać komendy od użytkownika? o_O Nie umiesz porównać stringów? Jaja sobie robisz?

char komenda[100];
fgets(komenda,100,stdin);
if(strcmp(komenda,"pwd")==0){
  printf("User wpisał pwd!");
} else{
  printf("Wpisal co innego...");
}
0

dalej się z tym męczę, nie wiem jak to zorganizować, skoro dla kogoś to jest w miarę proste, to mógłbym prosić o jakiś przykładową część?
mam ls i dalej nic ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1