Você está na página 1de 1

ISCTE-IUL – Instituto Universitário de Lisboa

DCTI
Sistemas Operativos

bash - comandos de programação de scripts  


jrg@iscte.pt, fmmb@iscte.pt - Versão 1.0 – 29-09-2012

Redirecionamento  
Expansão  
> file.txt  ............................  output  para  file.txt  
*.txt  ...............................  ficheiros  com  extensão  .txt   >> file.txt  .....................................  idem,  acrescentar  
a*  .............................................  ficheiros  começados  por  a   2> erros.txt  ......................  erros  para  erros.txt  
*x*.sh  .........................  contendo  um  x  e  extensão  .sh   &> file.txt  .........  output  e  erros  para  file.txt  
?x?  .............................  com  3  letras,  tendo  um  x  no  meio  
Expressões  
Variáveis   i=$(( 2+3 ))
i=1 i=$(( i+1 ))
j=ABC echo $((i*100))
echo "i=$i e j=$j"
s="os crimes do "$j d=$(date)
echo "data atual: $d"
Argumentos  
read  
$#  ...................................................  numero  de  argumentos    
$0  ...................................  corresponde  ao  nome  do  script   echo -n "diga um número: "
$1  .........................................................  primeiro  argumento     read x
echo "o dobro de $x é $((2*x))"
$2  ..........................................................  segundo  argumento    
$*  ........................................................  todos  os  argumentos  
test  (condições)  
if   [ $x -ge $y ]  .................................  se  $x  é  >=  que  $y  
echo -n "diga um número: " outros:  -­‐gt,  -­‐lt,  -­‐le,  -­‐eq,  -­‐ne  
read x
if [ $x -gt 10 ]; then [ -f $fich ]  .................................  se  o  ficheiro  existe  
echo "é maior que 10" [ ! -f $fich ]  ..................  se  o  ficheiro  não  existe  
elif [ $x -lt 10 ]; then [ -d $fich ]  ....  se  o  ficheiro  existe  e  é  directoria  
echo "é menor que 10" [ "$x" = "sim" ]  ....  se  $x  contém  o  valor  "sim"  
else [ -n "$x" ]  ........................................  se  $x  não  é  vazia  
echo "é mesmo o 10"
fi
Ciclos  de  contagem  
i=0
while   while [ $i -lt 10 ] ; do
guess=$(( RANDOM % 10 )) echo $i
echo "Quando adivinhar termina." i=$(( i + 1))
x=0 done
while [ $x -ne $guess]; do  
echo -n "diga um numero: " ou  
read x  
done for (( i=0; i<10; i++)) {
echo "certo." echo $i
}
for  
for f in 1 2 3 a b c; do
Output  de  comando  
echo "Elemento: "$f d=$(date "+%f")
done echo a data de hoje é $d
for f in *.c; do for f in *.c; do
echo "Elemento: "$f cp $f $f-$d$
done done

Você também pode gostar