FHEM - Hardware > Einplatinencomputer

[Gelöst] Wie bekomme ich den Rückgabewert der Konsole aus dem Skript heraus.

(1/4) > >>

SKg:
Hallo,

Ich habe ein Skript mit folgenden Inhalt:

--- Code: ---#!/bin/bash
sudo echo "abc" >> /home/pi/test.txt

echo

--- Ende Code ---

Ich weiß wenn ich diese Zeile
--- Code: ---sudo echo "abc" >> /home/pi/test.txt
--- Ende Code ---
im Terminal ausführe bekomme ich einen Fehler und zwar:

--- Code: ----bash: /home/pi/test.txt: Keine Berechtigung
--- Ende Code ---

das ist soweit richtig weil die Datei für alle nur Leseberechtigung hat.

Wenn ich das Skript ausführe bekomme ich diese Fehlermeldung nicht.
Wie bekomme ich die Fehlermeldung aus dem Skript als Rückgabewert?
Was muss ich an "echo" übergeben.


MFG
Stephan

Dr. Boris Neubert:
Hallo,

die Fehlermeldung landet auf stderr, während die Ausgabe auf stdout geht.

In der Bash-Man-Page gibt es den Abschnitt REDIRECTION. Die relevante Passage:


--- Zitat ---For example, the command

              ls > dirlist 2>&1

       directs both standard output and standard error to the file dirlist, while the command

              ls 2>&1 > dirlist

       directs only the standard output to file dirlist, because the standard error was duplicated from the standard output before the standard output was redi‐
       rected to dirlist.
--- Ende Zitat ---

Also würde ich mal


--- Code: ---sudo echo "abc" >> /home/pi/test.txt 2>&1
--- Ende Code ---

versuchen. Es kann noch sein, dass Du


--- Code: ---(sudo echo "abc" >> /home/pi/test.txt) 2>&1
--- Ende Code ---

schreiben musst, um die Ausgabe von sudo mit umzuleiten.

Viele Grüße
Boris

SKg:
Hallo,

vielen Dank schon mal an Dr. Boris Neubert


--- Zitat von: Dr. Boris Neubert am 09 September 2021, 13:38:18 ---
Also würde ich mal


--- Code: ---sudo echo "abc" >> /home/pi/test.txt 2>&1
--- Ende Code ---

versuchen. Es kann noch sein, dass Du


--- Code: ---(sudo echo "abc" >> /home/pi/test.txt) 2>&1
--- Ende Code ---

schreiben musst, um die Ausgabe von sudo mit umzuleiten.


--- Ende Zitat ---

Ich habe die Zeilen direkt so ins Skript eingetragen.

--- Code: ---#!/bin/bash
sudo echo "abc" >> /home/pi/test.txt 2>&1
--- Ende Code ---


--- Code: ---#!/bin/bash
(sudo echo "abc" >> /home/pi/test.txt) 2>&1
--- Ende Code ---

Hat beides nicht funktioniert.

MFG
Stephan

Dr. Boris Neubert:
Was bedeutet, dass es nicht funktioniert hat? Was ist das erwartete Ergebnis? Wie ist das Skript in FHEM eingebunden?

Otto123:
Hallo Stephan,

Hilft dir vielleicht das hier https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

Also unter der Vermutung Du willst es irgendwie in fhem haben.

Gruß Otto

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln