Bash: mescla o nome da pasta da variável com o nome do arquivo

6

Primeiro eu escrevo um arquivo de configuração com todos os meus parâmetros como este

path="/home/test/"

Eu nomeio test.conf .

Em seguida, escrevo um script de shell com este conteúdo, nomeio-o como test e o execuo com chmod +x .

#!/bin/bash
#read the config file
. /home/test/test.conf

#cat the file /home/test/test
cat '$path'test #This line is the problem

Eu recebo esta saída

./test/test: line 3: /home/test/: Is a directory
cat: test: No such file or directory

O que eu gostaria é que ele me mostre o conteúdo do arquivo /home/test/test .

Como escrevo este script corretamente, para que ele não crie uma nova linha após o caminho do arquivo?

    
por persec 12.01.2012 / 10:27

1 resposta

13

'' e $() é usado para execução de comando, não para substituí-lo por conteúdo variável. Então o bash tenta executar um significado variável em '' e retorna o erro de que é um diretório.

Basta escrever cat ${path}test e funcionará da maneira que você quiser.

Para mais informações, leia sobre as variáveis bash e command substitution .

    
por 12.01.2012 / 10:35