Os parâmetros podem ser recebidos como $1 , $2 , etc. ou $* para todos eles.
Há também a matriz $@ , que geralmente é usada como "$@" como uma versão melhor de $* . Outro uso possível é ${@:3} , que significa "todos os argumentos começando com o terceiro".
Para obter a saída de um comando, use $( ... ) ou sua forma antiga ' ... ' . Geralmente, é recomendável sempre usar $() , já que ele pode ser aninhado, por exemplo, blah=$(cat /blah/$(blah)/blah) .
#!/usr/bin/env bash
for dir in "$@"; do
for file in "$dir"/*; do
lines=$(wc -l < "$file")
if (( lines >= 15 && lines <= 50 )); then
echo "File -> $file ($lines lines)"
fi
# another possible syntax:
# if [ "$lines" -ge 15 ] && [ "$lines" -le 50 ]
# or:
# if [[ "$lines" -ge 15 && "$lines" -le 50 ]]
done
done
Recursos úteis:
- Wiki do Bash Hackers
- Wiki de Greg: FAQ da Bash
- Wiki de Greg: Armadilhas de Bash
- Wiki de Greg: Armadilhas de Bash
- Wiki de Greg: Armadilhas de Bash
- Sério, reserve algum tempo lendo as armadilhas do Bash .