for f do exec <"$f"
: handle stdin
done
Um shell não interativo tratará qualquer redirecionamento de um arquivo que não possa ser lido ou que não exista quando associado a um especial especial como um erro fatal e saia imediatamente com uma mensagem de diagnóstico significativa gravada no stderr. Portanto, seus parâmetros são arquivos legíveis e válidos, e a instrução acima não fará nada útil até que você substitua a : ...
parte w / alguma coisa útil ou o usuário forneça um parâmetro inválido e o script saia de forma significativa.
Quando você faz ...
for var in ...; do : compound command list on "$var"; done
O in ...;
bit é uma instrução opcional na sintaxe que permite substituir um conjunto de parâmetros para o conjunto padrão - que é sua lista de argumentos.
Então ...
for var do : compound command list on "$var"; done
... é provavelmente o que você está procurando aqui.
for f do exec <"$f"
: now do some stuff w/ stdin
done
... onde o shell irá atribuir iterativamente a stdin e validar como arquivos legíveis, quaisquer argumentos forneceram seu script para todos os comandos que seguem a instrução exec
até que todos os parâmetros estejam esgotados e o for
loop seja done
. Se não puder fazer isso, formatará e imprimirá sua mensagem de erro em um formulário padrão ao qual o usuário já está acostumado.