2012-04-13 16 views
7

In meinem Skript halte ich den Speicherort (Pfad) einer Datei als Variable.Speichern von Verzeichnis als Variable für die spätere Verwendung in Linux-Skript

Zum Beispiel dateiA

Ein Beispiel seines Inhalts sind

dateiA =/usr/anotherfolder/somefold/"filenamehere"

jedoch, wenn ich rufe einen Befehl auf die Datei in der Skript wie:

cat $ dateiA

oder

cat "$ fileA"

Ich bekomme eine Fehlermeldung, dass die Datei oder das Verzeichnis nicht existiert. Wenn ich $ fileA echo, um zu sehen, was die Ausgabe ist, und dann eine Katze manuell aus dem Terminal ausführen, funktioniert es gut, weiß nicht, was schief läuft. Irgendeine Hilfe?

Einige Debug-Informationen:

  • dateiA = '/ home/jacob/Desktop/CS35L/ARBEIT/2/hw/test3/"neuen"'
  • echo ‚/ home/jacob/Desktop/CS35L/WORK/2/hw/test3/"neu" ' /home/jacob/Desktop/CS35L/WORK/2/hw/test3/"neu"
  • ' [''! ' -r '/ home/jacob/Desktop/CS35L/ARBEIT/2/hw/test3/"neuen"' ']'

Für diese besonderen Linien

prüfen lesbare Datei

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

versuchen Sie 'cat" $ fileA "'. Viel Glück. – shellter

+0

haben dies versucht, aber es hat das Ergebnis nicht geändert – jsjwooowooo

+0

Enthält '$ fileA' Sonderzeichen? – kev

Antwort

10

Wenn Dateinamen new (nicht "new") ist, ändern Sie dann

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

zu

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

glaube ich nicht, dass ich diese einfachen Anführungszeichen bin hinzufügen, eine Ahnung, wie sie dorthin gekommen? Sie zeigen nicht in der Echo Ausgang auf? Ich dachte, das war nur Debug-Ausgabe-Syntax. – jsjwooowooo

+0

@jsjwooowooo Ich verstehe nicht Ihre Debug-Informationen. – kev

+0

Ich habe nur das Skript mit einem -xv-Befehl ausgeführt und das ist, was ausgegeben wurde – jsjwooowooo

Verwandte Themen