tcsh와 bash 중 어느 쉘을 사용해야합니까? [닫은]


30

나는 tcsh오랫동안 오랫동안 사용 해왔다 . 그러나 무언가를 검색 할 때마다 지정된 방법이 bash구체적 이라는 것을 종종 알 수 있습니다. 쉘 스크립트의 구문조차도 두 가지가 다릅니다.

인터넷에서 검색과 학습을 경험 한 것에서 bash가장 많이 사용되는 쉘인 것 같습니다. 이 사이트에 태그 된 bash질문의 수조차 태그가 지정된 질문 수보다 훨씬 많습니다 (현재 5 배 이상) tcsh.

그래서 나는 bash로 전환 해야하는지 궁금합니다. 어떻게 생각해?

내가 왜 tcsh또는 왜 함께 이동해야 bash합니까?


3
나는 누군가 배쉬로 바꾸는 것에 대해 들어 본 적이 없다고 생각한다 . 일반적으로 사람들은 bash를 기본값으로 사용하고 더 나은 것으로 전환합니다 :)
Michael Mrozek

6
@Michael : OS X은 버전 10.3에서 tcsh에서 bash로 전환했기 때문에 bash로 전환하는 경우가 있습니다.
sepp2k

5
당신은 사용해야합니다 zsh(OS X가 전환되어야 함)
xenoterracide

6
그러나 dash거의 모든 작업을 수행 할 스크립트를 작성하십시오 .
xenoterracide

2
모두가 제안하는 것이 다소 재미있다 zsh. 동시에 ops 질문에 실제로 답변하지 않기 때문에 재미 있지 않습니다. 그래서 zsh 응답을 답변이 아닌 설명으로 만들었습니다. tcsh 스크립트를 작성하는 방법을 배우는 데 문제가 없다면, 알고있는 것과 함께 진행하십시오. 사용에 tcsh문제가있는 경우 여기에 문제를 게시하십시오. 다만 전환하지 마십시오 '원인을 . 더 많은 장소에 기본적으로 설치되어 있기 때문에 더 많은 bash 게시물이 있습니다.
xenoterracide

답변:


22

bash를 배우고 나면 tcsh가 약간 뒤로 향한 것으로 나타났습니다. 예를 들어 bash에서 쉽게 할 수있는 일은 tcsh에서 수행하기가 어렵다는 것을 알았습니다. tcsh에 대한 내 질문 . 인터넷 지원 및 문서도 bash의 경우 훨씬 우수하며 tcsh의 경우 매우 제한적입니다. bash에 관한 O'Reilly 책의 수는 많지만 tcsh와 비슷한 것을 발견하지 못했습니다.


26

실제로, 당신은 위로 이동해야합니다 zsh! 본질적으로 이전 버전과 호환되며 굉장함을bash 크게 도와주는 모든 유틸리티를 제공합니다 . 도있다 (내가 그것을 읽고 주위를 확보하지 못했더라도).

나는 인정합니다 하나 사용하지 않는 이유는 zsh이상 bash하지만 지속적으로 여러 새로운 설치에서 작동하지 않는 한 정말 적용되지 않습니다. 특히 가장 큰 차이점 에 대해 알고 있다면 . 그러나 이것은 사이의 차이에 정말 가깝다 vimvi; 순진하고 싶지 않지만 실제로는 큰 문제가 아닙니다. 하드 코어 vim사용자 조차도 길을 찾을 수 emacs있으며 그 반대도 마찬가지입니다.


20

bash, ksh, dash 중 하나와 같이 POSIX 호환 쉘 http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html로 전환해야 하지만 zsh는 아니고 반드시 tcsh는 아닙니다. csh가 스크립팅에 대한 좋지 않은 선택으로 선언 된 지 오래되었습니다. http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh는 그 영역에서 크게 다르지 않습니다.

스크립트를 작성할 때 이식성이없는 무언가에 다시 잠겨 있지 않으려면 POSIX 전용 구성을 사용해야합니다 (예 : bashism 등을 피하십시오).


7

