VAR="AAA"
VAR2="BBB"
if [  ]

1. 문자열, 숫자 동일여부 비교시 "=" 보다는 "==" 를 사용한다.

VAR="AAA"
if [ "AAA" == "$VAR" ]; then
	echo "권장되는 방법"
fi

 

2. 다중 비교시 "-a" 보다는 "&&"을, "-o" 보다는 "||" 을 사용한다.

3. 다중 비교시 단일 대괄호("[", "]") 보다는 쌍 대괄호("[[", "]]") 를 사용한다.

VAR1="AAA"
VAR2="BBB"
if [[ "AAA" == "VAR1" && "BBB" == "VAR2" ]]; then
	echo "권장되는 방법"
fi

 

  • "[": (single bracket)는 POSIX 표준의 일부로, 전통적인 조건문 구문임.
  • "[[" (double bracket)는 Bash의 확장 기능으로, 더 강력하고 유연한 조건문을 제공함. 패턴 매칭(=~* 등)을 지원.
블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

eas build 를 사용하여 android 빌드를 수행중, 공식문서에 기재된 아래 프로필 설정의 차이점이 궁금해서 정리해본다.

  • developmentClient to true (default)
  • distribution to internal
  • android.buildType to apk
  • android.gradleCommand to :app:assembleRelease, :app:assembleDebug or any other gradle command that produces .apk
{
  "build": {
    "development": {
      "developmentClient": true
    },
    "android-apk-distribution": {
      "distribution": "internal"
    },
    "android-apk": {
      "android": {
        "buildType": "apk"
      }
    },
    "android-apk-gradle-debug": {
      "android": {
        "gradleCommand": ":app:assembleDebug"
      }
    },
    "production": {}
  }
}

 

 

1. developmentClient to true (defaul)
apk 파일로 빌드하며, apk 다운로드 링크가 제공된다. apk 빌드완료 후 expo-dev-clinet 를 사용하여 개발머신의 안드로이드 에뮬레이터에 띄우는 것이 특징이다. 그래서 expo-dev-client 가 설치되어 있지 않으면 설치를 요구한다. 개발머신에서 npx expo start --dev-client 커맨드를 사용하여 서버를 구동해야 하며, 에뮬레이터에서 해당 서버를 선택하여 사용한다.(아래 이미지참고)

 

 

 

 

 

2. distribution to internal

빌드된 apk 파일을 다운로드 할 수 있는 QR과 링크가 생성되며, 이에 접속하면 손쉽게 팀원들에게 apk를 전달할 수 있다.

 

 

 

 

3. android.buildType to apk

apk 파일로 빌드되며, 다운로드 받을 수 있는 링크가 제공된다.

 

 

 

4. android.gradleCommand to :app:assembleRelease, :app:assembleDebug

gradle 을 사용해서 apk를 빌드한다. 마찬가지로 apk 다운로드 링크가 제공된다.(또다른 차이점은 모르겠음)

 

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,

특수변수인 위치매개변수(Positional Parameter)의 의미에 대해 정리한다.

 

$0: 실행된 쉘 스크립트명

$1: 스크립트에 넘겨진 첫 번째 아규먼트

$2: 스크립트에 넘겨진 두 번째 아규먼트

${10}: 스크립트에 넘겨진 열 번째 아규먼트(두자릿 수 이상이면 curly bracket으로 감싸야 한다)

$#: 스크립트에 넘겨진 아규먼트의 개수

$$: 쉘 스크립트를 실행하는 Process Id

$*: 스크립트에 전달된 전체 인자 배열

$@: 스크립트에 전달된 전체 인자 배열($*와의 차이점은 https://secjong.tistory.com/21 참고)

$?: 실행 종료상태값(반환값)

$-: 현재 쉘이 호출될 때 사용한 옵션들

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,