BASH
Posts
81 posts[bash: if] if 조건문에서 띄어쓰기에 유의
별 것 아닌 기본적인 내용이긴 한데, 스크립트를 만들다가 의외로 실수하는 경우가 종종 있어서 잊지 말자는 의미에서 적어 두기로. if 조건문에서 비교 조건을 지정하기 위해 대괄호([])를 사용하게 되는데, 대괄호와 비교조건 사이에는 반드시 공백이 있어야 한다. 아래의 예시를 보자. str="abc" # 오류 발생! (띄어쓰기 오류) if [[$str="abc"]] then echo "ABC" fi [[abc=abc]]: command not found 대괄호와 조건이 붙을 경우 bash에서 대괄호와 조건이 붙은 전체 문구를 하나의 명령어로 해석하여 처리하려 하므로 오류가 발생하게 된다. 띄어쓰기를 제대로 해 주면 정상 동작한다. # 정상 동작 if [[ $str="ab
[bash: xargs] 공백이 포함된 출력 결과를 다음 명령어의 인자로 사용
간단한 내용이지만 간혹 잊어버리고 있다가 오류가 발생하는 상황이 있어서 여기에 정리해 두기로. 우선 xargs 명령에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로 예를 들어 앞 명령어의 출력이 파일명인데 이것을 xargs 명령을 통해서 인자(argument)로 넘기고자 하는 상황을 생각해 보자. 확장자가 txt인 파일만 grep으로 추려낸 후 cat으로 내용을 확인하는 경우다. 통상 아래와 같이 입력하면 될 것이다. # 현재 디렉토리에 있는 txt 파일의 내용 확인 ls | grep "\.txt" | xargs cat 만약 위와 같이 입력했는데 txt 파일 중에 파일명에 공백이 포함된 것이 있다면 해당 파일에 대해서는 cat 명령이 제대로 실행되지 않고 오류 메세지가 나올 것
[bash: sed] 리눅스에서 윈도우 텍스트 파일의 CR(캐리지 리턴) 제거
윈도우에서 만들어진 텍스트 파일의 일부분을 리눅스쪽에서 가져다가 작업하면서 발생했던 문제다. grep을 이용해서 파일의 특정한 부분을 가져온 후에 다른 내용과 조합해서 출력해야 하는 상황이었다. 대략 아래의 예시와 같다. # from_windows.txt 파일 내용중 처음 출현한 시간(HH:MM:SS 형식) 추출 및 출력 time_val=`cat from_windows.txt | grep "[012][0-9]:[0-5][0-9]:[0-5][0-9]" | head -1` echo "$time_val 발견!" 발견!55 추출한 값을 변수 time_val에 저장한 후에 echo 명령으로 위의 예시와 같이 출력을 했는데, 변수값 뒤에 출력되어야 할 문자열이 맨 앞으로 오는 문제가 발생. 이렇게 되



![[1년 전 오늘] 250608 인천 무의도 덕점방파제 바다루어낚시 - 장대, 광어](https://img.zoomtrend.com/2026/06/10/1781084366-20250608122254.jpg)
![[CV] [Comi] '終末のハーレム ファンタジア' (종말의 하렘 판타지아) 17권. 그동안 SAVAN에 무슨 일이 있었던 거냐](https://img.zoomtrend.com/2026/06/10/1781084386-ECA484EBA6ACEC9790.jpg)