2015-01-07 3 views
5

Für die Existenz einer Datei in csh-Skript überprüft Ich bin mitWie überprüft man die Existenz einer Datei im Csh-Skript?

if [ -f /var/opt/temip/conf/.temip_config ] 

aber ich bin unten Fehler immer

if [ -f /var/opt/temip/conf/.temip_config ] 

if: Expression Syntax. 

jemand kann mir sagen, wie dies zu tun?

+0

Das ist keine gültige Csh-Syntax überhaupt. Was ist eine gute Sache, weil Sie wahrscheinlich nicht Ihre Skripting in Csh tun sollten. Ihre Syntax ist gut für 'sh', das ist wahrscheinlich, was Sie sowieso verwenden sollten. Ohne den Kontext des Rests Ihres Skripts können wir nicht wirklich sagen, ob es möglich wäre, die erste Zeile in '#!/Bin/sh' zu ändern. – tripleee

+0

@triplee können Sie mir einfach sagen, wie Datei Existenz in Csh-Skript zu überprüfen? – dcds

+2

Nein, ich benutze Csh nicht und möchte es nicht lernen, und Sie sollten es auch nicht. Die kanonische Referenz ist http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot, aber Sie können viel mehr in Google finden. – tripleee

Antwort

4

Von the manpage:

f 
    Plain file 

Sie verwenden es mit einer if Aussage:

if (-f file.txt) then 
    echo Exists 
else 
    echo No such file 
endif 

Auf der Grundlage dieser Frage and your previous question, Sie scheinen da Sie eher ratlos, wie csh Syntax funktioniert, verwende weiterhin die POSIX-Shell-Syntax. Ich würde stark vorschlagen, dass Sie sich entweder mit der csh Syntax vertraut machen, oder verwenden Sie einfach eine POSIX-Shell (die wahrscheinlich sowieso besser für Skripting ist).

+0

Die letzte Zeile sollte "endif" sein, nicht "end". –

+0

Ja, wenn Sie posix über csh verwenden. – kdubs

3

In CShell zur Überprüfung der Existenz einer Datei verwenden -e Option

Der Name der Datei nicht „hart codiert“ in die if-Anweisung werden, aber kann ein Parameter wie folgt sein:

if (-e "$filePath") then 

Hier ist eine vollständige Liste der Cshell-Dateiabfragen.

-e file   file merely exists (may be protected from user) 
-r file   file exists and is readable by user 
-w file   file is writable by user 
-x file   file is executable by user 
-o file   file is owned by user 
-z file   file has size 0 
-f file   file is an ordinary file 
-d file   file is a directory