Esta é a partir da página 121 de "Introdução ao Linux para Usuários e Administradores " e isso é um erro tipográfico no texto. O script também está disponível em outros textos da tuxcademy, com o mesmo erro tipográfico.
O único caractere »
não é o mesmo que o duplo >>
e não serve para nenhum propósito em um script de shell. Meu palpite é que o sistema de formatação usado para formatar o texto do livro ficou confuso com "'
por algum motivo e formatou como um guillemet (ângulo-citação), ou é apenas um erro de digitação (as «...»
são usadas para citar texto comum em outras partes do documento).
O script deve ser lido
#!/bin/bash
# Sort files according to their line count
for f
do
echo 'wc -l <"$f"' lines in $f
done | sort -n
... mas seria melhor escrito
#!/bin/sh
# Sort files according to their line count
for f; do
printf '%d lines in %s\n' "$(wc -l <"$f")" "$f"
done | sort -n
Os backticks são uma forma mais antiga de $( ... )
e printf
é melhor para usar na saída de dados variáveis. Além disso, as expansões de variáveis e as substituições de comandos devem ser citadas, e o script não usa nenhum recurso bash
para que possa ser executado por /bin/sh
.
Relacionados: