간단한 for loop
#!/bin/bash for i in `seq 1 10`; do echo $i done
bash 스크립트의 AFAIK 세미콜론은 셸이 현재 명령을 동 기적으로 실행 한 다음 다음 명령으로 이동하도록합니다. Enter 키를 누르면 “다음 명령을 입력 할 수없고 버퍼를 즉시 비울 수 없다는 점만 제외하면 문자 그대로 동일합니다.
그래서 쉘이 다음 줄을 “해석 할 수없는 이유
for i in `seq 1 10`; do; echo $i; done
이 for loop
실제로 작동합니까?
Answer
iv의 for
루프 구문 id = “5afd81afc1″>
매뉴얼 페이지는
for name [ [ in [ word ... ] ] ; ] do list ; done
세미콜론은 bash
매뉴얼 페이지 : “명령을 구분하기 위해 하나 이상의 줄 바꿈 시퀀스가 세미콜론 대신 목록에 나타날 수 있습니다.”
그러나 그 반대는 사실이 아닙니다. 임의로 줄 바꿈 세미콜론으로. 위의 구문 규칙을 준수하고 do
뒤에 추가 세미콜론을 삽입하지 않는 한 여러 줄 스크립트를 한 줄로 변환 할 수 있습니다.
for i in `seq 1 10`; do echo $i; done
댓글
답변
세미콜론 do
이후는 오류이며 존재하지 않아야합니다.
다음은 올바르게 작동합니다.
for i in `seq 1 10`; do echo $i; done
do
뒤에 세미콜론을 제거해야 함을 나타냅니다. 또한이 답변은`do ' 뒤에 세미콜론을 제거해야하는 이유 를 설명합니다.$i
는 파일 이름의 일부 여야합니까? 큰 따옴표가 필요합니까?filename_${i}
다음