다른 변수에 따라 어떻게 다른 값을 변수에 간결하게 할당 할 수 있습니까?

IISomeOneII

이 쉘 스크립트를 어떻게 줄일 수 있습니까?

CODE="A"

if test "$CODE" = "A"
then
 PN="com.tencent.ig"
elif test "$CODE" = "a"
 then
 PN="com.tencent.ig"
elif test "$CODE" = "B"
 then
 PN="com.vng.pubgmobile"
elif test "$CODE" = "b"
 then
 PN="com.vng.pubgmobile"
elif test "$CODE" = "C"
 then
 PN="com.pubg.krmobile"
elif test "$CODE" = "c"
 then
 PN="com.pubg.krmobile"
elif test "$CODE" = "D"
 then
 PN="com.rekoo.pubgm"
elif test "$CODE" = "d"
 then
 PN="com.rekoo.pubgm"
else
 echo -e "\a\t ERROR!"
 echo -e "\a\t CODE KOSONG"
 echo -e "\a\t MELAKUKAN EXIT OTOMATIS"
 exit
fi
고든 데이비슨

다음 case명령문을 사용하십시오 (이동 가능, 모든 sh유사 쉘 에서 작동 ).

case "$CODE" in
    [aA] ) PN="com.tencent.ig" ;;
    [bB] ) PN="com.vng.pubgmobile" ;;
    [cC] ) PN="com.pubg.krmobile" ;;
    [dD] ) PN="com.rekoo.pubgm" ;;
    * ) printf '\a\t%s\n' 'ERROR!' 'CODE KOSONG' 'MELAKUKAN EXIT OTOMATIS' >&2
        exit 1 ;;
esac

변수 이름을 모두 대문자 (예 CODE:)에서 소문자 또는 혼합 대소 문자 (예 : code또는 Code)로 변경하는 것이 좋습니다 . 특별한 의미를 가진 대문자 이름이 많이 있으며, 그 중 하나를 실수로 재사용하면 문제가 발생할 수 있습니다.

기타 참고 사항 : 표준 규칙은 "표준 출력"이 아닌 "표준 오류"에 오류 메시지를 보내는 것입니다. >&2리디렉션이 작업을 수행합니다. 또한 스크립트 (또는 프로그램)가 실패하면 0이 아닌 상태 ( exit 1) 로 종료하는 것이 가장 좋습니다 . 그러면 호출 컨텍스트가 무엇이 잘못되었는지 알 수 있습니다. 다른 상태를 사용하여 다른 문제를 나타낼 수도 있습니다 ( 좋은 예 curlman 페이지 의 "EXIT CODES"섹션 참조 ). (여기에서 제안한 사항은 Stéphane Chazelas와 Monty Harder에게 감사드립니다.)

OS, 버전, 설정 등간에 이식성이 더 높기 때문에 (and ) printf대신 권장 합니다 . OS 업데이트에 다른 옵션으로 컴파일 된 bash 버전이 포함되어 동작 방식이 변경 되었기 때문에 한 번은 스크립트가 중단되었습니다 .echo -eecho -necho

여기에 큰 따옴표 $CODE는 실제로 필요하지 않습니다. a의 문자열은 case그대로 두어도 안전한 몇 안되는 컨텍스트 중 하나입니다. 그러나 나는 변수 참조가 안전한 곳과 그렇지 않은 곳을 추적하기가 어려우므로 습관적으로 큰 따옴표를 사용하는 것이 더 안전하기 때문에 특별한 이유가없는 한 큰 따옴표를 선호합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

r의 다른 값에 따라 데이터 프레임의 값을 어떻게 변경할 수 있습니까?

분류에서Dev

다른 키에 따라 키 값을 어떻게 추출 할 수 있습니까?

분류에서Dev

다른 열의 값에 따라 숫자 열을 어떻게 분할 할 수 있습니까?

분류에서Dev

다른 변수의 이름에 쉘 변수의 확장 값을 어떻게 사용할 수 있습니까?

분류에서Dev

다른 클래스에서 열거 형 변수의 값을 어떻게 변경할 수 있습니까?

분류에서Dev

다른 선택 상자의 선택에 따라 선택 상자의 옵션 값을 어떻게 변경할 수 있습니까?

분류에서Dev

이러한 "var"결과를 다른 변수에 어떻게 할당 할 수 있습니까?

분류에서Dev

다른 뷰 컨트롤러간에 동일한 값을 어떻게 변경할 수 있습니까?

분류에서Dev

ansible 플레이 북의 변수 값을 다른 페이 북에서 어떻게 사용할 수 있습니까?

분류에서Dev

Python- 다른 파일에서 매개 변수 값을 어떻게 설정할 수 있습니까?

분류에서Dev

발견 된 각 값을 다른 변수에 어떻게 매핑 할 수 있습니까?

분류에서Dev

테이블 변수의 모든 다른 값을 테이블의 기존 행에있는 필드에 어떻게 할당 할 수 있습니까?

분류에서Dev

다른 Fragment를 사용하여 다른 활동에서 Image ImageButton을 어떻게 변경할 수 있습니까?

분류에서Dev

변수의 값이 다른 변수의 변경에 따라 달라 지도록 할 수 있습니까?

