Ich habe einige Aliase erstellt, um Tether schnell umzukehren.
alias t='r && sh && n'
alias n='netcfg rndis0 dhcp'
alias sh='ad shell'
alias r='ad kill-server && ad start-server'
alias ad='adb'
Ich möchte t eingeben (was Reverse Tethering aktiviert), aber der Alias-Befehl macht nichts weiter sh
Wie kann man das besser automatisieren?
(Ich denke, es liegt daran, dass es nicht mehr in der ersten Shell ist, sondern in der Android-Adb-Shell.)
UPDATE: Ich habe die .bashrc bearbeitet, wie von Stephen Schrauger beantwortet, aber der Befehl gibt mich in die ADB-Shell ein und wenn ich das USB-Kabel abtrenne, bekomme ichnetcfg: command not found
Die Aliase sind jetzt:
alias t='r && sz $n'
n='netcfg rndis0 dhcp'
alias sz='ad shell'
alias r='ad kill-server && ad start-server'
alias ad='adb'
Was ist jetzt los?
UPDATE2 hierher verschoben: Hilfe bei diesem ADB REVERSE Tethering Script?
Dies ist eher eine Linux-Frage und muss möglicherweise nach superuser.se verschoben werden , aber ich kann sie beantworten.
Unter Linux führen Sie Befehle mit &&
(oder ||
oder einfach ;
) aus. Bei &&
muss der erste Befehl ausgeführt werden und darf keine Fehlercodes aufweisen, damit der nächste Befehl in der Sequenz ausgeführt werden kann.
In Ihrem Setup sieht es so aus, als ob Sie eine ADB-Shell öffnen und dann netcfg rndis0 dhcp
auf der adb-Shell ausführen möchten . Allerdings tut Linux das nicht. Stattdessen wartet es darauf, dass die ADB-Shell ohne Fehler beendet wird. Danach wird es netcfg rndis0 dhcp
auf der Shell des Desktop-Computers ausgeführt.
Wenn Sie einen Befehl auf dem Android-Gerät ausführen möchten, starten Sie keine interaktive ADB-Shell (Standardeinstellung); Stattdessen übergeben Sie den Befehl wie folgt:
adb shell
netcfg rndis0 dhcp
Sie müssen n
stattdessen Ihren Alias in eine Variable ändern. Entfernen Sie die alias
Direktive, sodass die Zeile nur noch lautet n='netcfg rndis0 dhcp'
. Ändern Sie dann Ihren Alias für t
wie folgt
alias t='r && sh $n'
sh
Alias verwenden, da die meisten Linux-Systeme bereits einen Befehl für sh
.$n
? (Ich möchte mehr über Linux erfahren) Können Sie mir übrigens bei der Frage helfen, dass die Apps das Internet nicht erkennen?myvar=123
und referenzieren sie mit $myvar
(ex echo $myvar
). Um mehr über Linux zu erfahren, schlage ich vor, diese Frage auf der Superuser-Stackexchange-Site zu lesen. Diese Seite ist Linux-Fragen gewidmet. superuser.com/questions/36605/learning-the-basics-of-linux-unix
Benutzer42276