Sei sulla pagina 1di 10

Programando em shell script

Primeira parte, uma introdução


Quem usa Linux conhece bem o prompt de comando sh, ou variações como o bash. O ue muita gente não
sabe é que o sh ou o bash têm uma “poderosa !inguagem de script embutido ne!as mesmas " she!! script.
#iversas pessoas uti!i$am%se desta !inguagem para &aci!itar a rea!i$ação de in'meras tare&as administrativas
no Linux, ou até mesmo criar seus pr(prios programinhas. )atric* +o!*erding, criador da distribuição
!ac*-are, uti!i$a esta !inguagem para toda a insta!ação e con&iguração de sua distribuição. +ocê poder
criar scripts para automati$ar as tare&as dirias de um servidor, para e&etuar bac*up automtico regu!armente,
procurar textos, criar &ormatações, e muito mais. )ara você ver como esta !inguagem pode ser 'ti!, vamos
ver a!guns passos introdut(rios sobre e!a.

/nterpretadores de comandos são programas &eitos para intermediar o usurio e seu sistema. 0través destes
interpretadores, o usurio manda um comando, e o interpretador o executa no sistema. 1!es são a “he!! do
sistema Linux. 2saremos o interpretador de comandos bash, por ser mais “extenso que o sh, e para que ha3a
uma me!hor compreensão das in&ormações obtidas aqui, é bom ter uma base sobre o conceito de !(gica de
programação.

2ma das vantagens destes she!! scripts é que e!es não precisam ser compi!ados, ou se3a, basta apenas criar
um arquivo texto qua!quer, e inserir comandos 4 e!e. )ara dar 4 este arquivo a de&inição de “she!! script,
teremos que inc!uir uma !inha no começo do arquivo 5678bin8bash9 e torn%!o “executve!, uti!i$ando o
comando chmod. +amos seguir com um pequeno exemp!o de um she!! script que mostre na te!a: “;ossa7
1stou vivo7:

1 #!/bin/bash
2 echo 'Nossa! Estou vivo!'
<ci!, hein= 0 primeira !inha indica que todas as outras !inhas abaixo deverão ser executadas pe!o bash 5que
se !oca!i$a em 8bin8bash9, e a segunda !inha imprimir na te!a a &rase “;ossa7 1stou vivo7, uti!i$ando o
comando echo, que serve 3ustamente para isto. >omo você p?de ver, todos os comandos que você digita
diretamente na !inha de comando, você poder inc!uir no seu she!! script, criando uma série de comandos, e
é essa combinação de comandos que &orma o chamado she!! script. @ente também dar o comando A&i!e
arquivoB e ve3a que a de&inição de!e é de Courne%0gain he!! cript 5bash script9.
>ontudo, para o arquivo poder se executve!, você tem de atribuir o comando de executve! para e!e. 1
como citamos anteriormente, o comando chmod se encarrega disto:

$ chmod +x arquivo
)ronto, o arquivo poder ser executado com um simp!es “.8arquivo.

Conceito de Variáveis em shell script


+ariveis são caracteres que arma$enam dados, uma espécie de ata!ho. O bash reconhece uma varive!
quando e!a começa com D, ou se3a, a di&erença entre Apa!avraB e ADpa!avraB é que a primeira é uma pa!avra
qua!quer, e a outra uma varive!. )ara de&inir uma varive!, uti!i$amos a seguinte sintaxe:

