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


¿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 ..


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.