O
var=value cmd ar1
não parece funcionar se cmd
for um loop for (nem em bash
nem sh
).
Tanto sh
como bash
geram erros de sintaxe para:
foo=bar for f in ${foo:-BAR}; do echo $f; done
que é o que você está fazendo.
(
- sh: 1: para: não encontrado
- bash: erro de sintaxe próximo do token inesperado 'do'
Esse erro parece resultar em um erro couldn't find fi
no seu caso;
Definir a variável em uma linha separada corrige o erro de sintaxe:
kernlist=$(awk '$1 == "config" { print $2 }' ${kernelconfpath})
for kern in ${kernlist:-netbsd}; do #...
Nota:
Gostaria apenas de escrever "$kernelbuildpath/$kern"
em vez de "${kernelbuildpath}/${kern}"
se eu fosse você. Não há razão técnica para os curlies.