BASH - регулярное выражение getopts в OPTARG - PullRequest
1 голос
/ 25 марта 2020

Мне нужно получить регулярное выражение из аргумента с getopts

./function -i "d*"
while getopts 'i:n' opt; do
  # check -i and -n arg
    case "$opt" in
      i)
        i=true
        pattern=$OPTARG;;
    esac
  done
echo $pattern

Вывод darProVas dirgraf-copy dirgraf-my: список файлов, начинающихся с d. Мне нужен этот вывод: d*.

1 Ответ

4 голосов
/ 25 марта 2020

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

echo "$pattern"
...