shfmt 3.14.1 Windows x64 다운로드·사용법 (프로그래머용 셸 스크립트 정리)

대상 사용자: 프로그래머. Bash·POSIX 셸 스크립트의 들여쓰기와 배치를 일정하게 만들고, 저장소에서 포맷 차이를 확인하려는 분을 위한 안내입니다. Windows용 공식 실행 파일을 ZIP으로 첨부했습니다. Windows에서 프로그램을 실행해 파일을 정리할 수 있지만, 셸 스크립트를 실행하려면 Bash 또는 호환 셸이 별도로 필요합니다.

첨부와 공식 출처

직접 내려받으려면 공식 Windows x64 원본을 이용하세요. 명령 옵션은 제작사 사용 설명을 기준으로 작성했습니다. 원본 실행 파일은 BSD-3-Clause 조건에 따라 재배포하며 원문 고지를 ZIP에 보존했습니다.

설치 및 첫 실행

  1. 공식 원본 ZIP을 신뢰할 수 있는 작업 폴더에 압축 해제합니다. 예: C:\Tools\shfmt. 설치 마법사는 없습니다.
  2. PowerShell에서 Get-FileHash .\shfmt_v3.14.1_windows_amd64.exe -Algorithm SHA256을 실행하고 위 해시와 대조합니다. ZIP 안의 SOURCE-ORIGIN.txt에도 같은 값이 있습니다.
  3. 같은 폴더에서 .\shfmt_v3.14.1_windows_amd64.exe --version을 실행해 v3.14.1을 확인합니다. 매번 전체 이름을 입력하기 번거로우면, 검증 후 개인 작업 폴더에서 실행 파일 이름을 shfmt.exe로 바꿔 사용할 수 있습니다. 원본 ZIP은 그대로 보관하세요.

읽기 전용 점검과 실제 정리

실습 ZIP의 practice\unformatted.sh를 복사한 뒤, PowerShell에서 다음을 순서대로 실행합니다. 아래 예제는 이름을 shfmt.exe로 바꿨다고 가정합니다.

.\shfmt.exe -d .\unformatted.sh
.\shfmt.exe -w .\unformatted.sh
.\shfmt.exe -d .\unformatted.sh

-d는 포맷 차이를 출력하고 차이가 있으면 종료 코드 1을 반환하므로, 첫 호출이 PowerShell에 실패처럼 표시되는 것은 예상한 결과입니다. -w는 파일을 실제로 덮어쓰므로 원본이 아닌 복사본에 먼저 사용하세요. 마지막 -d는 차이가 없어 빈 출력을 내야 합니다. 출력만 보고 싶으면 -w 없이 .\shfmt.exe .\unformatted.sh를 사용합니다. 프로젝트 전체를 검사할 때 -d .를 사용할 수 있지만, 실행 전 대상 디렉터리에 포함된 스크립트 범위를 확인하세요. 들여쓰기를 공백 두 칸으로 지정하려면 -i 2를 추가할 수 있습니다.

문제 해결

라이선스와 범위

공식 실행 파일과 상위 프로젝트는 BSD-3-Clause이며 원문 LICENSE-UPSTREAM.txt를 공식 원본 ZIP에 포함했습니다. 한국어 설명서와 실습 파일은 CC0-1.0입니다. 작성 시점의 공식 릴리스 버전과 해시는 위 링크에서 다시 확인할 수 있습니다. 이 안내는 Windows x64 단일 실행 파일 기준이며 다른 아키텍처용 파일과 셸 런타임은 첨부하지 않았습니다.