2012-04-13 5 views
7

Nel mio script, sto mantenendo la posizione (percorso) di un file come variabile.Memorizzare directory come variabile per un utilizzo futuro nello script linux

Per esempio, fileA

Un esempio del suo contenuto sono

fileA =/usr/anotherfolder/somefold/"filenamehere"

Tuttavia, quando chiamo un comando sul file nel lo script come ad esempio:

cat $ fileA

o

cat "$ fileA"

Viene visualizzato un errore che indica che il file o la directory non esiste. Se echo $ fileA per vedere qual è l'output, quindi eseguo un gatto manualmente dal terminale, funziona bene, non so cosa sta andando male. Qualsiasi aiuto?

Alcune informazioni di debug:

  • fileA = '/ home/jacob/Desktop/CS35L/LAVORO/2/hw/test3/"nuovo"'
  • echo '/ home/jacob/Desktop/CS35L/WORK/2/hw/test3/"new" ' /home/jacob/Desktop/CS35L/WORK/2/hw/test3/"new"
  • ' [''! ' -r '/ home/jacob/Desktop/CS35L/LAVORO/2/hw/test3/"nuovo"' ']'

Per queste linee particolari

Verificare la presenza di file leggibile

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

try 'cat" $ fileA "'. In bocca al lupo. – shellter

+0

hanno provato questo, ma non ha modificato il risultato – jsjwooowooo

+0

'$ fileA' contiene caratteri speciali? – kev

risposta

10

Se il nome del file è new (non "new"), quindi modificare

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

a

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

Non credo sto aggiungendo quelle virgolette singole, qualche idea di come ci sono arrivati? Essi non appaiono nell'output eco? Ho pensato che fosse solo la sintassi dell'output di debug – jsjwooowooo

+0

@jsjwooowooo Non capisco le tue informazioni di debug. – kev

+0

Ho appena eseguito lo script con un comando -xv e questo è l'output – jsjwooowooo

Problemi correlati