>> Edit article
이름
제목
패스워드
질문은 저 밑에 잇지만. 못보실까봐 여기다 적습니다. 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