오늘은 대한입니다.
sun's longitude:299 48 3.43 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  
알파문서
자주 잊어먹거나, 메모해 둘 필요성이 있는 팁이나 문서, 기타 등등
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
10 번 글의 답장글: [shell] if 문 그룹화
글쓴이: 산이 [홈페이지] 글쓴날: 2004년 03월 03일 11:47:25 수(오전) 조회: 3832
[산이]님이 남기신 글:

>에러날 확률이 높음
>
>if [ X`cmd ...` != X ] ; then
>
>
>다음과 같이 수정
>
>if [ X"`cmd ...`" != X ] ; then
>or
>if [ X"`cmd ...`" != "X" ] ; then
>
>
>EOF 

========================================

[if 문 그룹화]

1) 기본형

if [ conditions ] ; then
    cmd1
else
    cmd2
fi


2) 축약형

[ conditions ] && cmd1 || cmd2
or
[ conditions ] && (cmd1) || (cmd2)
or
[ conditions ] && (cmd1;) || (cmd2;)
or
[ conditions ] && ( cmd1 ) || ( cmd2 )
or
[ conditions ] && ( cmd1; ) || ( cmd2; )
or
[ conditions ] && { cmd; } || { cmd2; }
or
[ conditions ] && { cmd;} || { cmd2;}

*주의) {와 }으로 그룹으로 묶을 경우
[ conditions ] && {cmd} || {cmd2}     /*** fail ***/
[ conditions ] && {cmd;} || {cmd2;}   /*** fail ***/
[ conditions ] && { cmd } || { cmd2 } /*** fail ***/
[ conditions ] && {cmd; } || {cmd2; } /*** fail ***/

* - 반드시 '{' 다음에 빈 공간 하나 이상 필요
* - newline 없이 '}'가 올 경우 반드시 세미콜론(;) 필요


3) command 그룹화 (와 ) 사용

[ conditions ] && (
    cmd1
    cmd2
    cmd3
) || (
    cmd4
    cmd5
    cmd6; cmd7; cmd8
)


4) command 그룹화 {와 } 사용

[ conditions ] && {
    cmd1
    cmd2
    cmd3
} || {
    cmd4
    cmd5
    cmd6; cmd7; cmd8
}


5) 조합형

[ conditions ] && (
    cmd1
    cmd2
    cmd3
) || {
    cmd4
    cmd5
    cmd6; cmd7; cmd8
}


[ conditions ] && (
    cmd1
    cmd2
    cmd3
) || cmd4



* ||(or) 연산을 명령어로 인식하지 않기 위해서
같은 줄 앞에 그룹의 ')' 또는 '}' 가 와야 함


6) 그룹 ( ... ) 와 { .... } 차이

( echo 1; exit 0; ); echo 2      // 결과 1\n2, 서브쉘
{ echo 1; exit 0; }; echo 2      // 결과 1


7) 참고

'[ cmd ]' 또는 '[[ cmd ]]' 의 test cmd 구문에서는
'[ ]' 와 '[[ ]]'를 생략할 수 있음

예)
if cd /path/to/dir 2>/dev/null ; then
  echo 'ok DIR'
else
  echo 'not DIR'
fi

또는

cd /path/to/dir 2>/dev/null && echo 'ok DIR' || echo 'not DIR'

또는

`cd /path/to/dir 2>/dev/null` && echo 'ok DIR' || echo 'not DIR'

으로 가능함.
(에러 출력 처리에 주의)


 
이전글 : [shell] if 문에서 문자열 비교시
다음글 : [images] convert GIF/JPG/PNG/BMP/EPS/...  
 from 211.44.63.181
JS(Redhands)Board 0.4 +@

|글쓰기| |답장쓰기| |수정| |삭제|
|이전글| |다음글| |목록보기|
인쇄용 

apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds