이 사이트에 대한 권고 (를 포함하여 여러 곳에서 본 적이 선호 배쉬 오두막을? 무엇을한다 ,)를 사용하기 #!/usr/bin/env bash
에 우선 #!/bin/bash
. 나는 진취적인 개인이 사용하는 #!/bin/bash
것이 잘못되었다는 것을 보았고 그렇게하면 bash 기능이 손실 될 것입니다.
모든 말은, 순환하는 모든 드라이브가 본질적으로 단일 마스터 드라이브의 복제 본인 엄격하게 제어되는 테스트 환경에서 bash를 사용합니다. 이식성 인수는 필자의 경우에 반드시 해당되는 것은 아니지만 이해합니다. #!/usr/bin/env bash
대안 을 선호하는 다른 이유가 있습니까? 이식성이 문제라고 가정하면 기능을 사용할 수없는 이유가 있습니까?
env
위치하지 않을 수 있습니다 /usr/bin
. Shebang 의견은 모두 나쁜 아이디어 IMHO입니다. 기본 스크립트 인터프리터가 shebang 주석을 처리하지 않으면 주석 일뿐입니다. 그러나 스크립트 인터프리터가 shebang 주석을 처리 할 수 있고 bash의 경로를 알고있는 경우 경로가 너무 길지 않은 경우 (아마도) 스크립트 경로를 지정하지 않으면 절대 경로를 사용하여 호출하지 않을 이유가 없습니다. / bin에 bash가없는 시스템에 그런 다음, 이전에 언급 한 경고는 이식성이 관련되어 있으므로이 경우에 적용됩니다.
/etc
하거나 /bin/sh
. bash
대부분의 유닉스 계열 시스템을위한 애드온입니다. Linux로만 bash
보장되며로 /bin
연결되어있을 가능성이 높습니다 /bin/sh
. 리눅스는 많은 사람들에게 현대의 사실상 유닉스가 되었기 때문에 리눅스 이외의 시스템이 존재한다는 사실을 잊어 버렸습니다. 당신이 말했기 때문에 아래의 나 자신의 대답에서 나는 리눅스를 가정했다 bash
. 내가 작업 한 많은 BSD 상자에는 설치하지 않았습니다.
/bin/bash
. Bash는 기본적으로 설치되지 않습니다. 당신이 그것을 원한다면, 당신은해야합니다 pkg install bash
. 설치되면에 위치 /usr/local/bin/bash
합니다. /bin/bash
OpenBSD 에는 아무것도 설치되어 있지 않습니다 . Shebang #!/bin/bash
은 오류가 발생하여 #!/usr/bin/env bash
성공합니다.