So I've ran into a bit of a wall, I have an option in my script that calls a function which allows me to specify a file/directory and then I want to parse that output into a menu tool (using dmenu in this case) to select which file is the one I want specifically and continue working with that selection as a variable in the same script. This works fine if it's just one file or directory, but I want to be able to use the option multiple times and then parse all of that output at once to dmenu. Here's a snippet
fileSelection () { if [ -d "${OPTARG}" ]; then find "${OPTARG}" -type f; fi; if [ -f "${OPTARG}" ]; then printf '%s\n' "${OPTARG}"; fi; } while getopts "f:" option; do case "${option}" in f) file="$(fileSelection|dmenu)";; esac done
And like I said this works if I do:
myscript -f file
or
myscript -f directory
but I was hoping to also be able to do this:
myscript -f file1 -f file2
The problem is, since the function is called consecutively I can't parse the output into dmenu like that, because it doesn't invoke dmenu with options file1 and file2, but first with file1 and then with file2, I hope this makes sense.
There might be some really simple solution I am missing, I've thought about simply writing the output into a file and then parsing that which might work, but I'd like to avoid piping to files if possible. I am also trying to keep it POSIX compliant, and would appreciate answers that follow that.