2016-08-11 1 views
-2

Ich möchte, dass ein Skript nach dem Ankreuzen Präferenz auf einem Android-Telefon ausführen. Der Knebel ist getan, aber jetzt führt er dies:Wie konvertieren Bash-Skript-Sprache zu Java

if (preference == mRandomizeMac) { 
     SystemProperties.set(RANDOMIZE_MAC_PERSIST_PROP, (Boolean) newValue ? "1" : "0"); 

Statt Satz Systemeigenschaften, ich möchte das folgende Skript haben ausgeführt:

macaddr="$(dd if=/dev/urandom bs=1024 count=1 2>/dev/null|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\)\(..\).*$/\1:\2:\3:\4:\5:\6/')" 
echo $macaddr > /sys/devices/fb000000.qcom,wcnss-wlan/wcnss_mac_addr 

Antwort

1

Sie Java gemeint Unter der Annahme, und nicht javascript, aufgrund der Syntax Ihres Beispiels.

Sie können verwenden, um einen Shell-Befehl auszuführen. Übergeben Sie Ihren Befehl an diese Methode. Wenn dies nicht funktioniert, können Sie versuchen, eine String[] mit der Struktur ["/bin/sh", "-c", **command**] zu übergeben.

+0

Danke für die Antwort. Leider bin ich kein Programmierer, sondern ein Autodidakt. Ich kann ein Commit korrekt implementieren, Konflikte lösen, auf einen Fehler reagieren, aber ich kann keine Sprache erstellen. Ich würde mich freuen, wenn Sie mir detaillierte Beispiele für die beiden genannten Methoden zeigen können. Ich möchte dieses Skript in einer .java-Datei weitergeben ... Vielen Dank im Voraus. –

+0

Erlauben Sie mir, es so zu erklären. Sie können Ihr Bash-Skript nicht in Java "konvertieren". Was Sie tun können, ist Shell-Befehle aus Ihrem Java-Code auszuführen. Ihr Bash-Skript ist nur eine raffinierte Art, Shell-Befehle auszuführen. Daher sollten Sie herausfinden, wie Shell-Befehle von Java ausgeführt werden (mit dem Aufruf 'Runtime.getRuntime() .exec') und die Ausgabe dieser Befehle abrufen. Ich kann nicht all deine Nachforschungen für dich machen, aber ich kann dir ein paar Hinweise geben, wo du anfangen sollst. –

+0

Ich habe Runtime.getRuntime implementiert ... Nun mag der Compiler keine Klammern im eigentlichen Shell-Skript: illegales Escape-Zeichen: echo $ (dd if =/dev/urandom bs = 1024 Anzahl = 1 2>/dev/null | md5sum | sed 's/^ \ (.. \) \ (.. \) \ (.. \) \ (.. \) \ (.. \) \ (.. \). * $/\ 1 : \ 2: \ 3: \ 4: \ 5: \ 6/') "}); Ich spreche Klammern über .. \ –

Verwandte Themen