動的ユーザー入力変数の数を含むBashスクリプト

動的ユーザー入力変数の数を含むBashスクリプト

次のスクリプトを作成しました。

#!/bin/bash
read var1
ffmpeg  -ss $var1 -y -i "$1" -frames:v 1 -q:v 2 "1$.jpg" 
exit

これは単一のファイルに対してうまく機能します。スクリプトは入力を待ってからそれをffmpegに渡します。しかし、これを複数のファイルに再利用するにはどうすればよいですか?つまり、スクリプトでは、このように手動で実行することなく、渡された各パラメータへの入力が必要ですか?

#!/bin/bash
read var1
read var2
read var3
ffmpeg  -ss $var1 -y -i "$1" -frames:v 1 -q:v 2 "$1.jpg" 
ffmpeg  -ss $var2 -y -i "$2" -frames:v 1 -q:v 2 "$2.jpg" 
ffmpeg  -ss $var3 -y -i "$3" -frames:v 1 -q:v 2 "$3.jpg"

答え1

forループを使用してください。

#!/usr/bin/env bash

for param in "$@"; do
    read -p "Enter ... something: " -r var
    ffmpeg  -ss "$var" -y -i "$param" -frames:v 1 -q:v 2 "${param}.jpg" 
done

for param in "$@"; do次のように書くことができますfor param do

関連情報