Какие графические пакеты загружать с помощью командной строки Ubuntu для моделирования FORTRAN?

Проблема состоит в том, что диапазон символов [a-z] фактически включает в себя буквы верхнего регистра. Это объясняется в руководстве bash: В выражении скобки выражение диапазона состоит из двух символов, разделенных дефисом. Он соответствует любому одиночному символу, который сортирует между двумя символами, включительно. В локали C по умолчанию последовательность сортировки является собственным порядком символов; например, '[a-d]' эквивалентно '[abcd]'. В других локалях последовательность сортировки не указывается, а «[ad]» может быть эквивалентной «[abcd]» или «[aBbCcDd]», или она может не соответствовать любому символу или набору символов, которые он совпадения могут быть даже неустойчивыми. Чтобы получить традиционную интерпретацию выражений скобок, вы можете использовать локаль «C», установив переменную среды LC_ALL в значение «C».

Чтобы проиллюстрировать:

$ case B in [a-c]) echo YES;;  *) echo NO;; esac
YES
$ LC_ALL=C; case B in [a-c]) echo YES;; *) echo NO;; esac
NO

Итак, что происходит в вашей локали (которая не является C), [a-c] на самом деле [aAbBcC]. Вот почему вы должны использовать классы символов POSIX bash manual by @karel.

0
задан 22 December 2017 в 14:14

0 ответов

Другие вопросы по тегам:

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