これは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
- 2回目のサイクル80
- 3ラウンド85
- 第4ラップ90
同じコマンドを4回入力し、毎回パラメータを変更する必要がないように自動化するにはどうすればよいですか?
- 他のプログラミング言語ではなく、1行またはスクリプトで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