动态功能

动态功能

我正在尝试创建一个脚本,该脚本接受来自某个目录下列出的文件的输入,并根据这些文件的内容处理某些命令。这是场景:

我在 /tmp/DIR/ 下列出了 5 个文件 - File1 File2 File3 File4 File5 每个文件都有不同的数据/字符串,需要与某个值进行比较并返回输出。

我知道这可以通过更简单的方法来完成,例如为每个文件编写单独的脚本或通过一长串 if/else 进行比较,但我正在寻找某种动态函数,该函数可以根据文件名返回多个值,然后可以提交给另一个函数来处理。

答案1

我通常在 bash 中使用关联/哈希数组来执行此操作(其他 shell 不同)。

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

相关内容