분류에서Dev

다른 변수의 관측 값으로 변수의 고유 값을 어떻게 합할 수 있습니까?

분류에서Dev

다른 Java 클래스에 변수가있는 문자열을 어떻게 저장할 수 있습니까?

분류에서Dev

AngularJS에서 다른 값을 어떻게 초기화 할 수 있습니까?

분류에서Dev

파이썬은 다른 변수에 할당 된 경우에도 함수의 입력 변수 값을 어떻게 변경합니까?

분류에서Dev

시간에 따라 다른 스크립트를 어떻게 실행할 수 있습니까?

분류에서Dev

변수의 값을 다른 변수에 할당하면 거울이됩니다.

분류에서Dev

postgres ltree 열에 varchar 변수 값을 어떻게 할당 할 수 있습니까?

분류에서Dev

시간 및 특정 요일에 따라 값 할당 (2 개의 다른 변수)

분류에서Dev

다른 CCombo의 값에 따라 변경되는 CCombo를 SWT에서 어떻게 만들 수 있습니까?

분류에서Dev

ViewPager 조각을 다른 조각에서 어떻게 변경할 수 있습니까? 새로하지 않고

분류에서Dev

angularJS에서 한 함수에서 다른 함수로 변수를 어떻게 전달할 수 있습니까?

분류에서Dev

grunt로 다른 줄 내용을 어떻게 변경할 수 있습니까?

분류에서Dev

파이썬의 다른 변수에 일부 변수의 이전 값을 어떻게 저장할 수 있습니까?

분류에서Dev

R의 다른 변수 아래에서 여러 변수를 어떻게 분기 할 수 있습니까?

분류에서Dev

C #의 for 루프 내에서 다른 반복을 어떻게 할당 할 수 있습니까?

Related 관련 기사

  1. 1

    r의 다른 값에 따라 데이터 프레임의 값을 어떻게 변경할 수 있습니까?

  2. 2

    다른 키에 따라 키 값을 어떻게 추출 할 수 있습니까?

  3. 3

    다른 열의 값에 따라 숫자 열을 어떻게 분할 할 수 있습니까?

  4. 4

    다른 변수의 이름에 쉘 변수의 확장 값을 어떻게 사용할 수 있습니까?

  5. 5

    다른 클래스에서 열거 형 변수의 값을 어떻게 변경할 수 있습니까?

  6. 6

    다른 선택 상자의 선택에 따라 선택 상자의 옵션 값을 어떻게 변경할 수 있습니까?

  7. 7

    이러한 "var"결과를 다른 변수에 어떻게 할당 할 수 있습니까?

  8. 8

    다른 뷰 컨트롤러간에 동일한 값을 어떻게 변경할 수 있습니까?

  9. 9

    ansible 플레이 북의 변수 값을 다른 페이 북에서 어떻게 사용할 수 있습니까?

  10. 10

    Python- 다른 파일에서 매개 변수 값을 어떻게 설정할 수 있습니까?

  11. 11

    발견 된 각 값을 다른 변수에 어떻게 매핑 할 수 있습니까?

  12. 12

    테이블 변수의 모든 다른 값을 테이블의 기존 행에있는 필드에 어떻게 할당 할 수 있습니까?

  13. 13

    다른 Fragment를 사용하여 다른 활동에서 Image ImageButton을 어떻게 변경할 수 있습니까?

  14. 14

    변수의 값이 다른 변수의 변경에 따라 달라 지도록 할 수 있습니까?

  15. 15

    다른 변수의 관측 값으로 변수의 고유 값을 어떻게 합할 수 있습니까?

  16. 16

    다른 Java 클래스에 변수가있는 문자열을 어떻게 저장할 수 있습니까?

  17. 17

    AngularJS에서 다른 값을 어떻게 초기화 할 수 있습니까?

  18. 18

    파이썬은 다른 변수에 할당 된 경우에도 함수의 입력 변수 값을 어떻게 변경합니까?

  19. 19

    시간에 따라 다른 스크립트를 어떻게 실행할 수 있습니까?

  20. 20

    변수의 값을 다른 변수에 할당하면 거울이됩니다.

  21. 21

    postgres ltree 열에 varchar 변수 값을 어떻게 할당 할 수 있습니까?

  22. 22

    시간 및 특정 요일에 따라 값 할당 (2 개의 다른 변수)

  23. 23

    다른 CCombo의 값에 따라 변경되는 CCombo를 SWT에서 어떻게 만들 수 있습니까?

  24. 24

    ViewPager 조각을 다른 조각에서 어떻게 변경할 수 있습니까? 새로하지 않고

  25. 25

    angularJS에서 한 함수에서 다른 함수로 변수를 어떻게 전달할 수 있습니까?

  26. 26

    grunt로 다른 줄 내용을 어떻게 변경할 수 있습니까?

  27. 27

    파이썬의 다른 변수에 일부 변수의 이전 값을 어떻게 저장할 수 있습니까?

  28. 28

    R의 다른 변수 아래에서 여러 변수를 어떻게 분기 할 수 있습니까?

  29. 29

    C #의 for 루프 내에서 다른 반복을 어떻게 할당 할 수 있습니까?

뜨겁다태그

보관