Cadeia de caracteres do Shell Concat do arquivo de configuração

0

Eu criei o config.cfg como este

DB_USERNAME='abcdef'
DB_PASSWORD='1234'

Então meu shell.sh leu config e tentou concatuar string

#! /bin/sh
source config.cfg
DB_CONN="${DB_USERNAME}/${DB_PASSWORD}"
echo $DB_CONN

deve ser abcdef/1234 , mas retorna como /1234f , o que parece ter /1234 substituindo abcdef .

Onde cometi o erro?

    
por ipoppo 23.02.2015 / 13:32

1 resposta

4

Duas falhas

  1. Não existe tal comando como source in /bin/sh . Talvez você quisesse escrever #!/bin/bash na primeira linha ou usar . ./config.cfg ?
  2. O script está falhando porque você criou / editou o arquivo config.cfg em um sistema Windows e copiou o arquivo (no modo binário) para o sistema Unix / Linux.

Você pode substituir as terminações de linha CR / LF pelas extremidades LF corretas executando dos2unix config.cfg ou editando o arquivo em seu editor favorito baseado em Unix / Linux e removendo os caracteres ^ M você ' Veremos no final de cada linha.

    
por 23.02.2015 / 13:44

Tags