No estoy seguro de qué tipo de citas usar en un script bash

1

Estoy trabajando en un guion. Estoy haciendo que llame a un programa que tiene un directorio de entrada.

El programa se ve así si se ejecuta desde la línea de comandos

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

Estoy usando una variable para la ruta del directorio. "${name}"El problema que tengo es que el programa espera comillas dobles para la ruta del directorio. Tengo que usar las comillas dobles en mi variable para cubrir espacios, etc.

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

El guión está funcionando. El programa está recogiendo el directorio pero parece estar recogiendo todo lo demás en la carpeta también. Archivos individuales, etc. Estoy seguro de que esto está realmente mal o me falta algo simple. He intentado un par de formas diferentes para ver si podría resolverlo con prueba y error. ""${name}"" '"${name}"'sin suerte

J4204144
fuente
¿Qué hay de \""$name"\"?
choroba

Respuestas:

2

debe usar caracteres de escape o \esto cuando desee usar símbolos que se consideran parte de la sintaxis.

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

recuerde que esto se verá como directorios ocultos, así como aquellos cuyo nombre comienza con a ..

Barracuda
fuente
Está cerca, solo indica la primera palabra del directorio
J4204144
¿Qué quieres decir con la primera palabra del directorio?
Barracuda
Error de usuario. Lo tengo funcionando. Gracias por la ayuda.
J4204144