오케이, 그래서 저는 Bash 스크립팅을 처음 접했지만 다른 언어에서는 약간의 경험이 있습니다.if 문에서 문자열 비교에 이상한 문제가 발생했습니다.
내 스크립트는 USB 디버깅이 가능한 Android 전화가 연결된 Linux 컴퓨터에서 실행됩니다.
제 스크립트가 작동하는 방식은 ./myscript.sh APP_NAME_WITHOUT_EXTENSION
으로 실행하는 것입니다. 예를 들어 ./myscript.sh SystemUI
을 실행하고 모든 앱의 목록을 가져온 다음 $1.apk
이 해당 목록에 있는지 확인합니다. 여기
내가 내 안드로이드 휴대 전화에서 시스템 응용 프로그램의 목록을 얻고있다 방법입니다 : 이것은 잘 작동 나는이 할 경우
# Get list of files in system app directory
app_list=($(adb shell ls $app_path))
: 다음
for file in ${app_list[@]}; do
echo $file
done
그것을 모든 파일을 출력 예상대로 이름.
found=false
for file in ${app_list[@]}; do
# This is ALWAYS resulting in false, even if the strings in fact match
if [ "$1.apk" == "$file" ] || [ "$1.jar" == "$file" ]; then
echo "TEST"
found=true
break
fi
done
내가 구문 오류의 일종을 만들고있어 확신 해요,하지만 난 단지 그것을 알아낼 수 없습니다,이 날 운전 너트 :
지금 나는이 있습니다. 모든 종류의 예제를 살펴 보았고 코드에 문제가있는 것을 발견 할 수 없습니다.
'test' ('[') 명령에서'=='대신'='를 사용하십시오. –
Do to new 나는 내 자신의 질문에 대답 할 수 없다. 그러나 나는 그것을 알아 냈다. 단지 입력을 위생적으로해야했다. 8 시간 후에 조금 더 자세하게 질문에 대답 할 것이다. – Tory