1 variavel="valor"
O Ava!orB ser atribuEdo a Avarive! A. +a!or pode ser uma &rase, n'meros, e até outras variveis e comandos.
O va!or pode ser expressado entre as aspas 5“9, ap(stro&os 59 ou crases 5“9. 0s aspas vão interpretar as
variveis que estiverem dentro do va!or, os ap(stro&os !erão o va!or !itera!mente, sem interpretar nada, e as
crases vão interpretar um comando e retornar a sua saEda para a varive!.

+e3amos exemp!os:
$ variavel="Eu estou loado como usurio $user"
$ echo $variavel
Eu estou loado como usurio cla

$ variavel='Eu estou loado como usurio $user'


$ echo $variavel
Eu estou loado como usurio $user

$ variavel="eu diretrio atual  o %&d%"


$ echo $variavel
eu diretrio atual  o /home/cla
e você quiser criar um script em que o usurio deve interagir com e!e, é possEve! que você queira que o
pr(prio usurio de&ina uma varive!, e para isso usamos o comando read, que dar uma pausa no script e
&icarar esperando o usurio digitar a!gum va!or e tec!ar enter. 1xemp!o:

echo "Entre com o valor &ara a varivel( " ) read variavel


5O usurio digita e tec!a enter, vamos supor que e!e digitou Aeu sou um &rutinhaB9

echo $variavel
eu sou um *rutinha

Controle de fuxo com o i


>ontro!e de &!uxo são comandos que vão testando a!gumas a!ternativas, e de acordo com essas a!ternativas,

vão executando
baseado na !(gicacomandos. 2m isso,
“se acontecer dos comandos de contro!e
irei &a$er isso, de &!uxo
se não, irei &a$er mais usados é certamente o i&, que é
aqui!o.

+amos dar um exemp!o:

1 i*  0e $linux 
2 then
 echo ' varivel $linux existe3'
, else
- echo ' varivel $linux n4o existe3'
. 5
O que este pedaço de c(digo &a$= O i& testa a seguinte expressão: e a varive! D!inux existir, então 5then9
e!e di$ que que existe com o echo, se não 5e!se9, e!e di$ que não existe. O operador %e que usei é pré%
de&inido, e você pode encontrar a !istagem dos operadores na tabe!a:

0eq 6ual
0ne 7i*erente
0t aior
0lt enor
0o 8u
0d 9e *or um diretrio

0e 9eexistir
0: 9eestiverva:io
0* 9econtertexto
0o 9e o usurio *or o dono
0r 9e o arquivo &ode ser lido
0 9e o arquivo &ode ser alterado
0x 9e o arquivo &ode ser executado

Outras alternativas
1xistem in'meros comandos no Linux, e para exp!icar todos, terEamos de pub!icar um verdadeiro !ivro. Fas

existem
)rimeirooutras possibi!idades
de tudo você pode dardeuma
aprendi$ado
o!hada nadesta !Engua,doque
manpage também
bash é usado
5comando manem todas
bash9, as disponibi!i$ar
que programações.
os comandos embutidos no interpretador de comandos. 2ma das coisas essencias para o aprendi$ado é sair
co!etando exemp!os de outros scripts e ir estudando%os minuciosamente. )rocure sempre comandos e
expressões novas em outros scripts e em manpages dos comandos. 1 por '!timo, mas não o menos
importante, praticar bastante7

;a tabe!a a seguir, você pode encontrar uma !istagem de comandos para usar em seu she!! script:

echo 6m&rime texto na tela


read ;a&tura dados do usurio e coloca numa varivel
exit <inali:a o scri&t
slee& 7 uma &ausa em seundos no scri&t
clear im&a a tela
stt> ;on5ura o terminal tem&orariamente
t&ut ltera o modo de exibi?4o
i* ;ontrole de @uxo que testa uma ou mais ex&ressAes
case ;ontrole de @uxo que testa vrias ex&ressAes ao mesmo tem&o
*or ;ontrole de @uxo que testa uma ou mais ex&ressAes
hile ;ontrole de @uxo que testa uma ou mais ex&ressAes
1 assim se3a, crie seus pr(prios scripts e &aci!ite de uma ve$ s( parte de sua vida no Linux7

Segunda parte, se aproundando mais!


<a!amos sobre o conceito da programação em he!! cript, e demos o primeiro passo para construir nossos
pr(prios scripts. 0gora vamos nos apro&undar nos comandos mais comp!icados, aprendendo a &a$er
programas ainda mais 'teis. ;estes comandos estão inc!usos o case e os !aços &or, -hi!e e unti!. 0!ém disso,
vamos &a!ar de &unções e, por '!timo, teremos um programa em she!! script.

case
O case é para contro!e de &!uxo, ta! como é o i&. Fas enquanto o i& testa expressões não exatas, o case vai
agir de acordo com os resu!tados exatos. +e3amos um exemp!o:

1 case $1 in
2 &arametro1B comando1 ) comando2 ))
 &arametro2B comando ) comando, ))
