Viji
@Viji
DevOps Engineer

Почему переменная раскрывается с кавычками либо пытается сразу передать файлы?

Здравствуйте,

Скрипт:
#!/bin/bash

filex="*.pdf"
folderp="/path/to/folder"

Когда я добавил команду
find "$folderp" -type f -name "$filex"

она ничего не находит, так как вторая переменная раскрывается с одинарными кавычками '.pdf' Естественно такого файла у меня нет. Не могу передать второй параметр без кавычек.

Конструкция:
find "$folderp" -type f -name "*.pdf"

Работает вполне ожидаемо

с уважением, Вадим
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Вообще-то ваша конструкция должна работать и у меня работает вполне корректно.

Можете привести пример вывода и убедиться что хотя бы один pdf файл в нужном каталоге есть?
У вас точно есть *.pdf файлы по указанному пути? Может там file.PDF ?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
она ничего не находит, так как вторая переменная раскрывается с одинарными кавычками '.pdf'

А у меня всё что надо находит твоим скриптом. Можешь добавить -x к #!/bin/bash чтобы шелл писал, что собирается выполнять, чтобы понять в чём дело. Подозреваю, что какие-нибудь смешные опции в .bashrc/.bash_profile
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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