2010-12-14 4 views
0

는 다음과 같은 추악한 해킹이있다, 변수가되는 경우 읽기 전용 테스트하려면?테스트

+0

왜 이것이 중요하다고 생각합니까? –

+0

뭔가 중요하다고 생각하지 마십시오. 다른 곳에서는 우아한 것이 중요하지 않습니다. – enguerran

+0

스크립트의 가독성을 중요하게 생각하는 한 중요합니다. 예를 들어, 이것을 시험하기 위해'[-R varname]'이나'readonly -t varname' (test 용't')을 사용할 수 있다는 것은 우아 할 것이다. – l0b0

답변

4

서브 쉘을 사용하면 효과가있는 것 같습니다. 둘 다 로컬 변수와 내 보낸 변수가 있습니다.

$ foo=123 
$ bar=456 

$ readonly foo 

$ echo $foo $bar 
123 456 

$ (unset foo 2> /dev/null) || echo "Read only" 
Read only 

$ (unset bar 2> /dev/null) || echo "Read only" 
$ 

$ echo $foo $bar 
123 456   # Still intact :-) 

중요한 점은 하위 쉘이 RW (이 경우 $ 막대)를 현재 쉘에서 복구하지 못하는 것입니다.

bash 및 ksh로 테스트되었습니다.

관련 문제