Fala Marcus, o problema dos canivetes suíços, é a falta do contexto para vc entender. O que o Aurélio escreveu está perfeito. Experimente testar o código abaixo que vc entenderá:
*read -p "Informe Login Name: ($LOGNAME) " LogN LogN={LogN:-$LOGNAME) echo $LogN* O trecho acima, pede o login de uma máquina remota e oferece como padrão (default) o valor entre parênteses, que é o conteúdo da variável $LOGNAME, que é o seu login na máquina local e, por isso, tem grande chance de tb o ser na maq. remota. Se vc aceitou o default, isto é, deu somente um <ENTER>, $LogN receberá o conteúdo de $LOGNAME. Se vc teclar qq login, $LogN manterá o valor teclado. Para saber se $var tem valor vc deve fazer: 1 - *if [ "$var" ] then echo Tem valor else echo ñ tem fi* 2 - *if [ -z "$var" ] then echo **ñ tem** else echo **Tem valor** fi* 3- *if [ ${var:-x} = x ] then** echo **ñ tem** else echo **Tem valor**** fi* Um link sobre substituição de parâmetros<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo009#Expans_o_de_par_metros>e outro sobre cmds condicionais, que começa aqui<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#Comandos_Condicionais>e termina aqui <http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004>. Vale a pena perder 30 minutos, aprender um monte de coisas e entender isso legal. Está tudo em português e cheio de exemplos (é a série Papo de Botequim que foi publicada a partir do primeiro fascículo da Linux Magazine). -- Abraços, Julio *Cursos de Shell e Zenity? - Em SP ligue (11) 2125-4747; - Em DF ligue (61) 3223-3000; - No RJ darei um treinamento em 23/06 (p/ detalhes ligue (21) 2561-0867); - Turmas fechadas em outras cidades ligue (21) 8112-9988 * 2009/5/20 Marcus Gmail <marcus.jab...@gmail.com> > > > Boa Tarde! > > Queria fazer um teste para saber se uma variavel contem valor ou nao. > Caso nao contenha o programa encerra e manda uma mensagem para a tela. > Encontrei no aurelio.net algo que, em tese, sanaria meu problema. Segue > a explicacao. > 1 - Olha que o diz no site do aurelio.net (canivete de bolso) > | > ${var:=texto}| --> Se var não está definida, retorna o erro 'texto' > > O teste que eu fiz > > cat lala.sh > #!/bin/bash > #teste > crmail=$1 > crsenha=$2 > crquota=$3 > ${crmail:?teste} > > #./lala.sh > ./lala.sh: line 5: crmail: teste > > #./lala.sh 1 2 3 > ./lala.sh: line 5: 1: command not found > > Alguem sabe como testar o conteudo da variavel, algo como o [ -f ] do > arquivo. > > Abs, fique com Deus! > > > [As partes desta mensagem que não continham texto foram removidas]