Um redirecionamento <"dir/file"
abre o arquivo para leitura na entrada padrão pela duração do comando ao qual o redirecionamento se aplica. Quando não há comando, o arquivo é aberto para leitura (o que leva a um erro se o arquivo não existir ou não tiver a devida permissão), mas diferente do redirecionamento não tem efeito.
O Ksh adicionou uma extensão, que foi adotada por bash e ksh. Se uma substituição de comando contiver um redirecionamento de entrada e nada mais $(<"dir/file")
(nenhum comando, nenhum outro redirecionamento, nenhuma atribuição, etc.), o comando susbtitution será substituído pelo conteúdo do arquivo. Assim, $(<"dir/file")
é equivalente a $(cat "dir/file")
(exceto que não chama o utilitário cat
, portanto é marginalmente mais rápido e faz a mesma coisa mesmo se cat
tiver sido substituído ou não estiver no caminho de pesquisa do comando ).
Isso é mencionado no manual bash sob “substituição de comando” .