Android 및 Linux 스크립팅 [닫기]

Android 및 Linux 스크립팅 [닫기]

Linux 스크립트와 Android 스크립트의 차이점을 알아보려고 합니다. 하지만 구문에서 특별한 차이점을 찾을 수 없습니다. 예를 들어 Android 스크립트는 할 수 있지만 Linux 스크립트는 할 수 없는 작업, 실행, 성능 등이 있습니다.

찾아야 할 몇 가지 구체적인 사항을 제안해 주실 수 있나요?

답변1

mkshAndroid는 기본적으로 sh의 상위 집합인 MirBSD Korn 셸을 실행합니다. 이는 배열을 사용할 수 없는 등 bash 스크립트에 비해 몇 가지 제한 사항이 있습니다.

또한 핵심 유틸리티는 Android 전용 도구 상자 또는장난감 상자작은 프로그램, 사용법은 종종 약간 다르며 때로는 제한됩니다(예 tar: )

Android 기기를 사용하도록 맞춤설정하세요.바쁜 상자확장 기능으로 핵심 유틸리티가 누락되어 애플릿도 빌드에 종속됩니다.

Android 권한은 다음으로 확장됩니다.SELinux파일 작업 측면에서 이를 위해서는 다른 스크립팅 방법이 필요합니다. 예를 들어 sed파일이 보조 컨텍스트를 잃기 때문에 평소와 같이 사용할 수 없습니다.

항상 가능한 한 많은 쉘(mksh, ash)에 대해 스크립트를 테스트하고 핵심 유틸리티를 사용하기 쉽게 유지해야 합니다(예: 코드는 BSD grep, toybox grep 및 busybox grep과 작동해야 함)

장치에 실제 키보드가 없고 명령줄 확인 시 작은 터치 스크린이 번거롭기 때문에 대화형 스크립트를 사용하지 마십시오.

경로는 Android 기기에서도 약간 다르게 처리됩니다. 예를 들어 shebang은 RAM이 아닌 사용자 공간에 유지되는 #!/system/bin/sh디렉터리 입니다./data/local/tmp


그것을 언급할 가치가 있다adb 쉘그 어떤 것보다 더 많은 특권을 가지고 있습니다.터미널 에뮬레이터기본적으로. adb 명령을 사용하여 호스트에서 실행되는 스크립트는 명시적으로 제공되어야 합니다. 경험이 없는 사용자는 이를 클라이언트에서 실행되는 쉘 스크립트와 혼동할 수 있습니다.


복구 모드에서 실행되는 스크립트에는 관련 스크립트 언어가 있습니다.에디피해당한다쉘 스크립트 교체. 복구 모드( )의 셸은 ashAndroid 부팅 모드( )와 다르며 mksh동작은 복구 빌드에 따라 다릅니다. 애플릿을 잃어버리는 번거로움을 피하기 위해 비지박스와 필요한 모든 바이너리를 번들로 묶어야 합니다(예 awk: )


스크립팅 언어 자체는 다르지 않으며 특정 구문이 없습니다. bash 스크립트를 안드로이드로 포팅하는 것은 절대적으로 가능하며 특별한 지식이 필요하지 않습니다. 이것은 단지 다른 환경이므로 대상 플랫폼에서 스크립트를 테스트해야 합니다.

즉, 행복한 스크립팅입니다 :)

답변2

Android 또는 Linux에는 단일 셸이 없으며 일부 기본값은 수년에 걸쳐 변경되었으므로 다양한 장치와 Linux/Unix 및 Android 배포판(예: Lineage OS, Debian, AIX)에서 서로 다른 기본 셸을 사용할 수 있습니다.

이러한 시스템 중 다수에는 여러 개의 쉘이 포함되어 있습니다. 즉, shebang을 변경하여 스크립트를 실행 ash하거나 bash이와 유사한 ksh것을 사용하여 로그인 할 수 adb shell -t bash -i있으므로 궁극적으로 비교는 서로 다른 쉘 간에 이루어집니다.

Android그렇기 때문에 or 에 기반한 구문 차이나 기타 문제를 나열하기가 어렵습니다 Linux.

관련 정보