| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!

View
 

aula do julio neves

Page history last edited by PBworks 17 years, 6 months ago

O shell tenta facilitar a vida do kernel interpretando

primeiro o conteúdo das variáveis e entregando depois para o kernel

 cd tes*   - expansão de tab

  var=5   para mostrar
  echo $var

  var="x    x"
  echo "$var"

  echo '$var'

  www.julioneves.com


!!uso da crase
O shell interpreta antes o conteúdo das crases

   uname -n
   echo "você é `uname -n`"
   echo "você é $(uname -n)"

   echo o julio é 
   > lindo

!!Criando um arquivo sem descer ao nível shell
  > arq

conselho do Júlio para o bash profile

  alias rm="rm -i"
  
  rm arq

Redirecionamentos
cat > arq

sort bigfile -o bigfile

2>> saida de erro 

rm a b c << eol
s
s
s
eol

!Here document

Péssimo código

 if cd dir 2> /dev/null
   then

   else 
     mkdir dir
     cd dir
 fi

 
melhor

    if [ ! -d dir ]
    then
       mkdir dir
    fi
    cd dir


  Os colchetes são um alias para o comando test
     
ls xxx || echo arq não encontrado

[ ! -f xxx ] &&  echo arquivo não encontrado

criando um arquivo rapidinho
[ -d dir ] || mkdir dir ; cd dir


se usar =~  pode usar expressões regulares

 [[ $hh == 0[0-9] || $hh == 1[0-2] ]] && echo hora ok

Case

 testa a hora do sistema como case

   case $hh in 
     0[0-9]|1[0-1]) echo Bom dia;;
     1[2-7]) echo Boa Tarde;;
      *) echo Boa Noite ;;
   esac

seq 2 10

seq 3 2 10

x=15
echo $((x*3))
resulta 45
unset i

  for ((i=1; i<=10; i++)){
   echo $i
  }
remover carrige return
tr -d 'r'

IFS = branco tab e enter

while who | grep xefe > /dev/null
do
  sleep 5
done
  echo o xefe xato saiu

 killall $(who | cut -c8 | sort uniq -d)

Pegadinha do wile
 
  IFS=:
  cat /etc/passwd |
   while read nome lixo uid lixo
   do
     let i++
     echo $i $nome $uid
   done

 a variável $i acima é aberta em um subshel
 e portanto fica zerada

a forma correta 

 while read nome lixo uid lixo
   do
     let i++
     echo $i $nome $uid
     ((i % 10)) || read < /dev/tty
   done  < /etc/passwd
   
tput lines  -- pega o número de linhas


Named pipe
mkfifo fofo
ls
no outro shell cat fofo (tem que estar no mesmo diretório)

uso do named pipe é para 
sincronizar processos

cat <(ls -l)
ls -l >(cat)   -- named pipe temporário

DIFF <(ls -l dir) <(ls -l dir.bkp)



Comments (0)

You don't have permission to comment on this page.