Bash Parameter Substitution: command line vs. script

Вы можете использовать функцию поиска 'more': $ more filename.txt Затем введите /word и нажмите Return. Перемещайтесь по файлу с помощью клавиш со стрелками, переходите к следующему вхождению с помощью n.

4
10.01.2017, 23:06
1 ответ

Проблема может заключаться в том, что параметр оболочки extglob установлен в интерактивной оболочке, но не в оболочке сценария.

$ shopt -u extglob
$ echo "${var1/${pattern}/}"
/some/path/to/file/the_file.arbitrary.n.ext.0.random.ext
$ shopt -s extglob
$ echo "${var1/${pattern}/}"
/some/path/to/file/the_file.arbitrary.n.ext

Таким образом, вы можете попробовать поместить shopt -s extglob сразу после строки shebang в скрипте.

Из справочного руководства Bash :

Если параметр оболочки extglob включен с помощью встроенной функции shopt , несколько расширенных шаблонов распознаются операторы сопоставления .... Составные шаблоны могут быть сформированы с использованием одного или нескольких из следующих подшаблонов:

? (PATTERN-LIST)
Соответствует нулю или одному вхождению заданных шаблонов .

10
27.01.2020, 20:48

Теги

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