Ошибка сценария оболочки, чтобы проверить, существует ли файл

#! /bin/bash

echo -e "Enter the name of the file : \c"
read file_name

if [ -e $filename ]
then
echo "$file_name is found"
else
echo "$file_name is not found"
fi

Я запускаю вышеупомянутое, чтобы проверить, что файл существует в текущем каталоге, используя флаг -e, но он показывает условие, поскольку $ filename найден для любого значения, заданного для $ filename.

0
задан 11 May 2019 в 14:12

1 ответ

Я сделал несколько изменений в вашем сценарии:

  • # !/bin/bash, хотя он работает нетрадиционно. Вместо этого используйте #!/bin/bash.
  • Имя файла - это одно слово, но часто мы думаем, что это два. Следовательно, это было написано по-разному, так как file-name и file_name
  • Косметически линии между if -> else -> fi должны иметь отступ для большей читаемости. Он по-прежнему работает вертикально, его легче читать при отступе.
  • Дополнительные слова в Enter the name of the file можно сократить до Enter filename, чтобы сделать программы короче и быстрее. Это также позволяет людям быстрее читать инструкции.
#!/bin/bash

echo -e "Enter filename: \c"
read filename

if [ -e "$filename" ]
then
    echo "$filename found"
else
    echo "$filename not found"
fi
0
ответ дан 11 May 2019 в 14:12

Другие вопросы по тегам:

Похожие вопросы: