![adb 쉘 명령을 실행하는 중 오류가 발생했습니다.](https://linux55.com/image/179168/adb%20%EC%89%98%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
adb shell am broadcast -a com.test.app --es command "STOP" --es filename "sample 1.01.49 7-09-1380(01).apk"
위 명령을 사용하여 인텐트를 브로드캐스트 하려고 합니다 adb
. 여기서 샘플은 1.01.49 7-09-1380(01).apk
브로드캐스트하려는 파일이지만 다음 오류가 발생합니다.
/system/bin/sh: syntax error: '(' unexpected
누구든지 이 문제를 해결하도록 도와줄 수 있나요?
답변1
명령은 Android의 셸에 의해 실행되므로 두 개의 셸, 즉 명령을 입력하는 로컬 셸과 Android의 호출 셸이 관련됩니다 adb shell
. 따라서 특수 문자가 두 개의 쉘을 거쳐야 하는 경우 두 번 인용해야 합니다.
이와 같이 명령을 작성하는 것이 오해의 소지가 적습니다.
adb shell 'am broadcast -a com.test.app --es command STOP --es filename sample 1.01.49 7-09-1380(01).apk'
그 결과 Android에서 다음 셸 명령이 실행됩니다.
am broadcast -a com.test.app --es command STOP --es filename sample 1.01.49 7-09-1380(01).apk
하지만 실제로는 다음과 같은 작업을 수행하고 싶습니다.
am broadcast -a com.test.app --es command STOP --es filename "sample 1.01.49 7-09-1380(01).apk"
따라서 다음과 같은 로컬 명령이 필요합니다.
adb shell 'am broadcast -a com.test.app --es command STOP --es filename "sample 1.01.49 7-09-1380(01).apk"'