ubuntuusers.de

Brother Faxen klappt mal wieder nicht

Status: Gelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1414

Bezüglich yad müsste ich eine graphische GUI erstellen die den Befehl
Aber könntest Du mir da helfen?

Für so ein Pillepalle? Na gut. Hier ein Script (nennen wir es yadfax.sh):

#!/bin/bash
# Wrapper für Fax-Versand mit Hilfe von YAD

Datei="$1"
Nummer="$2"

IFS="|" read Datei Nummer Papier Quality <<<$(yad \
 --title="Testtitel Drucken auf BRFAX" --form \
 --field="Datei:SFL" "$Datei" \
 --field="Nax-Nummer" "$Nummer" \
 --field="Papiergröße:CB" "A4\!letter\!legal" \
 --field="Qualität:CB" "Standard\!Fine" 2>/dev/null)

#cmd="lpr -P BRFAX"
cmd="brpcfax"

[ -n "$Datei" ] && [ -n "$Nummer" ] && (
echo $cmd -o fax-number="$Nummer" -o PaperType=$Papier -o Quality=$Quality "$Datei"
#$cmd -o fax-number="$Nummer" -o PaperType=$Papier -o Quality=$Quality "$Datei"
) || (
echo "Es fehlt entweder die Datei oder die Fax-Nummer"
)

Diese paar Zeilen kannst du ja nach Gusto anpassen. Der Aufruf kann mit den Parametern mitgegeben werden, wenn man diese nicht über die GUI auswählen will. Beispiel:

$ ./yadfax.sh dir/file.pdf 053149059113
$ # oder ohne Fax-Nummer
$ ./yadfax.sh dir/file.pdf
$ # oder auch ohne Datei
$ ./yadfax.sh

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

shiro schrieb:

Bezüglich yad müsste ich eine graphische GUI erstellen die den Befehl
Aber könntest Du mir da helfen?

Für so ein Pillepalle? Na gut. Hier ein Script (nennen wir es yadfax.sh):

Ich hab damit noch nie was gemacht. Also für mich kein Pillepalle...?!

Danke

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1414

Ich hab damit noch nie was gemacht. Also für mich kein Pillepalle...?!

Sorry, ich hatte "bash" und "yad" für Basiswissen von Linux-Nutzern gesehen. Aus diesem Grund möchte ich das oben gelistete Script ein wenig erklären, da es ja sein kann, dass die Funktionalität auch für andere Leser nicht sofort erkennbar ist.

Das Script ist eine einfache Ansammlung von Bash Befehlen.

Der "yad" Befehl baut ein Formular (--form) auf, das mehrere Felder (--field) enthält. Der Typ des Feldes kann nach dem beschreibenden Text und dem ":" mit einer Kennung versehen werden, die den Eingabetyp beschreibt. Mit "SFL" wird eine File-Selector-Box verbunden, damit man in einem Verzeichnis eine Datei auswählen kann. Mit "CB" wird eine "Check-Box" Eingabe unterstützt. Nach dem Feldnamen und Typ kann der Default-Wert angegeben werden. Bei "CB" ist die Liste der auswählbaren Textelemente durch das Trennzeichen "!" separiert. Damit "bash" das "!" nicht anderweitig interpretiert, wird es "escaped" (\!). Wenn man nichts anderes angegeben hat, hat die "yad" Box stets eine "Cancel" und "OK" Schaltfläche am unteren Ende. Drückt man den "OK" Button, erhält man die Liste der Eingabewerte getrennt durch das Zeichen "|" als einen String zurück. Durch den "$(...)" Aufruf, wird der "yad" Befehl in einem eigenen Fork abgearbeitet.

Die von "yad" ausgegebene Zeichenkette wird durch "<<<" (bash-here-string) an den "read" Befehl geleitet, der die einzelnen "bash" Variablen (Datei Nummer Papier Quality) füllt. Damit "read" die Einzelwerte erkennen kann, wird die Variable "IFS" mit dem "|" Trennzeichen für diese Aktion versehen. Da die "IFS" Definition in er gleichen Zeile wie der "read" Befehl steht, gilt diese Definition nur für diesen einen Schritt.

Mit der Variablen "cmd" wird der auszuführende Befehl festgelegt. Mit "brpcfax" wird der gleiche "lpr" Befehl erzeugt nur dass zuvor noch eine Prüfung der Parameter auf Sinnfälligkeit erfolgt und z.B. die Fehlermeldung (INVALID FAX NUMBER) ausgegeben werden kann.

