스크립트 인 경우 다음과 같이 스크립트를 호출하십시오.
bash scriptname.sh
링크를 전혀 변경할 필요가 없습니다.
컴파일 된 실행 파일의 경우 chroot 경로로 이동할 수 있습니다.
mkdir rootfs
cp -a /usr rootfs/
cp -a /lib rootfs/
cp -a /lib64 rootfs/
cp /bin/bash rootfs/bin/sh
cp yourprogram rootfs/
sudo chroot rootfs sh
그런 다음 프로그램을 실행하거나 sudo chroot rootfs /yourprogram
그러나 실제로에 /bin/bash
대한 심볼릭 링크로 사용할 수없는 이유는 없습니다 /bin/sh
. 실제로 버전 6.10 이전의 Ubuntu는로 사용 /bin/bash
했으며 POSIX를 훨씬 빠르고 간결하게 구현 /bin/sh
했기 때문에 전환 했습니다. 즉, Unix와 같은 운영 체제 유틸리티 및 OS의 작동 방식에 대한 POSIX 표준을 준수하고 휴대 성으로 인해 내부의 일부를 구현). 어떻게되었는지에 대한 역사적 메모에 대해 Gilles의 답변 을 읽는 것이 좋습니다 . 호환성과 관련 하여 POSIX 기능 을 사용 하기 위해 작성된 스크립트 는 기본 쉘로 완벽하게 작동합니다. 일반적으로 문제를 일으키는 다른 방법입니다./bin/sh
/bin/sh
/bin/dash
dash
bash
bash
구문 이나 배열 /bin/sh
처럼에 필요하지 않은 기능이 있습니다.<<<
또한 해당 명령은 RHEL 또는 CentOS를 염두에두고 작성된 것으로 아마도 /bin/bash
심볼릭 링크로 사용 되는 /bin/sh
두 가지 사항을 제안합니다. 특정 OS를 대상으로하고 POSIX 원칙을 준수하지 않았을 수 있습니다. 이 경우 다른 OS를 염두에두고 작성하면 다시 연결하는 것보다 더 많은 문제가 발생할 수 있으므로 명령에 필요한 다른 사항을 확인하는 것이 좋습니다 /bin/sh
.