You can do this safely (i.e. won't be bugged by files with spaces or \n
in their name) with bash:
$ shopt -s nullglob
$ logfiles=(*.log)
$ echo ${#logfiles[@]}
You need to enable nullglob
so that you don't get the literal *.log
in the $logfiles
array if no files match. (See How to "undo" a 'set -x'? for examples of how to safely reset it.)