Danach wird geprüft, ob die Variablen "Datei" und "Nummer" überhaupt etwas enthalten und der auszuführende Befehl mit den Parametern per "echo" ausgegeben. In der Folgezeile ist der Befehl noch einmal aufgeführt aber durch das Zeichen "#" auskommentiert. Um den Befehl "scharf" zu machen, muss demnach das Kommentar-Zeichen "#" in der 1. Spalte entfernt werden.

Ich hoffe, mit diesen Ausführungen niemand allzu sehr gelangweilt zu haben. (Sorry)

coraggioso

Anmeldungsdatum:
22. August 2025

Beiträge: 389

Spacetaxi schrieb:

Ja sicher. Aber generell ist nichts schlechtes am Fax. Wenn das Internet mal ausfällt hat man hat die Möglichkeit Text in DIN A4 zu senden, daran ist erst mal überhaupt nichts verkehrt.

Doch, deine Annahme, dass das ginge ist verkehrt. Heute gibt es so gut wie ausschließlich IP basierte Telefonie bei den Kommunikationsnetzbetreibern. Ohne funktionierendes Internet keine IP-Telefonie. Ohne IP-Telefonie keine Möglichkeit Text in DIN A4 als Fax zu senden 😉

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

Danke. Ob das nun jeder Ubuntuanwender auch basismäßig drauf haben muss weiss ich nicht. Interessant, danke. Man lernt ja immer noch dazu und kann sich das bei Zeit und Gelegenheit auch mal verinnerlichen.

Den wiki bash habe ich mir angesehen (drüber geflogen)

auf den ersten Blickdas jetzt sofort mit "yad" so umzusetzen wie du das gemacht hast, muss man sich wohl schon etwas länger mit beschäftigen. In 5 min. ist das nicht gemacht.

aber seh ich mir mal an.

Ich habe keinen "ok" Botton, bei mir steht "Ausführen" anstatt ok und "Absagen" anstatt "cancel"

Kann man das ändern?

Gibt es irgendwo eine bessere Anleitung zum bash (lernen) . Die $ ausgabe ist nirgendwo erklärt wenn ich so im Netz stöbere.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1414

In 5 min. ist das nicht gemacht.

Na ja, das Schreiben des Scripts hat deutlich weniger Zeit benötigt. Die Erklärung im vorherigen Post schreiben aber deutlich mehr. Erfahrungsgemäß verringert sich die Erstellzeit je häufiger man so etwas macht.

Bezüglich "yad" kann es sich lohnen, diese Webseite zu besuchen.

Ich habe keinen "ok" Botton, bei mir steht "Ausführen" anstatt ok und "Absagen" anstatt "cancel". Kann man das ändern?

Wird sicher möglich sein (ev. LANG=C). Ich verwende bei "yad" aber nicht die Paket Version sondern bilde sie mir aus den GIT Quellen lieber selber. Das geht fast genau so schnell und man kann wesentliche Funktionen (wie --html) mit realisieren, die man bei der Paket-Version nicht bekommt. (Eventuell haben die Leute, die die Pakete erstellen die Notwendigkeit nicht gesehen oder es war ihnen zu kompliziert.) Aber das ist ja das Schöne an Linux: Was nicht durch irgendeinen "Store" angeboten wird, macht man halt schnell selbst.

Gibt es irgendwo eine bessere Anleitung zum bash (lernen)

Bücher und Tutorials gibt es wie Sand am Meer (frag die Suchmaschine deiner Wahl). Was man bevorzugt, ist sicher individuell unterschiedlich. Handbücher sind gut aber aus meiner Sicht effektiver ist das "selber machen", auf die Nase fliegen und sich die Lösung selbst erarbeiten. Das vertieft den Lerneffekt.

PS:

Die $ ausgabe ist nirgendwo erklärt wenn ich so im Netz stöbere.

Den Satz verstehe ich nicht. Meinst du die Ausgabe des Inhalts einer Variablen durch z.B $Variable ? Das steht doch im "man".

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

Kann man das Skript auch als app öffnen. Ohne das das Terminal sichtbar ist, mit Doppelklick? Das hat geklappt

[Desktop Entry]
Name=yad.sh
Comment=Führe Testscript im Terminal aus
Exec=gnome-terminal --execute "/home/ubuntu/bin/yad.sh"
Terminal=false
Type=Application

