Hallo, ich hätte eine Frage zu einem Python Projekt. Ich habe ein Python Projekt auf einem unix Server, in welchem ich einen Parameter mitgebe Bsp.: ./mein_Projekt Hallo print("Hallo") ./mein_Projekt Tschüss print("Tschüss") Es gibt auf Unix Ja diese Autovervollständigung, wenn man den Anfang eines Datei namens eingibt kann man diesen mit Tab vervollständigen. Meine frage währe jetzt, ob ich so etwas für meine Parameter machen kann, obwohl diese nicht als Datei bestehen?
Leon schrieb: > Meine frage währe jetzt, ob ich so etwas für meine Parameter machen > kann, obwohl diese nicht als Datei bestehen? Ja das geht die Technik heißt bash autocomplete und es gibt ein pip module argcomplete welches dir hilf das zu erreichen. d.h. wenn du denn argparser verwendest um die Parameter zu parsen.
Leon schrieb: > Hallo, > ich hätte eine Frage zu einem Python Projekt. Ich habe ein Python > Projekt auf einem unix Server, in welchem ich einen Parameter mitgebe > Bsp.: > > ./mein_Projekt Hallo > print("Hallo") > ./mein_Projekt Tschüss Hmm, Umlaute in Kommandozeilen-Optionen. Kann man machen, kann man sich je nach Locale später auch drüber ärgern. > Es gibt auf Unix Ja diese Autovervollständigung, Nicht Unix (oder Linux). Das ist eine Eigenschaft der jeweiligen Shell. Manche alten Shells können es gar nicht. Die weit verbreitete bash kann es. > Meine frage währe jetzt, ob ich so etwas für meine Parameter machen > kann, obwohl diese nicht als Datei bestehen? Lade folgendes in die bash (ich konnte mich nicht überwinden den Umlaut zu nehmen):
1 | complete -W "Hallo Tschuess" mein_Projekt |
Das ist eine der simpelsten Arten eine Autocompletion zu definieren. "complete" kann einiges mehr. Noch ein paar Anmerkungen:
1 | mein_Projekt |
So eine Kombination aus Unterstrich und Kamelhöcker-Notation vermeidet man in jeder Programmiersprache, auch in Shell-Scripten. In Shell-Skripten vermeidet man sogar beides einzeln. Die "natürliche" Schreibweise auf Unix/Linux-Systemen ist durchgehend Kleinschreibung. Keine Kamelhöcker. Meist, auch wenn es hässlich ist, schreibt man alles zusammen. Also
1 | meinprojekt |
Wenn das zu hässlich aussieht, dann eine Trennung durch '-', nicht '_', weil man für das '-' keine Shift-Taste drücken muss:
1 | mein-projekt |
Programmnamen mit '_' findet man zwar auch in den offiziellen Distributionen, aber daran erkennt man, dass mal wieder ein paar Skript-Kiddies am Werk waren. Zu Umlauten habe ich schon was gesagt. Wenn immer es geht Programmname, Optionen und Flags in 7-Bit ASCII. Das gilt nicht für Parameter. Da hat man keine Kontrolle drüber. Wenn jemand in einer Latin-1 oder z.B. Unicode-Locale einem Programm einen Parameter wie "Gehäuseübergröße.txt" mitgeben möchte dann kann man das nicht verhindern.
:
Bearbeitet durch User
Hannes J. schrieb: > Hmm, Umlaute in Kommandozeilen-Optionen. Kann man machen, kann man sich > je nach Locale später auch drüber ärgern. > Lade folgendes in die bash (ich konnte mich nicht überwinden den Umlaut > zu nehmen): Da musste ich grinsen. Ging mir bis vor einiger Zeit ähnlich, aber dann, gegen Ende des letzten Jahrtausends habe ich beherzt auf UTF-8 umgestellt. ;-) Wenn man jetzt noch daran denkt das Python3 so etwas erlaubt:
1 | def verfügbare_Zeit_µs(): |
Hannes J. schrieb: > Programmnamen mit '_' findet man zwar auch in den offiziellen > Distributionen, aber daran erkennt man, dass mal wieder ein paar > Skript-Kiddies am Werk waren. Das ist natürlich völliger Unsinn.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.