2012-04-13 8 views
7

En mi script, estoy manteniendo la ubicación (ruta) de un archivo como una variable.Almacenando el directorio como una variable para su uso posterior en el script de linux

Por ejemplo, archivoA

Un ejemplo de su contenido son

archivoA =/usr/anotherfolder/somefold/"filenamehere"

Sin embargo, cuando llamo un comando en el archivo de la la escritura, tales como:

gato $ archivoA

o

cat "$ fileA"

Me sale un error diciendo que el archivo o el directorio no existe. Si echo $ fileA para ver cuál es la salida, y luego ejecuto un gato manualmente desde la terminal, funciona bien, no sé qué está pasando mal. ¿Alguna ayuda?

alguna información de depuración:

  • archivoA = '/ home/jacob/Escritorio/CS35L/TRABAJO/2/hw/test3/"nueva"'
  • echo '/ home/jacob/Escritorio/CS35L/WORK/2/hw/test3/"nuevo" ' /home/jacob/Desktop/CS35L/WORK/2/hw/test3/"nuevo"
  • ' [''! ' -r '/ home/jacob/Escritorio/CS35L/TRABAJO/2/hw/test3/"nueva"' ']'

Para estas líneas particulares

Compruebe si hay archivos legibles

echo $fileA 
if [ ! -r "$fileA" ] 
then 
    o=`expr $o + 1` 
    echo "$fileA not readable." 
    continue  
fi 
+0

try 'cat" $ fileA "'. Buena suerte. – shellter

+0

ha intentado esto, pero no ha cambiado el resultado – jsjwooowooo

+0

¿'$ fileA' contiene caracteres especiales? – kev

Respuesta

10

Si el nombre del archivo es new (no "new"), a continuación, cambiar

fileA='/home/jacob/Desktop/CS35L/WORK/2/hw/test3/"new"' 

a

fileA=/home/jacob/Desktop/CS35L/WORK/2/hw/test3/new 
+0

no creo que estoy añadiendo esas comillas simples, alguna idea de cómo llegaron allí? Ellos no aparecen en la salida de eco? Pensé que solo era una sintaxis de salida de depuración. – jsjwooowooo

+0

@jsjwooowooo No entiendo tu información de depuración – kev

+0

Acabo de ejecutar el guión con un comando -xv y eso es lo que se superó – jsjwooowooo

Cuestiones relacionadas