Shell/Konsole schreiben



  • Ich habe begonnen eine konsole zu schreiben.
    Die Eingabe durch den Benutzer erfolgt durch folgendes Muster:

    befehlsname par1 par2 par3
    

    Das Parsen der Eingabe hab möchte ich so in der Art realisieren:

    int main( int argc, char * argv[] ) 
     { 
    
         while(1) 
         { 
         parse( argc, argv ); 
         } 
     } 
    
     void parse(int argc, const char * const * argv) 
     { 
             vector<string> args; 
             for (int i = 0; i < argc; i++) 
                 args.push_back(argv[i]); 
     }
    

    Die strings werden anschließen in die entsprechenden Variablentypen umgewandelt.

    Nun wäre es noch schön, in der Konsole zusätzlich eine "history" (mit pfeiltaste oben) und eine "autovervollständigung" (tabulator) einzurichten.
    Hat jemand eine Idee wie man das machen könnte?
    Gibt es dazu für Linux Bibliotheken die einem sowas erleichtern?
    Danke für alle die sich Zeit nehmen dies durchzulesen.



  • Schau mal nach der GNU readline Bibliothek



  • Ausserdem musst du dich über die Unix Pipes informieren.
    Ich weiss nicht, wie mächtig deine Shell werden soll, aber wenn GNU readline nicht ausreicht, schau dir mal Bison an.


Anmelden zum Antworten