2015-01-07 11 views
5

Per verificare l'esistenza di qualsiasi file nello script csh Sto usandocome verificare l'esistenza di qualsiasi file nello script csh?

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

ma io sono sempre sotto l'errore

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

if: Expression Syntax. 

Qualcuno può dirmi come fare questo?

+0

Questa sintassi Csh non è valida. Quale è una buona cosa, perché probabilmente non dovresti fare lo scripting in Csh. La tua sintassi va bene per 'sh', che probabilmente è quello che dovresti usare comunque. Senza il contesto del resto del tuo script, non possiamo davvero dire se la modifica della prima riga a '#!/Bin/sh' sarebbe fattibile, comunque. – tripleee

+0

@tripleee puoi semplicemente dirmi come controllare la presenza dei file nello script csh? – dcds

+2

No, non uso Csh e non voglio impararlo, e nemmeno tu dovresti. Il riferimento canonico è http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot ma puoi trovare molto altro in Google. – tripleee

risposta

4

Da the manpage:

f 
    Plain file 

lo si utilizza con una dichiarazione if:

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

Sulla base di questa domanda and your previous question, ti sembra di essere piuttosto clueless su come csh opere di sintassi, dal momento che continua ad usare la sintassi della shell POSIX. Vorrei fortemente suggerire di familiarizzare con la sintassi csh o semplicemente utilizzare una shell POSIX (che è probabilmente meglio per gli script comunque).

+0

L'ultima riga deve essere "endif", non "end". –

+0

sì su usando posix su csh. – kdubs

3

In CShell per la verifica dell'esistenza di un file usare -e opzione

Il nome del file non deve essere "hard coded" in l'istruzione if, ma può essere un parametro come questo:

if (-e "$filePath") then 

Ecco un elenco completo delle query di file Cshell.

-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 
Problemi correlati