In article <b6f152db0909250435i2175beacna02240bd646cf...@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.


-- 
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a