Взгляните на справочную страницу bash. В нем говорится о set -e
(выделено мной):
Выйти немедленно, если конвейер (который может состоять из одной простой команды), список или составная команда (см. ОБРАЗЕЦ ОБОЛОЧКИ выше) , выходит с ненулевым статусом. Оболочка не завершает работу, если команда, которая завершается с ошибкой, является частью части списка команд, следующих сразу за ключевым словом некоторое время или до, часть теста, следующей за зарезервированными словами if или elif, часть любой выполненной команды в & amp; & amp; или || список, за исключением команды, следующей за последней & amp; & amp; или || , любая команда в конвейере, кроме последней, или если возвращаемое значение команды инвертируется с помощью!. Если составная команда, отличная от подоболочки, возвращает ненулевое состояние из-за того, что команда завершилась неудачно, а -e игнорировалась, оболочка не завершится. Ловушка ERR, если установлена, выполняется до выхода из оболочки. Этот параметр применяется к среде оболочки и к каждой среде подоболочки отдельно (см. Выше КОМАНДА ИСПОЛНЕНИЯ ИСПОЛНЕНИЯ) и может привести к выходу подоболочек после выполнения всех команд в подоболочке.
Если составная команда или функция оболочки выполняется в контексте, где -e игнорируется, ни одна из команд, выполняемых в составной команде или теле функции, не будет затронута параметром -e, даже если установлен -e и Команда возвращает статус ошибки. Если составная команда или функция оболочки задает -e при выполнении в контексте, где -e игнорируется, эта настройка не будет иметь никакого эффекта до тех пор, пока составная команда или команда, содержащая вызов функции, не завершится.
blockquote>В следующем примере второй вызов функции
test
завершит выполнение сценария, так как это последняя команда в списке||
.#!/bin/bash set -e test() { false echo "This should not be printed!" } test || echo "test failed" false || test echo "Will not be printed"
Я думаю, что Вы найдете то, в чем Вы нуждаетесь в этой библиотеке программ управления: http://www.codeplex.com/WPFDeveloperTools
Ищите 'FilteredTextBox' среди всех других полезных средств управления. Я не думаю, что это делает regex, но это должно смочь отфильтровать примерно все, в чем Вы нуждаетесь, и так как у Вас будет источник, необходимо быть легко улучшить.
В качестве награды это свободно и с открытым исходным кодом на CodePlex.
Можно также найти хорошее сообщение в блоге о том, как пойти о реализации этого сами сюда: http://marlongrech.wordpress.com/2007/10/28/masked-textbox/