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 .