, CB echo "Doc tem de entrar com um &arFmetro vlido" ))
- Esac
0qui aconteceu o seguinte: o case !eu a varive! DG 5que é o primeiro parHmetro passado para o programa9, e
comparou com va!ores exatos. e a varive! DG &or igua! 4 “parametroGI, então o programa executar o
comandoG e o comandoJK se &or igua! 4 “parametroJI, executar o comando e o comandoM, e assim em
diante. 0 '!tima opção 5N9, é uma opção padrão do case, ou se3a, se o parHmetro passado não &or igua! a
nenhuma das outras opções anteriores, esse comando ser executado automaticamente.

+ocê pode ver que, com o case &ica muito mais &ci! criar uma espécie de “menu para o she!! script do que
com o i&. +amos demonstrar a mesma &unção anterior, mas agora usando o i&:

G1 i*  0: $1 ) then
G2 echo "Doc tem de entrar com um &arFmetro vlido"
G exit
G, eli*  $1 = "&arametro1" ) then
G- comando1
G. comando2
GH eli*  $1 = "&arametro2" ) then
GI comando
GJ comando,
1G else
11 echo "Doc tem de entrar com um &arFmetro vlido"
12 5
+e3a a di&erença.  muito mais prtico usar o case7 0 vantagem do i& é que e!e pode testar vrias expressões

que
que, onocase não pode.
exemp!o com O case
o i&, é maisum
citamos prtico, mas o não
“comando i& pode
vistosubstituE%!o
antes: o e!i&e "ainda
que éabrange mais &unções.
uma combinação ;otee
de e!se
i&. 0o invés de &echar o i& para criar outro, usamos o e!i& para testar uma expressão no mesmo comando i&.

or
O !aço &or vai substituindo uma varive! por um va!or, e vai executando os comandos pedidos. +e3a o
exemp!o:

1 *or i in C
2 do
 c& $i $i3bacKu&
, mv $i3bacKu& /usr/bacKu&
- done

)rimeiramente
parHmetro9 parao a!aço &or atribuiu
varive! o va!or
Di, depois de retorno
executou do comando
o b!oco “N 5que
de comandos. 1m éseguida
equiva!ente a um !soutro
e!e atribui semva!or
nenhum
do
comando “N para a varive! DG e reexecutou os comandos. /sso se repete até que não sobrem va!ores de
retorno do comando “N. Outro exemp!o:

1 *or oriinal in C) do
2 resultado=%echo $oriinal L
 tr '(u&&er(' '(loer('%
,
- i*  ! 0e $resultado ) then
. mv $oriinal $resultado
H 5
I done
0qui, o que ocorre é a trans&ormação de !etras mai'scu!as para min'scu!as. )ara cada arquivo que o !aço !ê,
uma varive! chamada Dresu!tado ir conter o arquivo em !etras min'scu!as. )ara trans&ormar em !etras
min'scu!as, usei o comando tr. >aso não exista um arquivo igua! e com !etras min'scu!as, o arquivo é
renomeado para o va!or da varive! Dresu!tado, de mesmo nome, mas com !etras min'scu!as.

>omo os exemp!os i!ustram, o !aço &or pode ser bem 'ti! no tratamento de m'!tip!os arquivos. +ocê pode
deix%!os todos com !etras min'scu!as ou mai'scu!as sem precisar renomear cada um manua!mente, pode
organi$ar dados, &a$er bac*up, entre outras coisas.
hile
O -hi!e testa continuamente uma expressão, até que e!a se torne &a!sa. 1xemp!o:

1 variavel="valor"
2 hile  $variavel = "valor" ) do
 comando1
, comando2
- done
O que acontece aqui é o seguinte: enquanto a “Dvariave! &or igua! a “va!or, o -hi!e &icar executando os
comandos G e J, até que a “Dvariave! não se3a mais igua! a “va!or. e no b!oco dos comandos a
“Dvariave! mudasse, o -hi!e iria parar de executar os comandos quando chegasse em done, pois agora a
expressão Dvariave! P “va!or não seria mais verdadeira.