강박 관념은 요점을 놓치고 있다고 생각합니다. #!/bin/sh맨 위에 넣고 .sh 확장자를 사용하여 모든 것을 호환하려고 시도 하지만 bash 이외의 것을 테스트 하지 않으면 호환되는 스크립트를 보장하지 않습니다! 단지 사용하는 것이 좋습니다 #!/bin/bash.bash 사용자가 실제로 실제 요구 사항을 알 수 있도록.

zsh , tcsh 또는 bash 보다 나은 것을 알고 있고 이에 대한 좋은 참조 매뉴얼이있는 경우 기다리지 마십시오 . 사람들이 일부 스크립트를 실행할 수 있도록 perl 또는 python 을 설치할 것으로 예상되는 것처럼 , 모호한 셸 설치도 처리 할 수 ​​있습니다! :디


1
실제로 /bin/shtcsh가 csh 파생 쉘인 동안 korn 호환 쉘을 가리킬 수 는 없습니다 . 그것은 가능성이 /bin/sh이미 떠들썩한 파티 또는 다른 호환 쉘을 가리키는이의 변화에 영향을받지 않습니다 거의 확실 사용자 쉘. csh와 sh는 완전히 호환되지 않습니다.
Maciej Piechotka

1
나는 무엇이 보증되는지 확실하지 않습니다. 나는 배쉬-ISMS 배쉬 - 시스 - / 빈 / 쉬 용인 뒤덮 "/ 빈 / SH"에 대한 스크립트를 작성 많은 사람들이 알고 있지만, 어떤 혼동 dash(데비안 ash과 Bourne의 호환 쉘).
Kevin Cantu

또 다른 요점 : #! / bin / bash는 사용중인 Bash 버전을 제한하지 않으며 한 버전에서 다른 버전으로의 비 호환성도 있지만, 최악의 경우 v2에서 오래 전에 소개되었습니다. POSIX 호환 모드의 버전 간 비 호환성을 모릅니다.
찰스 스튜어트

누구나 원하는 쉘에 대해 자유롭게 작성해야하며 POSIX #!/bin/sh단독 과 관련하여 올바른 지적을해야합니다 -ne. 그러나 POSIX 호환성에 대해 염려하는 것이 '집착'이라고 간주되는 유형이되어서는 안됩니다. 호출 sh기본값은 debian / ubuntu로 대시이며 잠시 동안 있습니다. 나는 그것이 '보장'으로 인정되지는 않지만 이식성을 '보장'이라고 생각하는 경우는 거의 없습니다. 나는 '쉘 스크립트'로 더 예약 될 것입니다.
JM 베커

6

어느 껍질? "사용 편의성"대 "혼란"비율이 가장 높은 제품을 선택하십시오 ...

"Maserati"셸에 대한 일반적인 예와 설명을 찾을 수 없다면 추가 성능이 보너스보다 문제가 될 수 있습니다 ...

이 기사 / 사이트가 흥미로 웠습니다. : 그것은 가치가 읽기 될 수있다
UNIX 쉘의 차이와 쉘을 변경하는 방법


0

zsh는 아마도 bash보다 tcsh와 더 유사 할 것입니다.

참조 : http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13

사람들은 종종 zsh가 bash가 할 수없는 일을 할 수 있다고 주장하지만 그 경우가 아니라고 생각합니다. 내가 볼은 zsh을 것이 bash는이 애드온 스크립트 동안, 내장 또는 기본적으로 설정, 쉽게 설정되어야한다, 또는 더 어려운 것입니다.

(면책 조항 : 때로는 zsh로 전환하는 것을 고려한 bash 사용자입니다)


-3

몇 가지 이유로 20 년 전에 사용한 tcsh를 사용했습니다. 아시다시피 bash는 sh에서 시작되었지만 많은 csh 항목이 있지만 tcsh는 csh에서 시작되었습니다. 나는 초기에 명령 완료를 정말로 좋아하지만 대부분의 쉘에서 사용할 수 있습니다. 스크립팅을 위해 / bin / sh를 고수할까요?


6
이것은 실제로 질문에 대답하지 않습니다. 더 주석입니다.
slm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.