두 배포판(Arch, Manjaro 및 Mint)의 bash는 서로 다른 디렉터리에 있습니다. Bash 스크립트에서 이를 어떻게 적용할 수 있나요?

두 배포판(Arch, Manjaro 및 Mint)의 bash는 서로 다른 디렉터리에 있습니다. Bash 스크립트에서 이를 어떻게 적용할 수 있나요?

저는 최근 Manjaro와 Arch를 주로 사용하고 있지만 Mint에서 발생할 수 있는 몇 가지 하드웨어 문제를 디버깅하려고 합니다.

로 시작하기 때문에 mint에서 더 이상 작동하지 않는 bash 스크립트가 많이 있지만 #!/usr/bin/bashMint의 bash는 /bin/bash. 모든 스크립트를 변경하지 않고도 일종의 리디렉션을 통합할 수 있는 방법이 있습니까?

예를 들어, 연습을 시작하기 위해 제가 작성한 첫 번째 스크립트는 다음과 같습니다.

#!/usr/bin/bash -x
cmatrix -bC red

해당 /usr부분을 제거하면 Mint에서 제대로 실행되지만 동일한 스크립트를 유지하고 두 배포판 모두에서 실행할 수 있는 방법이 있습니까?

답변1

Stack Overflow에 관련 Q&A가 있습니다.당신이 선호하는 Bash shebang은 무엇입니까?, 그런데 여기서는 좋은 것을 찾을 수 없습니다.

, 등의 어느 곳에서나 스크립트를 bash찾으려면 다음을 사용하십시오.PATH/bin/usr/bin

#!/usr/bin/env bash

(이것은 /usr/bin/env존재를 가정합니다.)

하지만 언급한 배포판을 포함하여 대부분의 Linux 배포판에서 사용하는 것이 안전합니다.

#!/bin/bash

일부 배포판반품/usr/bin/bash, 하지만 결과는 이렇다" /usr병합"- /bin이제 이러한 배포판에서도 /usr/bin동일한 콘텐츠를 사용할 수 있습니다.

답변2

다음에는 한 가지 변경이 필요합니다. #!/usr/bin/env bashbash에 대한 PATH를 검색합니다. 하지만 set -x이 일은 혼자 해야 합니다.

관련 정보