domingo, 11 de maio de 2008

Validação aritmética em shell scripting

Shell
Em shell-scripts, costumamos usar os recursos do Korn Shell, shell desenvolvido por David Korn nos AT&T Bell Labs na década de 1980 como uma extensão do Standard Shell.

Por exemplo, para ciclo de contagem progressiva:
for i in `seq 10`
do
echo $i
done


Outro tipo de contagem:
if [ -z "$FILENAME" ]
then
NULL_FILENAME_COUNT=`expr $NULL_FILENAME_COUNT + 1`
fi


Mas nos esquecemos que em ambiente GNU/Linux usamos o bash, que possui recursos ainda mais poderos que o Korn Shell.

Por exemplo, vamos reescrever a contagem de 1 a 10 usando a validação aritmética:
for ((i=1; i<=10; ++i))
do
echo $i
done


A outra contagem também pode ser escrita usando recursos embutidos do bash, sem precisar levantar um processo test[ e ] são um apelido para test:
if [[ -z "$FILENAME" ]]
then
((++NULL_FILENAME_COUNT))
fi


Em ambiente BSD, o shell usado é o CShell, desenvolvido por Bill Joy – sim! O cara do Java! O CShell tem uma sintaxe propositalmente similar à de C e também é bastante poderoso.

Voltemos a nossos exemplos:
@ i = 0
while ($i < 10)
@ i++
echo $i
end


O ambiente aritmético em CShell é validado por @.
if (!($?filename)) then
@ nullFilenameCount++
else
if (!($%filename)) \
@ nullFilenameCount++
endif


Em ambiente GNU/Linux, você pode evocar o CShell através de tcsh.

Mais dicas nas páginas de manual (manpages) bash e tcsh.

[]'s
Cacilhas, La Batalema
blog comments powered by Disqus