>> Delete No. 32599 article
No. csh 이 sh 스크립트에 부적절한 이유.

등록 2001-06-08 16:20:00 By localhost     조회 2
이름 차주현    

		질문은 저 밑에 잇지만. 못보실까봐 여기다 적습니다.
 csh 이 sh 게열 (sh, ksh, bash) 보다 shell 스크립트에 약한 이유는 근본적으로
 설계가 잘못 되어 있기 때문이죠.
 몇가지만 예를 들자면...
 1. file descriptor
 csh은 sh 처럼 file descriptor를 마음대로 사용하지 못합니다. sh계열에서는 간단
 하게 처리 할 수 있는 것도 csh에서는 힘들거나 아예 할 수가 없는 경우가 많죠.
 예.)
* stderr 는 모두 무시하고 stdout만 보고 싶을때..
sh   -> cmd 2> /dev/null
csh  -> 방법 없음.
 * shell 스크립트 내부에서 에러 메세지를 stderr로 보내기.
sh   -> echo "$0: cannot find $file" 1>&2
csh  -> sh -c "echo '${0}: cannot file $file' 1>&2" (sh 를 이용했다.)
 * csh에서 tty에서 한 라인을 읽어 들이는 방법은 $< 가 있지만 stdin 을 리다이렉
트해도 여전히 tty에서 입력을 받으려고 한다.
 * csh에서는 열려진 file descriptor를 닫을 수가 없다. sh에서는 exec 명령으로 열
린 file descriptor를 >&- 로 닫을수 있다.
 2. 비정상적인 명령어.
 예.)
* 내장 명령어.
csh의 내장명령어는 어떠한 정상적인 방법으로도 함께 조합하여 쓸수 없다.
 * 흐름제어와 명령어를 함께 쓸 수 없다.
who | while read line ; do
    echo $line
done
이런 것은 csh에서 되지 않는다.
 * 여러 라인으로 구성된 구문을 세미콜론을 이용하여 묶을 수 없다.
 * 명령어 파싱 버그
kill -1 `cat foo` (x)
/bin/kill -1 `cat foo` (o)
 3. 시그널
csh은 sigint 만 trap 할 수 있다.
 그 밖에도 여러가지가 많은데요. 이 정도만 쓰죠.
 위의 예는 모두 unix power tools라는 책에서 인용한 것 입니다.--껌을 씹을 때는 조용히...
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved