我希望發送一個adb外殼命令到管道輸出從1命令到其他命令的Android設備,但是當我嘗試這樣做時,只有第一命令在設備上執行,第二個命令在主機上執行。以下是我試過的:從1命令管道輸出到其他命令在adb外殼命令行
adb shell command1 | command2
command1在設備上執行,command2在主機上執行。
我怎樣才能讓它正常工作?
謝謝!
我希望發送一個adb外殼命令到管道輸出從1命令到其他命令的Android設備,但是當我嘗試這樣做時,只有第一命令在設備上執行,第二個命令在主機上執行。以下是我試過的:從1命令管道輸出到其他命令在adb外殼命令行
adb shell command1 | command2
command1在設備上執行,command2在主機上執行。
我怎樣才能讓它正常工作?
謝謝!
你可以使用這樣的事情:
adb shell "command1 | command2"
一種方法是創建一個包含所需命令的shell腳本,然後運行shell腳本。由於Android根文件系統在運行時不可寫(通常,除非您已將設備植根並重新裝入它),您可以將該文件複製到可移動(或模擬)存儲設備,例如/sdcard
。
然後使用命令adb shell sh /sdcard/your-script-name
運行腳本。因爲每個腳本在自己的子shell中運行,無論你的命令將在設備上的同一個shell執行(你可以用ps
確認)。
這是我最初的想法,但我認爲可能有解決方法。 – user1118764
adb shell "command1 && command2"
例如:
adb shell "cd /system/lib&&ls -lR .|grep -i foo"
:
包含 '富' 在/系統/ lib目錄中的所有文件的遞歸上市重要的是雙引號和雙和號。
的唯一的事情是,你不能用它來輸入,以及,這意味着運行需要使用標準輸入一個班輪,因爲它需要用戶干預是行不通的可執行文件。
我會嘗試。如果command1包含自己的引號會怎麼樣?例如,回聲「123」?它會拋出adb? – user1118764
您將需要轉義那些或使用單引號和雙引號的組合 –