2015-01-07 11 views
5

Do sprawdzania istnienia jakiegokolwiek pliku w csh skrypt używamjak sprawdzić istnienie dowolnego pliku w skrypcie csh?

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

ale otrzymuję poniżej błędu

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

if: Expression Syntax. 

Czy ktoś może mi powiedzieć jak to zrobić?

+0

Nieprawidłowa składnia Csh. Co jest dobre, ponieważ prawdopodobnie nie powinno się wykonywać skryptów w Csh. Twoja składnia jest odpowiednia dla 'sh', której prawdopodobnie i tak powinieneś używać. Bez kontekstu pozostałej części skryptu nie jesteśmy w stanie stwierdzić, czy zmiana pierwszej linii na '#!/Bin/sh' będzie możliwa. – tripleee

+0

@tripleee, czy możesz po prostu powiedzieć mi, jak sprawdzić istnienie pliku w skrypcie csh? – dcds

+2

Nie, nie używam Csh i nie chcę się go uczyć, podobnie jak ty. Kanoniczne odwołanie to http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot, ale w Google możesz znaleźć o wiele więcej. – tripleee

Odpowiedz

4

Od the manpage:

f 
    Plain file 

go używać z if stwierdzeniem:

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

podstawie tej kwestii and your previous question, to wydaje się być raczej bladego pojęcia, jak csh prac składniowych, od ciebie dalej używać składni powłoki POSIX. Chciałbym zdecydowanie zaproponować zapoznanie się ze składnią csh lub po prostu użyć powłoki POSIX (która i tak jest prawdopodobnie lepsza dla skryptów).

+0

Ostatnia linia powinna być "endif", a nie "end". –

+0

tak na użyciu posix przez csh. – kdubs

3

W cShell za sprawdzanie istnienia pliku użyć -e opcji urządzenie

nazwa pliku nie musi być „ciężko kodowane” do if, ale może być parametrem tak:

if (-e "$filePath") then 

Oto pełna lista zapytań o plik 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 
Powiązane problemy