Variable abgleichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Hi, es geht um USB mount.
Ist es möglich, eine Variable abzugleichen, die im "subprocess" statt findet?
Ich möchte eine UUID vom USB vergleichen, und wenn es übereinstimmt, soll das subprocess command ausgeführt werden.
Hier die Variable

Code: Alles auswählen

command = "mount UUID=cff8e52e-96fb-43a4-98d9-a898b2869414 /home/usb"
Im Prinzip soll, wenn die UUID vorhanden ist, der Befehl "subprocess" ausgeführt werden.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was ist "der USB"? Woher kommt man an die Variablen von "der USB"? Was sollen da fuer Variablen *im* subprocess stattfinden?
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Ich möchte einen USB mounten, ich hab die UUID, und wenn der USB mit der UUID eingesteckt ist, soll er gemountet werden.
Mir geht es jetzt nur darum, dass ich irgendwie die UUID abgleiche, so funktioniert das Script, nur wenn ein anderer USB eingesteckt wird mit einer anderen UUID (logischerweise), dann gibt es im Terminal ne Fehlermeldung "mount: can't find UUID=cff8e52e-96fb-43a4-98d9-a898b2869414".
Das möchte ich vermeiden, ich hab es schon mit try und except versucht, aber nicht mit Erfolg krönen können.
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du gibst nach wie vor nur irgendwelche Bruchstuecke zu Protokoll. Weder Code, noch eine ausfuehrliche Beschreibung davon, was du machst. Damit kann ich dir nicht helfen - viel Glueck.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Mein code sieht zurzeit so aus:

Code: Alles auswählen

#!/usr/bin/python

import os
import subprocess

command = "mount UUID=cff8e52e-96fb-43a4-98d9-a898b2869414 /home/usb"
subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)

egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

So mounte ich den bestimmten USB stick an die jeweilige stelle, wenn aber ein anderer USB angesteckt ist, dann gibt es ne Fehlermeldung, das möchte ich vermeiden.
Das Script möchte ich dann später noch erweitern.
Benutzeravatar
noisefloor
User
Beiträge: 3853
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also normalerweise regelt man das auch so, dass man eine udev-Regel erstellt, die dann z.B. dein Python-Skript startet.

Das gezeigte Skript macht auch so wenig Sinn... warum ein Pythom-Skript, was man in der Shell mit einer Zeile lösen kann?

Gruß, noisefloor
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Ich wollte es so lösen, aber wenn das so einfach nicht machbar ist, dann muss ich es anders machen.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Könnte man sowas mit "try" und "except" abfangen?
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein. Dann ist es schon zu spaet im Sinne, das dein Kommando schon gelaufen ist, und vor allem: die UDEV-Regel hat schon zugeschlagen. Fuer andere Devices passiert also *nix*, nicht nur nicht das, was du willst.

UDEV ist dafuer *GEMACHT*, auf solche Bedingungen hin etwas konfigurierbares zu machen. Du bist schon an den Grenzen deiner Programmierkenntnisse, wenn es darum geht, eine Verzweigung einzubauen. Warum willst du unbedingt die Funktionalitaet von UDEV selbst nachprogrammieren?
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

OK dann lass ich es.
Trotzdem danke für die Hilfe.
Antworten