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
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. –
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. –
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 .. \ –