until
@em as mesmas caracterEsticas do -hi!e, a 'nica di&erença é que e!e &a$ o contrrio. +e3a o exemp!o abaixo:

1 variavel="naovalor"
2 until  $variavel = "valor" ) do
 comando1
, comando2
- done
0o invés de executar o b!oco de comandos 5comandoG e comandoJ9 até que a expressão se torne &a!sa, o
unti! testa a expressão e executa o b!oco de comandos até que a expressão se torne verdadeira. ;o exemp!o,
o b!oco de comandos ser executado desde que a expressão Dvariave! P “va!or não se3a verdadeira. e no
b!oco de comandos a varive! &or de&inida como “va!or, o unti! pra de executar os comandos quando chega
ao done.

+e3amos um exemp!o para o unti! que, sintaticamente invertido, serve para o -hi!e também:

G1 var=1
G2 count=G
G until  $var = "G" ) do
G, comando1
G- comando2
G. i*  $count = J ) then
GH
GI 5var=G
GJ count=%ex&r $count + 1%
1G done
)rimeiro, atribuEmos 4 varive! “Dvar o va!or “GI. 0 varive! “Dcount ser uma contagem para quantas
ve$es quisermos executar o b!oco de comandos. O unti! executa os comandos G e J, enquanto a varive!
“Dvar &or igua! a “I. 1ntão usamos um i& para atribuir o va!or  para a varive! “Dvar, se a varive!
“Dcount &or igua! a R. e a varive! “Dcount não &or igua! a , soma%se G a e!a. /sso cria um !aço que
executa o comando G ve$es, porque cada ve$ que o comando do b!oco de comandos é executado, soma%se G
4 varive! “Dcount, e quando chega em R, a varive! “Dvar é igua!ada a $ero, quebrando assim o !aço unti!.

sando vários scripts em um s"


)ode%se precisar criar vrios scripts she!! que &a$em &unções di&erentes, mas, e se você precisar executar em
um script she!! um outro script externo para que este &aça a!guma &unção e não precisar reescrever todo o
c(digo=  simp!es, você s( precisa inc!uir o seguinte comando no seu script she!!:

1 3bashscri&t2
/sso executar o script she!! “bashscriptJI durante a execução do seu script she!!. ;este caso e!e ser
executado na mesma script she!! em que est sendo usado o comando. )ara uti!i$ar outra she!!, você
simp!esmente substitui o “. pe!o executve! da she!!, assim:
sh scri&t2
tcsh scri&t
;essas !inhas o scriptJ ser executado com a she!! sh, e o script com a she!! tcsh.

Dariveis es&eciais
$G Nome do scri&t que est sendo executado
$10 MarFmetros &assados  linha de comando
$J

$# NOmero de &arFmetros &assados


Dalor de retorno do Oltimo comando ou de todo o shell scri&t3 Qo comando Rexit 1S
$P retorna o valor 1B
$$ NOmero do M67 QMrocess 67B
+ocê também encontra muitas variveis, 3 prede&inidas, na pgina de manua! do bash 5comando “man
bash, seção he!! +ariab!es9.

<un?Aes
<unções são b!ocos de comandos que podem ser de&inidos para uso posterior em qua!quer parte do c(digo.
)raticamente todas as !inguagens usam &unções que a3udam a organi$ar o c(digo. +e3amos a sintaxe de uma
&unção:

1 *uncaoQB T
2 comando1
 comando2
, 333
-U
<ci! de entender, não= 0 &unção &uncionar como um simp!es comando pr(prio. +ocê executa a &unção em
qua!quer !ugar do script she!!, e os comandos G, J e outros serão executados. 0 &!exibi!idade das &unções
permite &aci!itar a vida do programador, como no exemp!o &ina!.

Exem&lo <inal
0gora vamos dar um exemp!o de um programa que uti!i$e o que aprendemos com os artigos.
G1 #!/bin/bash
G2 # Exem&lo <inal de 9cri&t 9hell
G #
G,
G- Mrinci&alQB T
G. echo "Exem&lo <inal sobre o uso de scri&ts shell"
GH echo "000000000000000000000000000000000000000000"
GI echo "8&?Aes("
GJ echo
1G echo "13 Vras*ormar nomes de arquivos"
11 echo "23 dicionar um usurio no sistema"
12 echo "3 7eletar um usurio no sistema"
1 echo ",3 <a:er bacKu& dos arquivos do /etc"
1, echo "-3 9air do exem&lo"
1- echo
1. echo 0n "Wual a o&?4o deseXadaP "
1H read o&cao
1I case $o&cao in
1J 1B Vrans*ormar ))
2G 2B dicionar ))
21 B 7eletar ))
22 ,B YacKu& ))
2 -B exit ))
2, CB "8&?4o desconhecida3" ) echo ) Mrinci&al ))
2- esac
2. U
2H
2I Vrans*ormarQB T
2J echo 0n "Mara aiOsculo ou minOsculoP /m "
G read var
1 i*  $var = "" ) then
2 echo 0n "Wue diretrioP "
 read dir
