при выполнении этой программы я получаю один и тот же вывод каждый раз, когда файл не найден, даже если файл доступен на моем ПК

#linux

#linux

Вопрос:

дайте мне эту ошибку:

» файл не найден»

Вот полный код

https://github.com/vats147/public/blob/main/l25.sh

 #! /bin/bash

usage(){
     echo " you need to provide an argument "
     echo " usage : $0 file_ name "
}

is_file_exist(){
    local file="$1"
    [[ -f " $file " ]] amp;amp; return 0 || return 1
} 
[[ $# -eq 0 ]] amp;amp; usage
if(is_file_exist "$1")
then
    echo " file found "
else
    echo " file not found "
fi
 

при выполнении программы я получаю тот же вывод, что и файл, который не найден, даже если файл доступен в каталоге.

почему?

Комментарии:

1. Пожалуйста, опубликуйте код как часть вопроса, а не как ссылку.

Ответ №1:

Я думаю, что ваше if условие неверно. Это должно быть больше похоже на это

 if [[ is_file_exist "$1" -eq 1 ]];then
    echo "file found"
else
    echo "file not found"
fi
 

Комментарии:

1. Пожалуйста, имейте в виду, что в синтаксисе bash if условие не используется ( , вместо этого оно использует [