Com zsh
, eu faria:
files=($(do_something to find filenames))
(($#files)) && find $files ...
com tcsh
:
set files=('do_something to find filenames')
if ($#files) find $files:q ...
Com bash
, mksh
ou ksh93
,
set -f; files=($(do_something to find filenames))
((${#files[@]})) && find "${files[@]}" ...
POSIXly:
set -f; set -- $(do_something to find filenames)
[ "$#" -gt 0 ] && find "$@" ...
(no bash e em outros POSIX shells, $(...)
splits (em $IFS
: space, tab e newline por padrão), mas também executa globbing nas palavras resultantes que eu não espero que você queira aqui. o set -f
. Outros shells ((t) csh, zsh, fish, rc, es ...) não têm esse problema).