Mein Skript befindet sich in /home/benutzer/bin

Obwohl Terminal auf fals steht, öffnet sich im Hintergrund das Terminal. Wenn ich "true" umstelle öffnen sich 2 Terminals.

Kann mir da jemand helfen?

/usr/bin/qbittorrent &
/usr/bin/qbittorrent &>/dev/null &

Das setze ich ans Ende der Zeile? hab ich gefunden, aber dann werden die Rechte verweigert

Hab jetzt die desktop datein in /home/Benutzer/.local/share/applications abgelegt. Und der dash hinzugefügt. Das Einzuge was mich stört, dass das terminal immer aufgeht.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1414

Obwohl Terminal auf fals steht, öffnet sich im Hintergrund das Terminal.

Aber das ist doch das, was du mit der .desktop Datei angefordert hast.

Ich verwende zwar kein "gnome-terminal" kann mir aber bei deiner Starter-Konfiguration das Ergebnis vorstellen. Wenn du kein Fenster im Hintergrund haben willst, darfst du doch auch kein "gnome-terminal" Programm starten.

Zunächst aber mal ein paar grundlegende Konfigurations-Fragen:

  • Ist der Pfad "$HOME/bin" im PATH Environment definiert? Das kannst du relativ leicht feststellen, wenn du ihn nach dem Befehl

    $ echo "$PATH" | grep -o "$HOME/bin" 

    angezeigt bekommst. Wenn nicht, solltest du ihn an der von dir gewünschten Stelle einfügen. Normalerweise sollte dies allerdings bereits in "~/.profile" vorhanden sein:

    $ grep -C 1 "PATH=\"\$HOME/bin" ~/.profile
    if [ -d "$HOME/bin" ] ; then
        PATH="$HOME/bin:$PATH"
    fi
    $ 

    Wenn nicht, füge die 3 Zeilen an geeigneter Stelle hinzu.

  • Dein Script "yad.sh" im "$HOME/bin" Verzeichnis sollte ausführbar sein. Wenn dies nicht der Fall ist mache es ausführbar z.B. mittels

    $ chmod 755 $HOME/bin/yad.sh
  • Dein Launcher (z.B. im Verzeichnis "$HOME/.local/share/applications") sollte in der "Exec" Zeile den folgenden Inhalt stehen haben

    ...
    #Exec=gnome-terminal --execute "/home/ubuntu/bin/yad.sh"
    Exec=/home/ubuntu/bin/yad.sh
    ...

    Die Kommentarzeile (#) kann auch gelöscht werden. Wenn du dann den Launcher aktivierst (über Icon oder Start-Menu), sollte kein Teminal-Fenster mehr erscheinen. Die "bash" shell wird ja im Script über den "shebang" (#!) angefordert.

/usr/bin/qbittorrent &>/dev/null &

Was willst du mit diesem Befehl bewirken? Überlege mal, ob da nicht eine Klammerung hilfreich sein kann.

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

Ja, das "gnome terminal" in der.desktop Datei eingefügt ist, dachte ich mir auch, aber wusste eben nicht wie man das umstellt.

Ich hab mich auch mal über bash skript schlau gemacht. Hab jetzt auch bei ubuntuusers brauchbare Artikel gefunden." $ " steht also für variablen, das" & " kann man an den Befehl anhängen dann würde das Terminal im Hintergrund, also niçht angezeigt angeblich, das hat nicht geklappt.

Ich werde nachher alles posten. Chmod 755 hatte ich ausgeführt, vorher ein chmod +x.

Ich kümmere mich nachher drum.

Wie man das in den PATH einträgt muss ich nachschauen. ( mit Texteditor nehm ich an)

Ich schau erstmal ob das bereits im PATH liegt. In welcher Datei liegt PATH nochmal - sorry für die Frage.

Exec=/home/ubuntu/bin/yad.sh

startet also ohne Terminal, sollten alle anderen Vorraussetzungen gegeben sein, so hab ich das jetzt verstanden.

Das > #

verstehe manchmal nicht warum dahinter was angezeigt wird was eh ignoriert wird.

Wird trotzdem vom Programm gelesen in manchen Fällen, soweit war ich noch nicht.

Ich weiss schon über die Jahre dass dàs ignoriert wird; ausgeklammert wird, aber der Sinn hat soch mir noch nicht immer erschlossen. ( ausser natürlich man braucht es und entfernt die Klammer dann nachträglich)

Bis später Achso

$ chmod 755 $HOME/bin/yad.sh

also mit Varable, wäre das ohne Varable falsch, also

chmod 755 /home/bin/yad.sh

Die andern beiden Skripte dir drin sind hab ich im richtigen Verzeichnis ( bin ) einfach mit 755 chmod y3 ( yt- dlp " --extract-audio mp3. . ausgeführt.

Bedeutet also die Variable in dem Fall nur das die Rechte der gesammten Datei geändert werden, aber das wird doch auch ohne " $ " oder?

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1414

In welcher Datei liegt PATH nochmal - sorry für die Frage.

Die Antwort auf diese Frage ist etwas komplexer, wenn sie exakt beantwortet werden soll. Ich mach das jetzt mal sehr oberflächlich.

Beim Anlegen deines Users werden in der Regel Dateien wie z.B. ".profile" und ".bashrc" aus dem Verzeichnis "/etc/skel" in dein Benutzerverzeichnis kopiert, das unter dem Verzeichnis "/home" liegt. Diese Dateien werden durch Programme oder dich angepasst.

Mit deiner Anmeldung wird dein Prozess-Kontext erzeugt. Dabei werden einige Environment-Variablen definiert. Die Variable "PATH" wird in der Regel durch die Definition in ".profile" vorbesetzt und kann durch andere Scripte angepasst/erweitert werden.

Da du dich z.B. als Benutzer "ubuntu" anmeldest, wird "USER" mit der Zeichenkette "ubuntu" belegt. Da interaktive Benutzer ihre Daten irgendwo ablegen wollen, ist unter dem Verzeichnis "/home" das Benutzerverzeichnis (bei dir "ubuntu") mit weiteren Unterverzeichnissen angelegt. Die Variable "HOME" wird daher mit dem String "/home/ubuntu" versehen. Die angelegten Enviroment Variablem mit ihren Werten kannst du aus der Ausgabe des Befehls "printenv" ersehen. Jetzt hier zu erläutern, wann, wie, welche Variable nach welchen Regeln gesetzt wird, würde hier aber zu weit führen.

$ chmod 755 $HOME/bin/yad.sh

Aus der obigen Beschreibung wird somit klar, dass dein Befehl "$HOME" enthalten muss und eine komplett andere Funktion hat als "chmod 755 /home/bin/yad.sh".

... aber das wird doch auch ohne " $ " oder?

Nein. Wie oben beschrieben, wird bei dir die Variable "$HOME" ersetzt durch ihren Inhalt und der ausgeführte Befehl lautet dann "chmod 755 /home/ubuntu/bin/yad.sh".

Es gibt übrigens die Möglichkeit diese Aktionen bei der "bash" zu "debuggen", indem man den Schalten "set -x" setzt (Ausschalten des Debuggings mittels "set +x").

DocHifi

Avatar von DocHifi

Anmeldungsdatum:
21. Oktober 2008

Beiträge: 1486

Ist eine FritzBox vorhanden ?

Wenn ja,dann Roger Router verwenden, schon klappt das faxen.

https://wiki.ubuntuusers.de/Fritzbox/Roger_Router/

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

shiro

Ich melde mich die Tage. Hab die Rufnummerübernahme bezüglich der Faxnummer beantragt. Dauert noch ein paar Tage. Ab heute hab ich aber wieder Internet. Führe das morgen mal aus.

Bis bald

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

DocHifi schrieb:

Ist eine FritzBox vorhanden ?

Wenn ja,dann Roger Router verwenden, schon klappt das faxen.

https://wiki.ubuntuusers.de/Fritzbox/Roger_Router/

Nein, mache das auf diese Weise. Klappt ja alles. Nur noch noch die Feinheiten...

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

@shiro

Funktioniert.

Aber faxt nicht.

Bearbeitet von schwarzheit:

Fullquote entfernt. Bitte benutze keine kompletten Zitate. Lies dazu Zitate & Verhaltenskodex/Fullquote.

Spacetaxi

(Themenstarter)

Anmeldungsdatum:
24. Februar 2014

Beiträge: 3333

Fax wird nicht gesendet. Sonst alles wunderschön.

Kann man mir da helfen?

Vielleicht Fehler im Skript?

brpcfax -o fax-number=053149059113 /home/debian/Documents/Testfax.pdf 

Das wird im Terminal einwandfrei gefaxt..

Das Skript bleibt tot nach Einfügen der.pdf und nach Eingabe der Nummer.