[LINUX] In Python einen Terminal Befehl mit variable aus raw_input() ausführen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Das ist fast schon alles richtig, was du bisher geschrieben hast:

import os
hname = raw_input("Host: ")
os.system("sudo hostname '%s'" % hname)

So müsste es klappen. :)

PS: Das ist aber erstens nicht gerade sauber und zweitens ziemlich unsicher (im Bezug auf Sicherheitslücken), aber ich glaube, dass ist dir sowieso klar, und es handelt sich nur um ein Miniskript für dich persönlich. Von daher wollen wir mal alle Hühneraugen zudrücken. :)

danke hat funktioniert (:

1

Pseudoantwort, damit Du eine HA auszeichnen kannst.

xD

0

Programm auf Ubuntu deinstallieren?

Hallo, ich wollte das Programm youtube to mp3 von meinem Laptop deinstallieren und habe es über den Terminal mit dem Befehl "sudo apt-get purge youtube to mp3" versucht jedoch bekomme ich die Fehlermeldung dass das Paket nicht gefunden werden kann. Hat jemand ahnung warum ich diese Fehlermeldung bekomme und wie ich mein Programm deinstallieren kann?

...zur Frage

python modularisierung?

Hallo,

Wie kann ich eine Variable Aufrugen die aus einem anderen modul stammt? ich bekomme immer den Fehler das die Variable undefined ist.

Das modul habe ich mittels import importiert.

...zur Frage

Ubuntu apt-get update und upgrade Befehl per Datei ausführen

Hallo Leute ! Aktualisiere mein Ubuntu immer per Terminal. Kann ich eine Datei auf mein Desktop speichern, bei der auf Doppelklick die beiden Befehle

sudo apt-get update und

sudo apt-get upgrade

HINTEREINANDER ausgeführt werden ? Am besten sichtbar im Terminal oder so...

...zur Frage

bash Script: Leerzeichen- und Variablen-Auswertungsproblem?

Hallo!

( tl;dr ? überflieg das Fettgedruckte und das CodeBeispiel =) )

Das Problem ist etwas komplexer, ich konnte es aber auf das folgende, einfache Problem begrenzen:

  • Prüfe ob das Verzeichnis /backups/01 today/ existiert.
  • falls Ja: Wechsle in das Verzeichnis und dann führe den Befehl macheX aus
  • ansonsten: gib eine Fehlermeldung aus

Kern des Problems: Das Verzeichnis enthält enthält ein Leerzeichen und der Pfad muss vor dem Prozess in der Variablen DIRR gepeichert werden. (Der Pfad kann nicht umbenannt werden, das wäre zu einfach)

Ich habe in etwa folgendes:

#!/bin/bash

DIRR="/backups/01 today"

if [ -d $DIRR ];
then
  cd $DIRR
  macheX
else
   echo "FEHLER: $DIRR existiert nicht!"
fi

Wie man sieht wird die Variable DIRR anfangs gesetzt und wird anschließend auf drei unterschiedliche arten ausgewertet. Ich habe im Code-Beispiel bewusst auf ` ' und " Einfassungen von DIRR verzichtet, denn genau das ist das Problem! Wie müssen diese DIRR eingefasst werden und wie der Pfad angegeben werden, damit es funktioniert?

Ich habe etliche Kombinationen durch und werde langsam verrückt. =) Wenn ich den Pfad z.B. mit oder ohne escape-Zeichen vor dem Leerzeichen angebe, dann klappt das eine aber es hakt dann wieder wo anders. In der Fehlermeldung darf das Verzeichnis beliebig erscheinen (mit ` ' " oder auch dem escape-Zeichen \ )

Wer schafft es mein Brett vorm Kopf zu zersägen? =)

...zur Frage

bash fehler?

-bash: ./start.sh: /bin/bash^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden

was ist da der Fehler?

...zur Frage

Mac OC Terminal Eingabe rückgängig machen?

Ich habe in Mac OS Terminal den Befehl eingegeben: "sudo shutdown -h +60" (mit anschließender Passwort-Freigabe).

Der Computer soll nun aber doch nicht nach 60 Minuten herunter fahren.

Wie kann ich das verhindern und die Terminal-Eingabe rückgängig machen ???

...zur Frage

Was möchtest Du wissen?