[Ubuntu-BR] Não executa script na inicialização do sistema.
Daniel Bastos
dbastos+0 em toledo.com
Sábado Setembro 26 01:50:17 UTC 2009
In article <b6f152db0909250435i2175beacna02240bd646cf4ef em mail.gmail.com>,
Petter Rafael Villa Real wrote:
> Desculpe o lapso de não enviar o arquivo, mas ele é somente isso que
> está abaixo:
>
> #!/bin/bash
> sudo mount -t cifs //servidor/pasta /media/pasta -o
> username=lwserver/user,password=pass,iocharset=utf8,rw
>
> Como eu disse antes, no terminal vai legal, mas na inicialização não
> roda.
Se seu programa é exatamente este acima, então se eu fosse o seu
shell, ao ver este programa, eu faria o seguinte: eu executaria a
primeira linha
sudo mount ...
e aguardaria ela encerrar. Depois, eu executaria a segunda
username= ...
e aguardaria ela encerrar. E só. E nem acusaria qualquer erro porque
ambas linhas são válidas; exceto que a primeira será inválida sob os
olhos do mount já que -o requer um argumento.
Em outras palavras: acima está apresentado um programa escrito em duas
linhas; o shell as interpreta como dois comandos; o primeiro causa o
mount a protestar sobre o -o sem argumento; o segundo não gera
qualquer erro.
Se você deseja que as duas linhas ambas sejam parte de um mesmo
comando, você precisa informar ao shell. Faz-se isso efetuando uma
proteção ao caracter que representa a quebra de linha; usualmente o
simbolizamos por \n. A forma usual de protegê-lo é usando o operador \.
Exemplo.
ls \
-B | head -1
Certifique-se, entretanto, de que a quebra de linha venha logo após o
\. De outra forma você estaria protegendo o caracter que vem antes da
quebra de linha. Por exemplo, se você der um espaço e depois inserir a
quebra de linha, a proteção é feita ao espaço e a quebra de linha fica
desprotegida.
Agora, não é qualquer proteção à quebra de linha que atinge esse
objetivo. Por exemplo, o script ...
ls '
' -B | head -1
... protege a quebra de linha entre aspas. Entretanto, o que o shell
faz neste caso é passar o argumento ' \n' para o ls.
Ou seja, o \ seguido de \n é um caso especial para o shell: ao invés
de usar o caracter protegido como parte do comando, o shell define que
você deseja apenas concatenar a linha atual com a próxima, e logo
igora o \n. Há outras formas de proteger o \n, mas nenhuma delas toma
o efeito de \, neste contexto.
More information about the ubuntu-br
mailing list