본문 바로가기
기타/셸스크립트

[리눅스] sh파일을 리포매팅해주는 shfmt

by 일코 2024. 2. 10.

shfmt

shfmt는 인스톨해야 한다. `sudo apt install shfmt`를 실행했다.

파일명 참 맘에 든다. SHell ForMaT 잖아?
사용법을 간략히 알아봤는데

vim으로 이렇게 개떡같이 짜놓았어도

`shfmt ifex.sh`를 실행하면
아래처럼 출력해준다.
단, 파일이 바뀌어 있지는 않고,
그냥 결과물만 보여준다.
원본을 이대로 수정하려면
`shfmt -w ifex.sh`로 실행하면 된다.

아름답게 바뀌긴 했는데,
then을 다음 줄로 내려준다든지,
들여쓰기를 네 칸으로 해준다든지 하는 작업은 하지 않았다.

들여쓰기 네 칸을 적용하려면 '-i 4' 옵션을 추가하면 된다.

이제 좀 예뻐졌는데?
다른 옵션은 없나?

man shfmt를 실행해보았다.

-s와 -mn을 각각 실행해보니,

-s는 스페이스 네 칸을 탭 하나로 만들어버렸다.
-mn은 들여쓰기도 모두 없애버리고, 빈 줄도 없애버렸다. 말 그대로 minify를 했네.

기대에 비해선 별 쓸모없는 놈들이었군(?)

다른 옵션은 없나?

많이 있다. 그런데 (당장은) 나한테 쓸모있을 것 같지 않은 것들이다.

패스.

 

댓글