,
- *or x in %/bin/ls% $dir) do
. >=%echo $x L tr '(loer(' '(u&&er('%
H i*  ! 0e $> ) then
I mv $x $>
J 5
,G done
,1
,2 eli*  $var = "m" ) then
, echo 0n "Wue diretrioP "
,, read dir
,-
,. *or x in %/bin/ls% $dir) do
,H >=%echo $x L tr '(u&&er(' '(loer('%
,I i*  ! 0e $> ) then
,J
-G mv
5 $x $>
-1 done
-2
- 5
-, U
--
-. dicionarQB T
-H clear
-I echo 0n "Wual o nome do usurio a se adicionarP "
-J read nome
.G adduser nome
.1 Mrinci&al
.2 U
.
.,
.- 7eletarQB
clear T
.. echo 0n "Wual o nome do usurio a deletarP "
.H read nome
.I userdel nome
.J Mrinci&al
HG U
H1
H2 YacKu&QB T
H *or x in %/bin/ls% /etc) do
H, c& 0Z /etc/$x /etc/$x3bcK
H- mv /etc/$x3bcK /usr/bacKu&
H. done
HH U
HI
HJ Mrinci&al
Verceira &arte[ Xanelas ra5cas
;os dois t(picos anteriores, vimos a!gumas coisas bsicas e !(gicas de programação em she!! no Linux.
0gora para comp!etar, darei aqui dicas de como usar 3ane!as gr&icas em seus she!! scripts. /sso mesmo,
3ane!as que rodam no ambiente gr&ico, uti!i$adas &aci!mente em seu she!! script. >om esse recurso, vai ser
possEve! deixar o seu programa bem amigve!.
;ão vai ser preciso saber muita coisa de programação em she!!, pois é muito simp!es. 0través do programa
Sdia!og, você poder criar os mais variados tipos de 3ane!as para o programa: caixas de texto, se!eções,
radios, etc. O Sdia!og é uma ideia que vem do dia!og8cdia!og, um programa para conso!e que gera “3ane!as
no conso!e 5aque!as da insta!ação do !ac*-are9 usando a bib!ioteca ncurses. O Sdia!og ao invés de usar a
bib!ioteca ncurses, usa a S!ib para criar as 3ane!as no ambiente gr&ico.

)rimeiro de tudo ser necessrio você obter o Sdia!og no seu sistema. ;ão é comum o Sdia!og estar inc!uso
nas distribuições, então você ter de pegar e compi!ar o programa. Obtenha o programa no ># da Tevista ou
visite o endereço o&icia! do Sdia!og, que é http:88xdia!og.&ree.&r. 0qui eu peguei o arquivo Sdia!og%
G.M.U.tar.b$J, e agora vamos aos passos bsicos para insta!ar e!e. )rimeiro descompacte%o com o comando
bun$ipJ Sdia!og%G.M.U.tar.b$J, e !ogo em seguida tar xpv& Sdia!og%G.M.U.tar. 2m diret(rio chamado Sdia!og%
G.M.U ser criado, e entrando ne!e você estar pronto para compi!%!o e insta!%!o. )ara &a$er isso use os
comandos .8con&igure, depois ma*e e por '!timo ma*e insta!!. ;o passo do ma*e insta!!, o binrio do
Sdia!og ser co!ocado em 8usr8!oca!8bin. )ronto, agora você 3 poder uti!i$ar o Sdia!og através de qua!quer
she!! script.

