FHEM - Hardware > Einplatinencomputer

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

<< < (2/4) > >>

SKg:
Hallo,

@Dr. Boris Neubert

aktuell rufe ich das Skript noch garnicht in Fehm auf weil es erst noch im Terminal funktionieren soll.

Im Skript steht bis jetzt folgendes:

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

--- Ende Code ---

Wenn ich das Skript im Terminal aufrufe dann passiert das:

--- Code: ---pi@Bergha-pi:~$ sudo sh /opt/fhem/test.sh
pi@Bergha-pi:~$

--- Ende Code ---

ich hätte aber das erwartet:

--- Code: ----bash: /home/pi/test.txt: Keine Berechtigung
pi@Bergha-pi:~$

--- Ende Code ---

Wenn ich das Skript dann später in Fhem ausführe:

--- Code: ---my $wert=qx(sudo sh /opt/fehm/test.sh)

--- Ende Code ---


dann hätte ich gern das "-bash: /home/pi/test.txt: Keine Berechtigung" in $wert steht.

@Otto123

Ja, den Beitrag habe ich schon 3xgelesen aber irgendwie finde ich die Syntax für meinen Anwendungsfall nicht.


MFG
Stephan

SKg:
Hallo,

@Otto123

Wen ich in der Fhem Kommandozeile folgendes eingebe:

--- Code: ---{qx(sudo echo "abc" >> /home/pi/test.txt)}
--- Ende Code ---

dann bekomme ich nichts zurück geliefert obwohl es einen Fehler mit der Schreiberechtigung auf "test.txt" gibt.

MFG
Stephan

Wernieman:
Da ein mit qx aufgerufenes Script FHEM blockiert, würde ich Dir einen anderen Weg empfehlen.

Pushe vom Script die Daten zu FHEM.

Und noch etwas:
Ob etwas geklappt hat oder nicht, sieht man in der "errorvariable" $?
Für eine Pipe: https://stackoverflow.com/questions/1550933/catching-error-codes-in-a-shell-pipe

Wenn ich mich nicht irre, reicht sudo den Status durch ... aber diese Angabe ist OHNE GARANTIE

Dr. Boris Neubert:
Hallo Stephan,

ich bin verwirrt. FHEM wird doch vermutlich als User fhem ausgeführt. Im Terminal rufst es als pi auf. Und dann ist noch unklar, ob fhem sudo darf, wem die Testdatei gehört, und welche Rechte sie hat.

Grüße
Boris

SKg:
Hallo,

@Werniman

wenn ich das Skript so schreibe:
--- Code: ---#!/bin/bash
sudo echo "abc" >> /home/pi/test.txt


echo $?
--- Ende Code ---


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


echo "$?"
--- Ende Code ---

dann wird immer "0" zurückgegeben obwohl es ein Fehler gab.

MFG
Stephan

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln