Этот вопрос может показаться глупым, но я в тупике, не уверен, что не так. В любом случае, у меня есть часть кода, которая проверяет, существует ли конкретный файл в каталоге или нет. Код работает нормально для обычных файлов, по нормальным файлам, я имею в виду .. что-то вроде «abc.xlsx или xaga1.xlsx». Проблема в том, что когда я передаю файл с пробелами, он, похоже, терпит неудачу, я имею в виду, что проверка завершилась неудачно. Я пойду прямо к коду:Проверьте, существует ли файл в оболочке в определенном каталоге
if [ ! -e "$file" ]
then
echo_time "ERROR: $file does not exist - aborting" >> $fileChangedLog
exit 1
fi
Если я проверить в файле журнала, к которому вывод был перенаправлен, я могу увидеть следующую строку:
[03/17/16 11:07:09] ERROR: "/opt/just4share/tellabs/tellabs_nodes 2.xlsx" does not exist - aborting
но если я Ls путь ошибки я получаю следующий результат:
[[email protected] scripts]$ ls -lrt "/opt/just4share/tellabs/tellabs_nodes 2.xlsx"
-rw-rw-r--+ 1 netcool ncoadmin 17412 Mar 17 10:43 /opt/just4share/tellabs/tellabs_nodes 2.xlsx
Это подтверждает, что файл существует, однако, мой код не может найти его. Что я здесь делаю неправильно? : |
Edit: Я также попытался -f переключатель вместо переключателя -e
Похоже, что ваш файл '$ file' переменная содержит двойные кавычки, так что искали файл' "/ опц ...' не '/ opt ...' (сообщение журнала ясно об этом) .Как создается переменная '$ file'? –