Ich schreibe eine Manpage für ein Programm, das ich verpacke. Wie kann ich die erstellte Manpage-Datei anzeigen, um zu überprüfen, ob alles in Ordnung ist? Gibt es eine Möglichkeit, meine Datei direkt an den man
Befehl zu übergeben, anstatt die installierten Manpages nach Namen durchsuchen zu lassen?
Ich habe versucht, Dinge wie man myprog.1
und auszuführen man < myprog.1
, aber in beiden Fällen erhielt ich die Fehlermeldung, dass die Manpage nicht gefunden werden konnte.
Antwort1
man
hat eine Option zum Lesen einer lokalen Datei:-l
-l, --local-file
Aktiviert den „lokalen“ Modus. Formatiert und zeigt lokale Handbuchdateien an, anstatt die Handbuchsammlung des Systems zu durchsuchen. Jedes Handbuchseitenargument wird als Nroff-Quelldatei im richtigen Format interpretiert. Es wird keine Cat-Datei erstellt.
Wenn „-“ als eines der Argumente aufgeführt ist, wird die Eingabe von stdin übernommen. Wenn diese Option nicht verwendet wird und man die erforderliche Seite nicht finden kann, versucht es vor der Anzeige der Fehlermeldung so zu handeln, als ob diese Option angegeben worden wäre, indem der Name als Dateiname verwendet wird und nach einer genauen Übereinstimmung gesucht wird.
So können Sie eine Vorschau Ihrer laufenden Arbeit anzeigen mit:
man -l /path/to/manfile.1
Antwort2
Die „alte Schule“ für Systeme, die vor dieser -l
Option existierten, ist
nroff -man filename | more -s
Antwort3
Ich habe einfach verwendet
man ./path/to/man.1
Sie müssen einen Schrägstrich in den Pfad einfügen, sonst werden die Systemverzeichnisse durchsucht. Funktioniert auf meinen Linux- und OS X-Systemen (letzteres hat kein -l
).
$ cd /tmp
$ cp /usr/share/man/man1/ls.1 .
$ man ls.1
No manual entry for ls.1
$ man ./ls.1 # works
Antwort4
Unter Solaris überschreibt der -M
Schalter man
den Suchpfad für Manpages: -
man -M path/to/man myprog
Ihre Manpage-Datei muss sich in einem geeigneten Unterverzeichnis befinden, das dem Abschnitt und der Auszeichnungssprache entspricht, z. B. path/to/man/man1/myprog.1
für eine Nroff-Manpage in Abschnitt 1.