실행 파일의 확장자를 찾으십니까?

실행 파일의 확장자를 찾으십니까?

GNU+Linux 시스템의 소스에서 소프트웨어를 빌드할 때 ./configure이 단계에서 종종 다음 줄을 보게 됩니다:

checking for suffix of executables...

Bash 스크립트에서 이러한 검사를 어떻게 만들 수 있습니까?

내가 이것을 알고 싶은 이유는 Cygwin에서는 접미사 .exe로 컴파일되지만 실제 GNU+Linux에서는 접미사 없이 컴파일되는 makefile을 만들고 싶기 때문입니다.

답변1

테스트는 작은 더미 C 프로그램을 컴파일하고 컴파일러가 출력 파일의 이름을 지정하는 방법을 확인하여 수행됩니다.

다음 예는쉽게 한configure수행 중인 작업의 버전

#!/bin/sh

cat << EOT > dummy.c
int main(int argc, char ** argv) {
    return 0;
}
EOT

gcc -o dummy dummy.c

if [ -f dummy.exe ] ; then
  # exe
fi

autoconf를 사용하여 구성 스크립트를 생성하고 이를 목적에 맞게 사용하는 것이 좋습니다.

답변2

그러면 파일 확장자가 제공됩니다.

FILENAME=/tmp/testfile.exe
echo "${FILENAME##*.}"

결과:

exe

관련 정보