string - Parse command line args to process a list of files in bash? -
i want create script optional inputs parsed similar how this respone explains containing list of files extension. example usage
./myscript.sh -s 25 -q 0.2 *.txt
and script store 25 s
variable, 0.2 q
varable, , list of txt files individually processed. have far
#!/bin/bash -f # set default values qmax=0.2 profilesize=50 while [[ $# > 0 ]] key="$1" case $key in -q|--max_q) qmax="$2" shift # past argument ;; -s|--profile_size) profilesize="$2" shift # past argument ;; esac shift # past argument or value done var in "$@" if [[ $var == *".txt" ]] # on real on each file here echo $qmax $profilesize $var fi done
as is, can run default values commenting out while
loop. without commenting out, reads through inputs , there none left for
loop compare. think best option create list of files in while
loop, use in for
loop. ideas of how that?
just append *)
case stores argument array.
*) files+=("$1") ;;
and iterate on files instead of $@
:
for file in "${files[@]}" ;
Comments
Post a Comment