Vc só precisa colocar as aspas, via de regra, se vc tem espaços em
branco dentro da sua variavel que é interessante vc proteger.

CMD=echo
MSG="oi tudo bom como vai vc"
$CMD $MSG
"$CMD" "$MSG"

resultam na mesma coisa. entretanto se a variavel MSG contivesse algo como

oi            tudo              bem

apenas a segunda forma funcionaria. entretanto para a variavel CMD é
irrelevante.

Agora se vc precisa passar um argumento em branco ou tem uma variavel
que pode estar em branco PODE ser interessante protege-la entre aspas.
saca so:

$ teste() { echo $# ; }
$ teste 1 2 3
3
$ teste $DFSFDSF  # variavel sem valor
0
$ teste "$DFSFDSF"
1

aqui existe um argumento vazio. tudo depende de como dentro do seu
script a variavel é interpretada e como os espaços em branco (tabs
também) interferem nisso.

On 7/25/06, André Unno <[EMAIL PROTECTED]> wrote:
> Bom dia pessoal.
> Gostaria de tirar uma dúvida.
> Eu acabei de elaborar um script para fazer backup do MySQL e logo em seguida
> compactar esse arquivo.
>
> Segue abaixo o script.
>
> #!/bin/bash
>
> # Definindo as variaveis
> BKP_MYSQL=/backup/bkp_mysql/mysql
> DATA=`date +%d%m%y`
> DATABASE=xxx
> DIA=`date +%a`
> FILE_BKP=mysql.sql
> MYSQL_PASSWD=yyy
> MYSQL_USER=root
> MYSQLDUMP=/usr/local/mysql/bin/mysqldump
> RM="/bin/rm -rf"
> TAR="/bin/tar -cvzf"
>
> # Acessando a pasta onde os backups serao armazenados
> cd "$BKP_MYSQL"/"$DIA"
>
> # Realizando o backup da base de dados
> "$MYSQLDUMP" -u "$MYSQL_USER" --password="$MYSQL_PASSWD" --databases
> "$DATABASE" > "$FILE_BKP"
>
> # Compactando o backup da base de dados
> if $TAR $DATABASE.$DATA.tar $FILE_BKP
> then
>         $RM $FILE_BKP
> fi
>
> A minha dúvida é a seguinte. No final do script tem o comando para compactar
> o arquivo de backup do MySQL e caso a compactação seja executada com sucesso
> o arquivo original será deletado.
>
> As variáveis que estou utilizando nesta parte estavam entre aspas ("). Eu
> precisei tirar as aspas para que o comando tar e rm funcionassem.
>
> Alguém saberia me dizer por quê com aspas eles não funcionaram? Até onde eu
> sei é aconselhável utilizar aspas para proteger a variável da interpretação
> do bash.
>
> --
> André Unno
> GNU/LinuxCounter#390708
> http://counter.li.org
>
> O sistema pediu: "Requires Windows 9x, Windows 2000 or better".
> Então eu instalei Linux.
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>
>
>
>
>
>


-- 
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a