2014-12-09 1 views
1

моего код как-то как-синтаксиса в строке 354: `= ~» неожиданных в л.с. Unix

if [[ ! $FIRST=~ ^/ ]] then 
      FIRST="${SECOND}/${FIRST}" 
fi 

и я получаю ниже ошибок при выполнении сценария HP unix-ошибке синтаксиса в строке 354 : `= ~ 'неожиданно. Кажется, отлично работает в Linux. У кого-нибудь есть решение?

+0

Возможно, вам нужно пространство перед '='? Вы используете ksh на Linux тоже? –

+0

Похоже на конструкцию Bash. У вас есть Bash в системе HP-UX? Что находится на линии сценария скрипта? – tripleee

+1

В ksh нет '= ~', а HP-UX - не Linux. –

ответ

0

Как видно из комментариев, ksh на HP-UX, вероятно, довольно старый, поэтому нет оператора =~.

Однако, вы просто проверить, что значение начинается с косой черты, так что используйте Глоб-стиль сопоставления с образцом:

if [[ $FIRST != /* ]]; then FIRST="$SECOND/$FIRST"; fi 

Если что не работает, используйте case:

case "$FIRST" in 
    /*) : ;; 
    *) FIRST="$SECOND/$FIRST" ;; 
esac 
Смежные вопросы