Piszę program, a mianowicie jest to własna powłoka.
Mam pewien problem, chcę aby powłoka zawierała wbudowane polecenie cd pozwalające na zmianę katalogu roboczego. Polecenie powinno akceptować nazwy ścieżek. Polecenie wykonane bez argumentu powinno zmieniać katalog roboczy na katalog domowy użytkownika.
Nie bardzo wiem jak się do tego zabrać, mój dotychczasowy kod wygląda tak:
Kod: Zaznacz cały
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
string command;
cout << "\tIf you do not know what a shell command please enter 'help'!\n\n";
while( command != "exit" )
{
if(command == "pwd") //Wbudowane polecenie pwd wyświetlające aktualny katalog roboczy
system("pwd");
else if (command == "cd")
system("cd");
else if (command == "ls")
system("ls");
else if (command == "ll") //Wbudowane polecenie ll odpowiadające poleceniu ls *l.
system("ls -l");
else if (command == "clear")
system("clear");
else if( command == "help" )
cout << "pwd - Print name of current/working directory.\ncd - Built-in cd command allows you to change the working directory.\n\n";// mini wersja man pwd
else if( command != "\0" )
cout << "Error: unknown command!\n";
cout << "#shell --> ";
cin >> command;
}
return 0;
}