저는 데이터 분석 프로젝트에서 누군가와 협력하고 있으며, 우리는 작은 쉘 스크립트에 넣어서 수행하는 단계를 자주 문서화합니다. 문제는 내가 bash를 사용하고 다른 사람이 csh를 사용한다는 것입니다. 다른 사람은 source
을 사용하여 직접 스크립트를 실행하는 대신이 스크립트를 실행하는 습관이 있습니다. (이 습관은 여분의 쉘을 생성하는 것이 자원 낭비 일 뿐이므로 아마 너무 바꿔서 변경할 수 있습니다.) 내 스크립트 (물론 bash 스크립트 임)를 csh 대신 bash로 실행하도록 상기시켜주는 메시지로 끝내기 만하면된다. 동시에, 나는 그들이 bash 스크립트로 계속 기능하도록하고 싶다.bash에서 no-op이지만 csh에서 오류 메시지와 함께 멈추는 코드는 무엇입니까?
그래서 스크립트 시작 부분에 bash의 no-op이지만 오류를 알리고 나머지 파일 실행을 취소 할 수있는 코드가 있습니다 (그러나 쉘 자체는 죽이지 않음). cshell에서 소스?
테스트 해 보셨습니까? 나는'csh'을 모르지만, 지금 당장 놀아 보면,'test -n "$ BASH_VERSION"|| ... '는 오류 메시지를 출력했지만'...'하지 않았습니다. 그러나 밝은면에서 나는'source'd 스크립트의'exit'가 쉘을 죽이지 않았 음을 발견했습니다. (단서가없는 이유는 없습니다.) 그래서 'exit'는 좋은 시작입니다. – ruakh
@ruakh : 아니요, 죄송합니다. 나는 | csh에 들어가기에 충분할만큼 C와 같을 것이다. – thiton
@ruakh :'||'는 괜찮 았지만 변수 교체가 나를 죽였다. 편집 됨. – thiton