2016-05-18 3 views
-2

Ich versuche, das Vorhandensein der Datei mit folgendem Befehl zu überprüfen, aber es ist diesen Syntaxfehler zu werfen, kann mir bitte jemand helfen, was ichRubin File.exist Syntaxfehler

system("File.exist?(/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh)") 

Fehler

bin fehle
sh: -c: line 0: syntax error near unexpected token `/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh' 
sh: -c: line 0: `File.exist?(/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh)' 
+2

Was ist das 'System (" "), das um Ihren Ausdruck tun soll? Sie senden diese Zeichenfolge an die Shell, aber sie soll als Ruby-Code ausgeführt werden, nicht? – CherryDT

+0

Und Sie fehlen die Zitate. 'File.exist? ("/Library/...... ")' – CherryDT

+0

neuer Befehl '' 'system (" File.exist? (\ "/ Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh \ ")") '' 'new error' '' sh: -c: Zeile 0: Syntaxfehler in der Nähe des unerwarteten Tokens '" /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh " ' sh: -c: Zeile 0: 'File.exist? ("/Bibliothek/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh ")'' '' –

Antwort

1

wenn Sie schauen, einfach um zu sehen, ob eine Datei vorhanden:

file = "/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh" 
File.exist?(file) 

Vermutlich Sie etwas wi tun wollen th diese Datei anders als Test, dass es existiert, wie es laufen:

if (File.exist?(file)) 
    system(file) 
end 
+0

danke, jetzt habe ich meinen Fehler. Das behebt mein Problem –

+0

Die Klammern um 'File.exist? (Datei)' sehen ein bisschen seltsam aus. – Stefan

+0

@Stefan Sie sind optional, aber erlaubt. JavaScript, C++ und viele andere erfordern sie, also tendiere ich dazu, diese zu platzieren, um Mehrdeutigkeiten zu vermeiden. – tadman