Как я могу подавить сбои в расширении параметров? - PullRequest
1 голос
/ 12 марта 2020

Есть ли способ подавления сбоев в расширении параметров? Рассмотрим случай файла с буквальным именем *.xml в каталоге среди других файлов xml. Есть ли способ сделать расширение параметра ${param##*/}, затрагивающее только файл *.xml и не все файлы xml?

param=./*.xml
echo "$param" # Displays only ./*.xml
echo $param # Displays ./*.xml ./invoice.xml ./bla.xml ...
echo ${param##*/} # Displays *.xml invoice.xml bla.xml ...
# what I want:
echo ${param##*/} # Displays only *.xml

1 Ответ

2 голосов
/ 12 марта 2020

Преобразование моего комментария в ответ, чтобы было легко найти решение для будущих посетителей.

Проблема не в том, что вы цитируете ваши BASH выражения, которые позволяют оболочке расширять глобусы или символы подстановки.

Вы следует использовать кавычки в оболочке как:

param='./*.xml'
echo "$param"
echo "${param##*/}"
...