1 agora vamos 4 ação7 >omo aprendemos nos artigos anteriores, em she!! script é s( co!ocar o comando
dentro do arquivo que e!e 3 vai ser executado quando o script &or executado. 1ntão s( o que temos de
aprender aqui é como usar o Sdia!og. +amos ver um primeiro exemp!o:

1 #!/bin/bash
2
 \dialo 00title "Exem&lo nOmero 1!" 00center 00stdout 00>esno ]
, "6sto  lealP" ]
- GG
.
H echo $P
>omo você p?de ver, o programa Sdia!og gerou uma 3ane!a com tEtu!o “1xemp!o n'mero G7, perguntando
“/sto é !ega!= e com opções de im e ;ão. ;ote que a V 5barra9 serve para indicar 4 she!! para continuar o
comando da !inha seguinte, então estas três !inhas são que nem uma s(. >omo '!timo comando do exemp!o
dado, temos o echo D=, que eu co!oquei apenas para indicar qua! &oi o retorno da pergunta. >aso o usurio
apertou em im, o retorno vai ser , e se apertou em ;ão, vai ser G. )odemos usar este retorno para contro!ar
o que o usurio esco!her. +e3amos um exemp!o:

1
2 \dialo 00title "Exem&lo
"Neste exem&lo[ vamosnOmero 2!"voc
ver o que 00center
quer00stdout 00>esno
*a:er3 Doc ]
deseXa continuar com o &roramaP" ]
 GG
,
- i*  $P = "G" ) then
. echo "Wue bom! Doc continuou o &rorama! Marabns!"
H eli*  $P = "1" ) then
I echo "Doc saiu do &rorama333"
J 5
+iu como &unciona= 0gora vamos ver outros recursos que o Sdia!og pode o&erecer. 1u vou dar vrios
exemp!os aqui e sair comentando cada opção. +ocê precisar praticar bastante e conhecer as vrias opções.
)rimeiro vamos gerar uma simp!es mensagem pro usurio ver:

1 \dialo 00title "viso" 00center 00stdout 00msbox ]


2 "Este &rorama  a&enas um exem&lo &ara voc ver como o \dialo ]
 ]n*unciona3 &ro&sito[ se voc &raticar bastante &ode criar ]
, ]n&rora mas incr^veis e *acilmente[ que daria muito mais ]
- ]ntrabalho *a:endo em outras linuaens3" ]
. GG
O usurio aperta O* e o she!! script continua norma!mente. ;o primeiro exemp!o eu usei a opção "Wesno
que gerava o sim e não. 0gora usei o "msgbox. Fas e se você quiser que o usurio digite a!go e isto se3a
gravado em um arquivo por exemp!o= +amos ver este exemp!o:
1 \dialo 00title "Wue nime que voc mais ostaP" 00center 00in&utbox ]
2 "9e voc sabe o que  nime[ e osta[ qual o seu &re*eridoP]n ]
 9ua res&osta ser ravada no arquivo res&osta3" ]
, G G 2 _ res&osta
#epois que o usurio preenche o campo e d O*, a resposta que este usurio digitou ser gravada no arquvio
resposta. /sto ocorreu pe!o &ato de eu ter co!ocado o direcionador JX para o arquivo resposta. e eu co!ocasse
a opção "stdout na !inha de comando do Sdia!og, a resposta do usurio apareceria na te!a. @ente você.

