%EC%9D%98%20bash%EB%8A%94%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EC%9D%B4%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%A0%81%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
저는 최근 Manjaro와 Arch를 주로 사용하고 있지만 Mint에서 발생할 수 있는 몇 가지 하드웨어 문제를 디버깅하려고 합니다.
로 시작하기 때문에 mint에서 더 이상 작동하지 않는 bash 스크립트가 많이 있지만 #!/usr/bin/bash
Mint의 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 bash
bash에 대한 PATH를 검색합니다. 하지만 set -x
이 일은 혼자 해야 합니다.