путь к файлу в переменной с пользовательского ввода

Я пытаюсь создать скрипт, где пользователь даст путь к некоторому файлу, а скрипт проверяет, существует ли файл и что-то делать … Я написал этот код:

read -p "Enter path: " $path #check if path is not empty string if [ -z $path ] then echo "path is empty string" exit fi #check if file exist if [ ! -f $path ] then echo "file doesnt exists" fi 

моя проблема заключается в условии secound – если я изменяю $path с некоторой строкой, все в порядке, но когда я ввожу путь через переменную, всегда «файл не существует», я пытался с

 if [ ! -f `$path` ] 

но если файл не имеет результата разрешения на выполнение, тоже сбой. Может кто-нибудь помочь мне исправить код выше? 🙂

EDIT извините, я имел в виду -z и -f не double -z условие

  • Повторно заменять строку
  • Как сделать текст справки по программам автоматически транслируется через меньше?
  • «ожидать» поведение в сценарии bash
  • Возвращает ли bash что-либо при выполнении команды?
  • Понять порядок команд в bash, когда задействованы функции
  • Изменение расширений файлов
  • Объединение нескольких команд в одну строку
  • Почему словосочетание и расширение имени файла не применяются к условному выражению внутри `]`?
  • One Solution collect form web for “путь к файлу в переменной с пользовательского ввода”

    Проблема здесь в том, что обратные сигналы:

     `command` 

    используются для запуска команды и замены ее выходных потоков (стандарт и ошибка) в результате, поэтому тест терпит неудачу, когда вы поставляете файл без разрешения на выполнение.

    Как исправить это

    использование

     if [ -f "$path" ] 

    Двойные кавычки предназначены для защиты от разбиения слов (в случае, если они содержат пробелы), и против globbing (в случае, если путь содержит подстановочные символы, такие как * или ? )

    Еще лучше, поскольку путь может быть в каталоге, просто проверьте наличие пути с -e :

     if [ -e "$path" ] 
    Interesting Posts

    Как определить, какое событие отключает липкие клавиши?

    Сортировка по последнему символу ввода, затем по предыдущему номеру?

    копировать строки, где символ встречается ровно столько раз

    Изменение / изменение размеров разделов Linux

    Как я могу заставить wlan0 автоматически отображаться, когда я подключаю USB-адаптер WiFi?

    Не удается перейти в существующий каталог

    что такое «rfc3442-classless-static-routes» в /etc/dhcp/dhclient.conf

    Fedora 23, как избежать переключения ctrl + shift с другими клавишами Ctrl + shift?

    Рекомендуемый менеджер списка рассылки для использования с Postfix

    сохранить вывод скрипта python в текстовый файл

    Как переключить Wi-Fi-канал без отключения соединения?

    Как создать новый раздел в Ubuntu

    vmware debian sid gnome mouse не работает клавиатура в порядке

    Разрешить пользователю запускать команду с аргументами (которая содержит пробелы)

    Обнаружить, если бинарник ELF был построен с помощью gprof?

    Linux и Unix - лучшая ОС в мире.