как проверить наличие любого файла в csh скрипте?

для проверки существования любого файла в csh-скрипте я использую

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

, но я получаю ниже ошибка

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

if: Expression Syntax.

может кто-нибудь сказать мне, как это делать?

2 ответов


С manpage:

f
    Plain file

вы используете его с if о себе:

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

основываясь на этом вопросе и ваш предыдущий вопрос, вы, кажется, довольно невежественны относительно того, как csh синтаксис работает, так как вы продолжаете использовать синтаксис оболочки POSIX. Я бы сильно предложите вам либо ознакомиться с csh синтаксис или просто используйте оболочку POSIX (что, вероятно, лучше для сценариев в любом случае).


В CShell для проверки наличия файла используйте -e опции

имя файла не должно быть "жестко закодировано" в Оператор 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