2014-10-29 45 views
0

Ksh正則表達式問題(我可以用sh很容易做一個類似的腳本)。ksh正則表達式 - 如何插入變量

問題很簡單:當我嘗試在我的正則表達式中插入$變量時,正則表達式失敗。 但它正常工作時,我用它的實際值替換$變量。 我需要在$變量中使用多個Ksh正則表達式,該怎麼做?

爲例1正則表達式的作品回聲 「hourra」:

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

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

爲例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! 
$