• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

Linux shell. for 문에서 줄바꿈을 기준으로 반복문 실행하기

콜라 416

0

4

lists라는 변수에는 다음과 같은 내용이 저장되어있습니다.

$ lists=`find . -type f`

./a/a
./b/b
./d/d

 

 

저는 다음 for문을 실행시켰습니다.
for i in "$lists"; do echo $i; echo 1; done

저는 다음과 같은 결과가 출력 되리라고 예상했습니다.
./a/a
1
./b/b
1
./d/d
1


하지만 결과는 다음과 같습니다.
./a/a
./b/b
./d/d
1


줄 바꿈을 기준으로 나누어서 실행될 것이라고 예상했으나.. 
줄바꿈 마저도 하나의 텍스트로써 i 안에 넣어서 실행해버리더군요.
쌍따옴표를 없애서 아래 명령도 수행해봤습니다.
for i in $lists; do echo $i; echo 1; done


구글에 검색해봐도 뭐라 해야 할지 모르겠습니다.
for 문을 영어로 뭐라 검색해야 할지도 모르겠고;;ㅋ꙼̈ㅋ̊̈ㅋ̆̈
for라고 검색하면 구글이 이 for를 for문이 아니라 전치사로 인식해버려요;;

신고공유스크랩
4
1등
콜라 글쓴이 2022.08.04. 14:11

for문은 영어로 for loop라고 한다고 합니다.

좀 더 찾아봐야겠네요.ㅎㅎ

콜라 글쓴이 2022.08.04. 14:27
콜라

원인을 찾았습니다.

zsh 때문이었습니다.

 

shell의 미용(?)을 위해 zsh를 사용하고 있었는데

이 내용을 그대로 shell 파일로 만들어서 #!/bin/bash로 설정했더니

매우 잘됩니다.

 

#!/bin/zsh로 하면 역시나 질문 글과 같은 문제가 발생합니다.

 

zsh에서는 line by line으로 for loop 돌리는 방법을 찾아봐야겠습니다.

profile image
달소 2022.08.04. 14:35
콜라

오.. 역시 자가해결이..짱이군요 ㅎㅎ..

스크립트같은경우에는 대부분 #!/bin/bash로 사용하고있어서 레퍼런스도 그쪽이 많을것같긴합니다

콜라 글쓴이 2022.08.04. 14:39
달소

스크립트에서는 bash로 하면 해결이 가능하지만, bash는 너무 못생겼는데다가..

오라클 여러 기기 관리하다보면 지금 보고 있는데 A1인지, E2 인지 헷갈려서

zsh를 선호하고 있습니디.

 

UI(?)의 색상과 모양으로부터 구분이 가능하니까 명령줄 시작 부분이나 터미널 창을 안보고 구분 가능하다는 점에서 좋아하는데 이런 문제가 있는 줄은 몰랐습니다.

 

역시 스택 오버 플로우 최고입니다.

제가 사용한 for 문  대신  while 문으로 사용하여 해결 가능하다고 합니다.

 

문제가 된 for 문

for i in "$lists"; do echo $i; echo 1; done

 

해결방안으로 찾아낸 while 문

while read -r i; do echo "$i 1"; done <<< "$lists"

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 제목 글쓴이 날짜 조회 추천
Immich가 FUTO에 합류했습니다.(Immich 핵심 팀은 정규직으로 근무합니다.) 4 달소 11시간 전11:38 195 +1
오픈아이콘 제공 사이트(https://cdn.jsdelivr.net) 오류 발생 => 복구됨 2 지딱코 1일 전14:31 193 +1
Ubuntu에서 Ubuntu Pro 로 전환하기 2 달소 2일 전22:22 338 +3
3696
image
keiminem 9시간 전13:12 295 0
3695
normal
달소 11시간 전11:38 195 +1
3694
normal
홍익 1일 전19:26 181 0
3693
image
지딱코 1일 전14:31 193 +1
3692
image
달소 2일 전22:22 338 +3
3691
image
ljr10 2일 전08:20 160 0
3690
image
달소 2일 전06:46 169 +1
3689
image
달소 2일 전05:50 180 +6
3688
image
달소 2일 전05:38 120 0
3687
image
달소 2일 전05:20 384 0
3686
image
keiminem 3일 전17:43 337 +3
3685
normal
purndal 3일 전14:32 235 0
3684
image
초보나스 3일 전10:46 103 0
3683
image
달소 3일 전10:03 305 0
3682
normal
keiminem 3일 전09:29 320 0
3681
normal
kmw_ 3일 전09:11 155 0
3680
normal
환경설정 4일 전13:31 396 0
3679
image
지축또타 4일 전23:02 344 +1
3678
image
ljr10 5일 전20:47 379 0
3677
image
양미 5일 전18:34 187 0