디렉터리에 나열된 파일의 입력을 받아들이고 해당 파일의 내용을 기반으로 특정 명령을 처리하는 스크립트를 만들려고 합니다. 시나리오는 다음과 같습니다.
/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