Способ Я решил, что этот должен иметь псевдоним оболочки, который вызывает скрипт и источник файла, который написал сценарий. Так, например,
function waypoint {
python "$WAYPOINT_DIRECTORY"/waypoint.py $@ &&
source ~/.config/waypoint/scratch.sh
cat /dev/null > ~/.config/waypoint/scratch.sh
}
и waypoint.py
создает scratch.sh
, чтобы выглядеть как
cd /some/directory
Это по-прежнему плохое.
^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{,63}(?<!-)$
Я использовал следующий испытательный стенд, записанный в Python, чтобы проверить, что он работает правильно:
tests = [
('01010', False),
('abc', True),
('A0c', True),
('A0c-', False),
('-A0c', False),
('A-0c', True),
('o123456701234567012345670123456701234567012345670123456701234567', False),
('o12345670123456701234567012345670123456701234567012345670123456', True),
('', True),
('a', True),
('0--0', True),
]
import re
regex = re.compile('^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{,63}(?<!-)$')
for (s, expected) in tests:
is_match = regex.match(s) is not None
print is_match == expected