2012-09-24 5 views
1

디바이스에로드 된 일부 소프트웨어를 제거하기위한 bash 스크립트가 있습니다.bash에서 adb를 사용하면 예상과 다른 결과가 발생합니다.

#!/bin/bash 
APKS=`adb shell pm list packages projects` 

for apk in $APKS 
do 
    apk=${apk##package:} 
    echo "Uninstalling: $apk" 
    adb uninstall $apk 
done 

이 스크립트를 실행하면 apk를 제거하는 모든 명령이 실패합니다. 그러나, 내가 똑같은 명령 (adb uninstall projects.abd.def)을 bash 스크립트 외부에서 실행할 때, 성공적으로 실행됩니다.

내가 bash 스크립트에서 잘못 했습니까?

+0

[ADB 제거 명령 문에 대한 배쉬 쉘에서 작동하지 않습니다]의 중복 가능성 (http://stackoverflow.com/questions/7426070/adb-uninstall- : 여기

올바른 방법입니다 command-doesnt-work-in-bash-for-statement) – prolink007

답변

1

문제점을 파악했습니다. 변수에 캐리지 리턴이 있다고 가정하고이를 테스트했으며 여전히 작동하지 않았습니다.

그러나 더 많은 검색을 한 후, 나는 캐리지 리턴을 잘못 잘라내는 것을 깨달았습니다.

apk=`echo -n ${apk} | tr -d "\r"` 
관련 문제