Problema para escrita de um arquivo [RESOLVIDO]

1. Problema para escrita de um arquivo [RESOLVIDO]

TzTKAL
rodrigoepfonseca

(usa Linux Mint)

Enviado em 02/04/2018 - 11:47h

Bom dia !
Estou montando um Script que cria um arquivo .properties e depois grava um conteúdo dentro dele, porém não está gravando já verifiquei permissões etc.. e está tudo, ok acho que deve ter algum erro no meu código:

#!/bin/sh

## entrada do nome da base
echo "Digite o nome da BASE sem o SQLSERVER-"
read entrada #leitura do nome da base

# cria o arquivo
>/caminho/sqlserver-$entrada.properties
cd /caminho/
chmod 750 sqlserver-$entrada.properties
## escreve.
echo "connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada^^}
connection-user=0
connection-password=0">> /caminho/sqlserver-$entrada.properties

echo "Script Finalizado com sucesso"


  


2. Re: Problema para escrita de um arquivo

Slackjeff
slackjeff

(usa Slackware)

Enviado em 02/04/2018 - 12:27h

Para espaços em váriaveis, funções ou em qualquer coisa que envolva espaço use sempre underline _, nunca -
exemplo:
connection_user=0 


Troque todas e teste.


THE MAGIC SHELL PROGRAMMER.

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
http://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha

Meu PODCAST:
http://podcast.slackjeff.com.br/







3. Re: Problema para escrita de um arquivo [RESOLVIDO]

Jorge Pereira
jeppbr

(usa Fedora)

Enviado em 02/04/2018 - 12:55h

fala meu querido espero ajudar.
bom acredito que deva ser erro nos comandos do seu script, caso não seja, pode ser sistema de permissão. fiz uns testes aqui e salvou no arquivo, lembrando que fiz para meu home de usuário.

arquivo do codigo

#!/bin/bash

echo "Digite o nome da base de dados"
read entrada

touch ~/sqlserver-$entrada.properties

chmod 777 ~/sqlserver-$entrada.properties

echo -e "connector.name=sqlserver \nconnection-url=jdbc:sqlserver://sqldptprod;databaseName=$entrada \nconnection-user=0 \nconnection-password=0" >> ~/sqlserver-$entrada.properties

echo "finalizado com sucesso"


arquivo de saida

connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=multilaser
connection-user=0
connection-password=0





4. Re: Problema para escrita de um arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/04/2018 - 13:16h

jeppbr escreveu:
fala meu querido espero ajudar.
bom acredito que deva ser erro nos comandos do seu script,


aqui o código dele funcionou de boa ... só troquei 'sh' por 'bash'.

#!/bin/bash

## entrada do nome da base
echo "Digite o nome da BASE sem o SQLSERVER-"
read entrada #leitura do nome da base

## escreve.
echo "connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada^^}
connection-user=0
connection-password=0" >> /sqlserver-$entrada.properties

chmod 750 /sqlserver-$entrada.properties

echo "Script Finalizado com sucesso"


root@phantom /home/mauricio # ./cal.sh 
Digite o nome da BASE sem o SQLSERVER-
maumau
Script Finalizado com sucesso
connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=MAUMAU
connection-user=0
connection-password=0
root@phantom /home/mauricio #


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Resposta

TzTKAL
rodrigoepfonseca

(usa Linux Mint)

Enviado em 02/04/2018 - 13:37h

slackjeff escreveu:

Para espaços em váriaveis, funções ou em qualquer coisa que envolva espaço use sempre underline _, nunca -
exemplo:
connection_user=0 


Troque todas e teste.


THE MAGIC SHELL PROGRAMMER.

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
http://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha

Meu PODCAST:
http://podcast.slackjeff.com.br/






Olá, infelizmente para gerar esse arquivo preciso que seja gerado desse modo .
quando executo o scritp ele retorna "bad substitution"




6. Resposta

TzTKAL
rodrigoepfonseca

(usa Linux Mint)

Enviado em 02/04/2018 - 13:39h

