쉘에 널 커맨드라는 것이 존재한다.  콜론(:)으로 표시되며, 아무것 도 하지 않음을 의미한다. 



e라는 변수가 존재하지 않으면 널 커맨드를 수행하는 예시를 생성한다. 


$ cat xx

#!/bin/sh


if [ -z "$e" ]

then

        :

else

        echo "exit"

        exit 1

fi


echo "xx!"


$ sh xx

xx!

$ echo $?

0




다음에는 잘 동작하는 지 확인하기 위해 -z가 아닌 -n(변수 존재하지 않으면 이라는 뜻을 가짐)을 사용한다. 정상적으로 동작한다. 


$ cat xx

#!/bin/sh


if [ -f "$e" ]

then

        :

else

        echo "exit"

        exit 1

fi


echo "xx!"


$ sh xx

exit

$ echo $?

1




저작자 표시
신고
Posted by 김용환 '김용환'



영어로 


일반적으로 아는 지인이 내가 한 말을 씹을 때, 


씹다라는 표현을 보통 chew, ignore 라는 동사를 사용한다고 한다.


ignore message, chew message



(번역을 하다 보니..)


리눅스에서 결과를 발생하지 않는다(속된 말로 결과를 씹는다)라는 표현이 사실 있는데..


"eat" the command result 라는 말을 사용하는 것 같다.



저작자 표시
신고
Posted by 김용환 '김용환'




cglib과 asm은 의존성 관계가 깊다. 버전을 잘 맞춰야 한다. 아래와 같은 에러가 발생해서 버전을 수정해야 했다. 


 .initialize Unable to obtain CGLib fast class and/or method implementation for class com.google.event.EventMessage, error msg is net/sf/cglib/core/DebuggingClassWriter

java.lang.VerifyError: net/sf/cglib/core/DebuggingClassWriter




아래 cglib를 기반으로 잘 맞는 버전을 찾으면 된다. 

https://github.com/cglib/cglib/releases


asm 4.x은 cglib 3.1로 맞추고, asm 3.1은 cglib 2.2로 맞춰야 한다. 




저작자 표시
신고
Posted by 김용환 '김용환'


티스토리 툴바