동적 사용자 입력 변수 수를 포함하는 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

관련 정보