動的機能[オフ]

動的機能[オフ]

ディレクトリにリストされているファイルの入力を受け入れ、そのファイルの内容に基づいて特定のコマンドを処理するスクリプトを作成しようとしています。シナリオは次のとおりです。

/tmp/DIR/の下に5つのファイルがリストされています。 - File1 File2 File3 File4 File5各ファイルには、いくつかの値と比較する必要がある異なるデータ/文字列があり、出力が返されます。

各ファイルに対して別々のスクリプトを作成したり、長いif / else比較リストを作成するなどの簡単な方法でこれを行うことができることを知っていますが、複数の値を返すことができる動的な関数の種類を探しています。処理のために他の機能に提出されました。

ベストアンサー1

私は通常、関連付け/ハッシュ配列を使用してbashでこれを行います(他のシェルは異なります)。

declare -A file_values=( [file1]="value1" [file2]="value2" )
mapfile files < <( find /tmp/DIR -name "File?" -printf "%f\n" )
for f in "${files[@]}"
do
    output="output from file $f"
    if [ "${output}" = "${file_values[${f}]}" ]; then 
...
    fi
done

おすすめ記事