如何检查 csh 脚本中是否存在任何文件?

how to check existence of any file in csh script?

为了检查我正在使用的 csh 脚本中的任何文件是否存在

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

但我遇到了以下错误

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

if: Expression Syntax.

谁能告诉我怎么做?

来自the manpage

f
    Plain file

您将它与 if 语句一起使用:

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

基于这个问题 ,您似乎对 csh 语法的工作原理一无所知,因为您一直在使用 POSIX shell 语法。我 强烈 建议您要么熟悉 csh 语法,要么只使用 POSIX shell (这可能更适合编写脚本).

在 CShell 中检查文件是否存在使用 -e 选项

文件名不必"hard coded"进入if语句,但是 可能是这样的参数:

 if (-e "$filePath") then

这是 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