각각의 새로운 루프에는 서로 다른 매개변수 값이 있습니다.

각각의 새로운 루프에는 서로 다른 매개변수 값이 있습니다.

이것은 webp용 cwebp이며 다음과 같은 조건에서 가능한 모든 품질을 테스트하고 있습니다.

cwebp -q 75 file.jpeg -o file.webp

나는 다음과 같은 루프를 원합니다 :

for i in {1..4}; do cwebp -q ?? file.jpeg -o file.webp; done

어디? ? 특정 값을 변경해야 합니다. 예를 들면 다음과 같습니다.

  • 첫 번째 루프 75
  • 두 번째 사이클 80
  • 3라운드 85
  • 네 번째 랩 90

동일한 명령을 4번 입력하고 매번 매개변수를 변경할 필요가 없도록 이를 자동화하려면 어떻게 해야 합니까?

  • 다른 프로그래밍 언어가 아닌 한 줄이나 스크립트로 bash 명령을 원합니다.
  • for올바른 명령이 이거나 while다른 명령인지 잘 모르겠습니다.

답변1

원하는 내용은 다음과 같습니다.

for i in 75 80 85 90; do cwebp -q "$i" file.jpeg -o file.webp; done

이렇게 하면 매번 출력 파일을 덮어쓰게 되므로 출력 파일 이름에 품질을 사용하는 것이 좋습니다.

for i in 75 80 85 90; do cwebp -q "$i" file.jpeg -o file-"$i".webp; done

값 75, ..., 90이 임의적이지 않고 Z 단계로 X에서 시작하여 Y에서 끝날 것이라는 것을 알고 있는 경우 다음을 사용할 수 있습니다.버팀대 확장또는산술 for루프다음 값을 생성합니다.

for i in {75..90..5}; do cwebp -q "$i" file.jpeg -o file-"$i".webp; done
for ((i = 75; i <= 90; i += 5)); do cwebp -q "$i" file.jpeg -o file-"$i".webp; done

답변2

다음을 사용해 볼 수도 있습니다.seq

for i in $(seq 75 90 5); do cwebp -q "$i" file.jpeg -o file-"$i".webp; done

관련 정보