Interaktiver Befehl, mit dem der Benutzer das Verzeichnis in der Bash ändern kann

1067
Rich

Ich suche nach einem CURSES-basierten Weg (bash, c, ist nicht wirklich wichtig), den Benutzer einen Ordner oder sogar eine Datei auf ungefähr dieselbe Weise auswählen zu lassen, wie sie es mit Midnight Commander tun würden.

Ich stelle mir vor, den Cursor mit auf / ab zu bewegen, den Cursor mit esc abzubrechen und den Punkt unter dem Cursor mit enter auszuwählen. Wenn das Element eine Datei ist, geben Sie den vollständigen Pfad zu dieser Datei zurück. Wenn das Element ein Ordner ist, wechseln Sie in diesen Ordner.

Kennt jemand eine, die existiert?

Wenn nicht, wie würde ich darüber schreiben? Ich bin hauptsächlich ein Java-Programmierer, also könnte ich JavaCurses verwenden, aber es fühlt sich ein bisschen wie übertrieben an.

1
Und warum nicht mc, Mitternachtskommandant? rems vor 11 Jahren 0
Vielleicht reicht das aus? Ich möchte, dass es sehr gesperrt ist - sie sollten nur eine Datei auswählen oder abbrechen können. Wenn Sie mc laufen lassen, haben Sie natürlich alle möglichen Optionen, viel zu viel für das, was ich will. Rich vor 11 Jahren 0

1 Antwort auf die Frage

1
Dennis Williamson

Sie können mit dialogdenen --fselectDatei- und Verzeichnisnamen entschieden haben .

--fselect dateipath height width
Das Dialogfeld fselect (Dateiauswahl) zeigt ein Texteingabefenster an, in dem Sie einen Dateinamen (oder ein Verzeichnis) und darüber zwei Fenster mit Verzeichnisnamen und Dateinamen eingeben können.

Sie sollten jedoch beachten, dass ein Skript zum Wechseln von Verzeichnissen für die interaktive Shell als Quelle oder in einer Funktion verwendet werden muss, da das Ändern von Verzeichnissen auf die aktuelle Shell beschränkt ist. Mit anderen Worten, wenn ein reguläres Skript beendet wird, gehen alle darin cderledigten Schritte verloren.

Danke dafür - ich habe Dialog heruntergeladen und es zeigt auf jeden Fall so ziemlich was ich will. Was ich anscheinend nicht tun kann, ist die Navigation in der Verzeichnishierarchie. Ich kann einen Ordner oder eine Datei an den Pfad anhängen, aber wenn ich ein Verzeichnis anhange, wird es nicht wirklich in diesen Ordner verschoben. Rich vor 11 Jahren 0
@Rich: Es gibt übrigens auch "--dselect". Wenn Sie in der Anzeige von Dateien und Verzeichnissen meinen, müssen Sie dies selbst in einer Schleife verarbeiten. Rufen Sie `dialog --fselect` erneut mit dem neuen Verzeichnis auf. Die Funktionalität ist leider nicht ganz so wie bei 'mc'. Dennis Williamson vor 11 Jahren 0