내가 작성한 BASH 스크립트에는 두 가지 요구 사항이 있습니다.
현재 저는 이러한 방식으로 설치되었는지 확인했으며 사용자로부터 불만이 접수되기 전까지는 이것이 좋은 해결책이라고 생각했습니다.
command -v fping >/dev/null 2>&1 || { echo >&2 "Sorry but fping is not installed. Aborting."; exit 1; }
command -v ifup >/dev/null 2>&1 || { echo >&2 "Sorry but ifupdown is not installed. Aborting."; exit 1; }
나는 가능한 한 많은 플랫폼과 잠재적인 사용자 구성(예: /bin 또는 /sbin을 포함하지 않는 경로)에 작동하는 방식으로 이 글을 작성하고 싶습니다.
내 수표에 대한 제안 사항이 있나요?
답변1
내가 작성한 스크립트는 명령 기능이 POSIX와 호환되므로 귀하의 스크립트와 동일합니다. 사용자들로부터 어떤 불만사항을 받았나요?
이것을 볼 수도 있지만 동일한 문제가 있습니다.Bash 스크립트에서 프로그램이 존재하는지 확인하는 방법은 무엇입니까?
답변2
같은 방식으로 "which"를 사용할 수 있습니다.
편집:
몇 가지 연구 후에 이 제안을 약간 변경해야 합니다.
"which"를 같은 방식으로 사용할 수 있지만 결국에는 다른 도구(예: 위치, 유형, 명령 등)와 동일한 불확실성이 발생합니다.
어떤 경우에는 이러한 모든 도구가 실행된 실행 파일을 명확하게 결정하지 못할 수도 있고 발견된 실행 파일이 실제로 설치하려는 실행 파일인지 확인할 수 있는 도구도 없습니다(icarus가 말했듯이).
귀하의 문제를 해결하는 쉬운 방법은 없다고 생각하며, 귀하가 불만을 제기하는 내용을 알지 못한 채 대안을 제시하기는 어렵습니다.