Não tenho certeza de que tipo de citações usar em um script bash

1

Estou trabalhando em um script. Eu estou tendo que chamar um programa que tenha um diretório de entrada.

O programa se parece com isso se for executado a partir da linha de comando

/path/to/program -c /path/to/config -d "path/to/directory"

Estou usando uma variável para o caminho do diretório. "${name}" o problema que estou tendo é o programa está esperando aspas duplas para o caminho do diretório. Eu tenho que usar as aspas duplas na minha variável para cobrir espaços, etc.

find $SRC -type d -name '*' | while read name;
do
   $program -c $pgm_config -d "${name}";
done

O script está funcionando. O programa está pegando o diretório, mas parece estar pegando todo o resto da pasta também. Ficheiros únicos, etc. Tenho a certeza que isto é realmente errado ou estou a perder algo simples. Eu tentei algumas maneiras diferentes para ver se eu poderia descobrir isso com tentativa e erro. ""${name}"" '"${name}"' sem sorte

    
por J4204144 17.05.2014 / 18:31

1 resposta

2

você tem que usar o caractere de escape ou \ quando quiser usar símbolos que são considerados parte da sintaxe.

find $SRC -type d -name \* | while read name;
    do
        $program -c $pgm_config -d \"${name}\";
    done

lembre-se de que isso exibirá diretórios ocultos, bem como aqueles cujo nome começa com . .

    
por 17.05.2014 / 18:52