이것물고기 문서for
루프를 실행하기 위해 다음 방법이 제공됩니다 .
for i in 1 2 3 4 5;
echo $i
end
명령을 1000번 실행하고 싶다고 가정해 보겠습니다. 어떻게 해야 합니까?
답변1
동일한 문서,https://fishshell.com/docs/current/언어.html#loops-and-blocks:
for i in (seq 1 5)
echo $i
end
seq 1 5
예를 들어 14에서 1000까지의 숫자를 얻으려는 숫자로 바꾸십시오 seq 14 1000
. 1부터 시작하려면 시작점을 생략할 수 있습니다 seq 1000
.
그건 그렇고, 이것은 매우 고전적인 UNIX 쉘과 같으며 그다지 현대적인 느낌은 아닙니다. ( bash
그리고 zsh
당신은 할 수 있습니다 for i in {1..1000}
. 이것은 읽기가 더 쉽고 깔끔하다고 생각합니다. seq
실제로 외부 프로그램을 실행하고 출력을 버퍼링하는 데 시간이 절약된다는 것은 말할 것도 없습니다.)
coreutils에 의존하지 않는 또 다른 접근 방식(GNU 프로그램이나 POSIX 쉘이 아닌 경우 슬픈 일임)은 루프 while
와 순수 Fish 내장 기능을 사용하는 것입니다.
set counter 0
# -lt: less than
while test $counter -lt 1000;
set counter (math $counter + 1)
echo $counter
end
답변2
seq
gnu-coreutils에는 일련의 숫자를 인쇄하는 프로그램이 있는 것으로 나타났습니다 .
따라서 명령을 n 번 실행하려면 다음 루프를 사용할 수 있습니다.
for i in (seq n);
echo $i
end