Mauriciodez escreveu:

jeppbr escreveu:
fala meu querido espero ajudar.
bom acredito que deva ser erro nos comandos do seu script,


aqui o código dele funcionou de boa ... só troquei 'sh' por 'bash'.

#!/bin/bash

## entrada do nome da base
echo "Digite o nome da BASE sem o SQLSERVER-"
read entrada #leitura do nome da base

## escreve.
echo "connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada^^}
connection-user=0
connection-password=0" >> /sqlserver-$entrada.properties

chmod 750 /sqlserver-$entrada.properties

echo "Script Finalizado com sucesso"


root@phantom /home/mauricio # ./cal.sh 
Digite o nome da BASE sem o SQLSERVER-
maumau
Script Finalizado com sucesso
connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=MAUMAU
connection-user=0
connection-password=0
root@phantom /home/mauricio #


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


Olá, também tentei fazendo essa troca e mesmo assim quando executo via bash -vx quando chega na parte de escrita ele informa "bad substitution"



7. Re: Problema para escrita de um arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/04/2018 - 13:45h

rodrigoepfonseca escreveu:
Olá, também tentei fazendo essa troca e mesmo assim quando executo via bash -vx quando chega na parte de escrita ele informa "bad substitution"


velho ... esse script que vc postou é o script que vc está executando mesmo ou é só um modelo ?

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



8. Resposta

TzTKAL
rodrigoepfonseca

(usa Linux Mint)

Enviado em 02/04/2018 - 13:47h

Foi resolvido colocando um % na variável "connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada%^^}" .
Obrigado pela boa vontade pessoal :)


9. Re: Problema para escrita de um arquivo [RESOLVIDO]

TzTKAL
rodrigoepfonseca

(usa Linux Mint)

Enviado em 02/04/2018 - 13:48h

Mauriciodez escreveu:

rodrigoepfonseca escreveu:
Olá, também tentei fazendo essa troca e mesmo assim quando executo via bash -vx quando chega na parte de escrita ele informa "bad substitution"


velho ... esse script que vc postou é o script que vc está executando mesmo ou é só um modelo ?

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------

Sim é o mesmo só muda o caminho e corrigir para 777 a permissão e adicionei um % na variável "connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada%^^}" . Muito obrigado !



10. Re: Problema para escrita de um arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/04/2018 - 13:56h

rodrigoepfonseca escreveu:
Sim é o mesmo só muda o caminho e corrigir para 777 a permissão e adicionei um % na variável "connection-url=jdbc:sqlserver://sqldptprod;databaseName=${entrada%^^}" . Muito obrigado !


taí ... realmente a variável no 'echo' que tava embaçando .. pra q q vc colocou ${entrada^^} ????

aí ... da uma limpada no seu código
#!/bin/sh

## entrada do nome da base
echo "Digite o nome da BASE sem o SQLSERVER-"
read entrada #leitura do nome da base

## escreve.
echo "connector.name=sqlserver
connection-url=jdbc:sqlserver://sqldptprod;databaseName=$entrada
connection-user=0
connection-password=0" >> /caminho/sqlserver-$entrada.properties

chmod 750 /caminho/sqlserver-$entrada.properties

echo "Script Finalizado com sucesso"


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



11. Re: Problema para escrita de um arquivo [RESOLVIDO]

Slackjeff
slackjeff

(usa Slackware)

Enviado em 02/04/2018 - 16:43h

Mauricio, ${entrada%^^} é uma expansão de string, no caso desta expansão ele corta '^^' no final da string


THE MAGIC SHELL PROGRAMMER.

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
http://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha

Meu PODCAST:
http://podcast.slackjeff.com.br/







12. Re: Problema para escrita de um arquivo [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 02/04/2018 - 16:55h

slackjeff escreveu:
Mauricio, ${entrada%^^} é uma expansão de string, no caso desta expansão ele corta '^^' no final da string


tendi não ... corta o q no final da string ... de onde sairia esses '^^' para serem cortados ??

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts