Fala Jeiks,
teu código está feio mas muito eficiente. Eu não mexeria uma palha sequer
nele, exceto duas observações bobas:
- Só se usa ${var} para isolar a palavra var de algo que a segue e que seja
uma letra, um número ou um sublinha. Assim vc pode escrever $var: para
concatenar o valor de $var com um dois-pontos, mas caso vc queria concatenar
$var com o número 1 vc deve fazer ${var}1. Isso para que o shell não ache
que o nome da variável é var1.
- Outra coisinha boba é o tr [A-Z] [a-z], que poderia (e deveria) ser tr A-Z
a-z. O que vc fez é a construção unix e, neste caso, deveria ser tr '[A-Z]'
'[a-z]'.Cara, o teu script tá muito bom e, pelo seu jeito de programar, acho que vc foi meu aluno ou estudou no meu livro ou no Papo de Botequim<http://wiki.softwarelivre.org/TWikiBar/WebHome#Livro_de_Shell_em_Portugu_s>. Confirme. -- Abração, Julio *Cursos de Shell e Zenity nos finais de semana: - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - No RJ brevemente; - Turmas fechadas em outras cidades ligue (21) 8112-9988* 2009/4/3 Jeiks <[email protected]> > Olá povo, > estava precisando pegar o device de vídeo das máquinas e, caso fosses > unichrome ou via, trocar o nome do driver para vesa. > Bom... consegui, mas tá feio de ver.. hehe > Gostaria de ajuda para melhorar o código. > > abração > > Código: > > #!/bin/bash > > DEVICE_DRIVER="" > > OLD_IFS="$IFS" > VGA_INFO=$( > IFS=$'\t' > while read lixo NUM_ID lixo;do > grep "0x${NUM_ID%????}.*0x${NUM_ID#????}.*Card:" \ > /usr/share/apps/guidance/pcitable > done < /proc/bus/pci/devices | tr [A-Z] [a-z] > ) > IFS="$OLD_IFS" > > DRIVERS="unichrome via" > for DRIVE in $DRIVERS;do > case ${VGA_INFO} in > *${DRIVE}*) > DEVICE_DRIVER="vesa" > ;; > esac > done > > -- > Jacson R. C. Silva > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]
