Cách ngăn vỏ adb thoát khỏi Ctrl + C


11

Khi tôi adb shellvào thiết bị của mình (từ máy tính để bàn Windows) và chạy một số lệnh ở đó, đôi khi tôi muốn chấm dứt lệnh đó. Cách unixy tiêu chuẩn để làm điều đó là Ctrl+Ckết hợp phím. Tuy nhiên, khi tôi làm điều đó, toàn bộ adb shellchấm dứt.

Làm thế nào tôi có thể chấm dứt chương trình hiện tại bên trong shell chứ không phải chính shell?


Tôi đã đọc một bài đăng trên diễn đàn tuyên bố rằng <kbd> Ctrl </ kbd> + <kbd>] </ kbd> đã hoạt động, nhưng tôi đã thử nó không có may mắn. Số dặm của bạn có thể thay đổi. Dường như không có cách nào để adb vượt qua Ctrl-C, vì nó không bắt được SIGINT. Phương thức Ctrl-V tiêu chuẩn dường như không hoạt động đối với Ctrl-C, mặc dù ^Jkhông may nó đã chuyển đổi Enter thành .
Matthew đọc

Câu trả lời:


13

Tôi tìm thấy một cách giải quyết cho việc này (ít nhất là cho một điện thoại đã root). Nếu một điện thoại được root, busyboxrất có thể được cài đặt. sttylà một phần của busybox.

stty xâm nhập ^ x

Xác định lại Ctrl+ Xđể hoạt động như một lệnh ngắt, ví dụ như trước đây là Ctrl+ C.


3
Điều đó thật tuyệt vời.
Matthew Đọc

5

Alt- NumPad 3+ Enterlàm việc cho tôi. Alt- NumPad 0- NumPad 3+ Entercũng hoạt động và hiển thị "^ C".


3

tôi đã có thể dừng topquá trình và vẫn ở trong vỏ bằng cách gõ như sau theo thứ tự sau:

C

CTRL+Z

CTRL+M

nếu tôi không gõ cả 3 combo đó thì nó sẽ không dừng và tôi sẽ phải CTRL+ Cđể thoát khỏi shell. Tôi tìm thấy điều này bằng cách thử các tổ hợp phím khác nhau và tình cờ tìm thấy nó. YMMV


Ctrl + Z tạm dừng một quá trình, ví dụ: bạn phải giết nó sau đó bằng kill hoặc killall. Cách giải quyết này tốt hơn không có gì, mặc dù ...
haimg

tôi nhận ra rằng sau khi tôi thực hiện một "lối ra". thật buồn cười, đó không phải là ctrl + z đã làm gì cả
Ryan Conrad

Điều này không làm việc cho tôi (tôi đã cố gắng vmstatkhông topmặc dù). Thật thú vị, khi tôi nhấn Ctrl-Zvẻ như không có gì xảy ra nhưng thực tế, đầu vào của tôi bắt đầu được chuyển hướng thẳng đến vỏ Windows và không chuyển sang quảng cáo. đầu ra của adb (từ vmstat) tiếp tục hiển thị trong cửa sổ shell nhưng tôi có thể nhập cd C:(ví dụ) và nó sẽ thực thi trong shell Windows. Nếu sau đó tôi nhấn Ctrl-Cđầu ra sẽ dừng lại và tôi sẽ thấy lệnh tôi đã nhập vào trình bao Windows phía sau hậu trường. Rất kì lạ!
Matthew đọc

3

Ctrl+ \tiếp theo Enterthường hoạt động tốt.

Điều này sẽ gửi tín hiệu SIGQUIT có thể không phù hợp với máy chủ (ví dụ: loại bỏ tệp lõi) nhưng tôi không nghĩ đó là vấn đề khi sử dụng điều này trên điện thoại / máy tính bảng Android (mặc định không kết xuất tệp lõi ). Giải pháp dễ dàng mà làm việc trong hầu hết các trường hợp.


3

Trên Windows, bạn chỉ cần nhập [Alt] + [3] thông qua numpad (đừng quên nhấn enter sau đó).
Điều này sẽ gửi [Ctrl] + [c] đến shell do đó chấm dứt lệnh hiện tại:

D: \ Android> vỏ quảng cáo
$ mèo
con mèo
♥
^ C

$ thoát
lối ra

D: \ Android>

Lưu ý rằng [Alt] + [3] tạo ra ASCII-Char ♥ trong Windows bằng với ETX-Byte.
Bạn cũng có thể nhấn [Alt] + [0] - [3] (giữ phím Alt trong khi nhấn [0] và [3] trên bàn phím số) nếu bạn không di chuyển các cửa sổ để hiển thị hình trái tim;)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.