+amos ver agora se!eção de itens, que é uma das coisas mais importantes num programa. #esta ve$
usaremos a opção "menubox para gerar um menu com os itens a serem se!ecionados. Fais uma ve$, vamos
ao exemp!o:
1 \dialo 00title "Exem&lo de enu" 00center 00stdout 00menubox ]
2 "Wual sua distribui?4o inux *avoritaP" ]
 2G -G G ]
, 1 "9lacKare" ]
- 2 "7ebian" ]
.  "Zed `at" ]
H , ";onectiva inux" ]
I - "Eu tenho minha &r&ria distribui?4o"
+iu como é &ci!= O que o usurio esco!her vai aparecer como resu!tado no conso!e 5por causa da opção "
stdout9. e eu co!ocasse o redirecionador JX, poderia ir para um arquivo como no exemp!o anterior. +amos
esc!arecer uma coisa aqui tambémY #epois do texto “Qua! sua distribuição Linux &avorita= , h J
n'meros. 1stes
co!oquei “ doisaEn'meros
I pois correspondem
o Sdia!og 4 a!tura e comprimento
dimensiona automaticamente da 3ane!a.
o tamanho ;os 1ntão
da 3ane!a. exemp!os anteriores
3 sabe, eu
se quiser
mudar o tamanho da 3ane!a, é s( mudar estes dois n'meros.

0gora como '!timo exemp!o, vamos criar uma 3ane!a em que o usurio poder esco!her uma ou mais
opções. /sto é chamado de chec*!ist, e pode ser visto no exemp!o a seguir:

1 \dialo 00title "ltimo exem&lo 0 checKlist" 00center 00checKlist ]


2 ";omo se &ronuncia inuxP" ]
 GGG]
, "8&?4o 1" "inucs" o ]
- "8&?4o 2" "enocs" o ]
. "8&?4o " "inOcs" o ]
H "8&?o ," "^nucs" on ]
I "8&?4o -" "N/inux" o
+e3a agora a di&erença entre esta chec*!ist e o menu do exemp!o anterior. +eri&ique que depois de cada opção
h o on e o o&&. O on indica que esta opção dever 3 estar marcada, e o o&& que não dever estar marcada. e
o usurio esco!her  opções, as mesmas serão o resu!tado.

Cem &ci! criar uma inter&ace amigve! para suas she!! scripts. e você pensa que isto é tudo, ainda tem
muito mais por trs do Sdia!og. )ara não ter que &icar comentando cada opção, vou dar uma !ista de
parHmetros e a descrição de suas &unções. O que você dever &a$er é sair testando todas as opções e se
impressionar :9

>esno ma Xanela com o&?Aes de R9imf ou RN4of

msbox &enas mostra um texto in*ormativo


esmo que msbox[ s que desa&arece automaticamente em um determinado
in*obox tem&o
in&utbox 8 usurio &reenche um cam&o
ranebox Escolhe um nOmero entre \ e g[ com uma barra de rolaem
textbox ostra o conteOdo de um arquivo numa caixa de texto
editbox Edita o conteOdo de um arquivo numa caixa de texto
menubox ;ria um enu de o&?Aes[ onde se seleciona um item
checKlist esmo que menubox[ s que &ode0se sel ecionar vrios itens

radiolist esmo que menubox[ mas aora em outro estilo


treevie 8&?Aes orani:adas em *orma de Rrvoref QinteressanteB
aue m indicador de &rocesso
tailbox ostra o conteOdo de um arquivo
*select bre uma Xanela de sele?4o de um arquivo
dselect bre uma Xanela de sele?4o de um diretrio
calendar ostra um calendrio &ara escolher uma data

timebox ostra uma Xanela &ara edi?4o de horrio


+ocê também pode encontrar a!guns exemp!os no diret(rio samp!es que vem 3unto com o c(digo%&onte do
programa. e você &i$er a!gum programa !ega! em she!! script, sinta%se a vontade para me mandar um e%mai!.
Outra coisa, como o Sdia!og é uma idéia tirada do dia!og8cdia!og 5existe também o -hiptai! que é parecido9,
você pode usar a mesma sintaxe para criar estas “3ane!as no modo conso!e. 1spero que estas in&ormações
&oram 'teis a você e até a pr(xima :9

Potrebbero piacerti anche