#의 차이점은 무엇입니까!/빈/쉬와#!/빈/배쉬?

리눅스와 다른 유닉스 계열 시스템에서는 여러 쉘을 선택할 수 있습니다.

쉘은 작은 프롬프트를 그리는 것뿐만 아니라 특히 파이프,조건부 등과 같은 복잡한 논리를 넣는 경우 명령을 해석하는 역할을합니다.

배쉬는 리눅스 시스템 사용자의 기본 쉘로 사용되는 가장 일반적인 쉘입니다. 그것은 유닉스 역사 전반에 걸쳐 사용 된 다른 껍질의 영적 후손입니다. 그 이름,배쉬는 본-다시 쉘의 약어입니다,본 쉘에 경의 그것은 대체하도록 설계되었다,그것은 또한 씨 쉘과 콘 쉘의 기능을 통합하지만.

요즘/bin/bash에서 실행됩니다.

쉘을 사용하는 사용자 만이 아닙니다. 스크립트(쉘 스크립트)는 쉘을 해석하기 위해 쉘이 필요합니다. 쉘 스크립트를 실행할 때 시스템에서 스크립트를 실행하기 위해 쉘 프로세스를 시작해야 합니다.

문제는 서로 다른 셸 사이에 약간의 불일치가 있으며 스크립트를 실행할 때 실제 문제가 될 수 있다는 것입니다. 배쉬는 배쉬에 고유 한 스크립팅 기능을 꽤 많이 가지고,그리고 다른 쉘에. 당신은 항상 그 스크립트를 실행하는 배쉬를 사용하려는 경우 이것은 괜찮습니다. 그러나 생물 과학과 같은 다른 분야에 대한 어플리케이션도 있습니다..

셸 스크립트의 맨 위에 셸을 사용하여 실행할 셸을 지정할 수 있습니다. 스크립트는 첫 번째 줄에#!/bin/bash을 지정할 수 있습니다.

/빈/쉬 시스템 셸을 나타내는 실행 파일입니다. 실제로,그것은 일반적으로 시스템 셸 중 쉘에 대한 실행 파일을 가리키는 심볼릭 링크로 구현됩니다. 시스템 셸은 시스템 스크립트가 사용해야 하는 기본 셸의 일종입니다. 리눅스 배포판에서 오랜 시간 동안 이것은 일반적으로 배쉬에 대한 심볼릭 링크 였기 때문에 항상 배쉬 또는 배쉬 호환 쉘에/빈/쉬를 연결하는 관례가되었습니다. 그러나 지난 몇 년 동안 데비안(및 우분투)은 시스템 쉘을 배쉬에서 대시로 전환하기로 결정했습니다. 대시는 부팅 속도(및 패키지 설치 스크립트와 같은 많은 쉘 스크립트가 필요한 다른 것들)에 도움이 될 수있는 가볍고 훨씬 빠른 쉘로 간주됩니다.

대시는 배쉬와 상당히 잘 호환됩니다. 그러나,배쉬 특정 확장을 구현하지 않습니다. 현재#!/bin/sh(시스템 셸)를 쉐뱅으로 사용하지만 배쉬 특정 확장이 필요한 스크립트가 있습니다. 이것은 현재 데비안과 우분투에 의해 수정되어야 버그로 간주됩니다,누가 필요/빈/쉬 대시를 지적 할 때 작동 할 수 있도록.

비록 우분투의 시스템 쉘이 대시를 가리키고 있지만,사용자로서의 당신의 로그인 쉘은 현재로서는 계속해서 강타하고 있습니다. 당신이 어디 리눅스에서 터미널 에뮬레이터에 로그인 할 때 즉,로그인 쉘은 배쉬 될 것입니다. 쉘이 대화식으로 사용되는 경우 작업의 속도는 너무 많은 문제가되지 않습니다,사용자는 배쉬에 익숙한(자신의 홈 디렉토리에 배쉬 특정 사용자 정의가있을 수 있습니다).

스크립트를 작성할 때 사용해야 할 사항

스크립트에 배쉬에서만 지원되는 기능이 필요한 경우#!/bin/bash을 사용합니다.

하지만 가능한 경우 스크립트가 폭스 호환되는지 확인하고#!/bin/sh를 사용하는 것이 좋습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.