globbing e $ # [fechado]

1

Suponha que meu script de shell tenha 3 argumentos:

./myscript dir1 material dir2

Eu preciso de $# para relatar a contagem de itens globbed com dir1/* e não a contagem dos 3 argumentos originais do meu script.

Você conhece alguma maneira de aplicar este código?

    
por PersianGulf 19.12.2015 / 04:27

1 resposta

2
for  arg
do   set -- "$arg/"*
     [ -e "$1" ]  &&
     printf '%s/*:\t%d\n'  "$arg" "$#"
done

se você quiser manter seus argumentos originais após a execução de tal loop:

argc=$#
for  arg
do   set -- "$arg/"* "$@"
     [ -e "$1" ]  &&
     printf '%s/*:\t%d\n' "$arg" "$((${#}-argc))"
     shift "$((${#}-argc))"
done
    
por 19.12.2015 / 05:02