#!/bin/bash declare -a files declare -a command num_args=$# parameters_done=0 for (( i = 0; i < num_args; i++ )); do case "$1" in --) parameters_done=1 shift ;; *) if ((parameters_done)); then command+=("$1") else files+=("$1") fi shift ;; esac done echo "files: ${files[*]}" echo "command: ${command[*]}" while inotifywait -e close_write "${files[@]}"; do "${command[@]}" done