이 쉘 스크립트를 어떻게 줄일 수 있습니까?
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
) 로 종료하는 것이 가장 좋습니다 . 그러면 호출 컨텍스트가 무엇이 잘못되었는지 알 수 있습니다. 다른 상태를 사용하여 다른 문제를 나타낼 수도 있습니다 ( 좋은 예 는 curl
man 페이지 의 "EXIT CODES"섹션 참조 ). (여기에서 제안한 사항은 Stéphane Chazelas와 Monty Harder에게 감사드립니다.)
OS, 버전, 설정 등간에 이식성이 더 높기 때문에 (and ) printf
대신 권장 합니다 . OS 업데이트에 다른 옵션으로 컴파일 된 bash 버전이 포함되어 동작 방식이 변경 되었기 때문에 한 번은 스크립트가 중단되었습니다 .echo -e
echo -n
echo
여기에 큰 따옴표 $CODE
는 실제로 필요하지 않습니다. a의 문자열은 case
그대로 두어도 안전한 몇 안되는 컨텍스트 중 하나입니다. 그러나 나는 변수 참조가 안전한 곳과 그렇지 않은 곳을 추적하기가 어려우므로 습관적으로 큰 따옴표를 사용하는 것이 더 안전하기 때문에 특별한 이유가없는 한 큰 따옴표를 선호합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다