2014-10-29 4 views
0

Ksh проблема с регулярным выражением (я могу сделать похожий скрипт довольно легко с sh).ksh regex - как вставить переменную

Проблема проста: когда я пытаюсь вставить переменную $ в мое регулярное выражение, регулярное выражение выходит из строя. Но он отлично работает, когда я заменяю переменную $ на ее фактическое значение. Мне НЕОБХОДИМО использовать несколько регулярных выражений Ksh с переменной $ variable, как это сделать?

Exemple 1 регулярных выражений работает эхо "hourra":

#!/bin/ksh 
file=BEFORE_ONE_AFTER 
name="(ONE|TWO)" 

if [[ $file = @(BEFORE_(ONE|TWO)_AFTER) ]] ; then 
echo "hurra!" 
fi 

Exemple 2 регулярное выражение не удается не эхо:

#!/bin/ksh 
file=BEFORE_ONE_AFTER 
name="(ONE|TWO)" 

if [[ $file = @(BEFORE_${name}_AFTER) ]] ; then 
    echo "ohde!" 
fi 

ответ

0

Использование AIX Ksh , добавьте кавычки вокруг параметра.

#!/bin/ksh 
file=BEFORE_ONE_AFTER 
name="(ONE|TWO)" 

if [[ $file = @(BEFORE_"${name}"_AFTER) ]] ; then 
    echo "ohde!" 
fi 

$./test.sh 
ohde! 
$ 
Смежные вопросы