сценарий оболочки (ksh) + сравнить знак как параметр это возможно? - PullRequest
1 голос
/ 22 июля 2010

Сценарий оболочки субъекта

, если я выполню сравнение на следующем

 [[ 2 -eq 2 ]] && print OK

Я получу ОК

Но как сравнить, если "-eq" находится в моемparam

например

param = "- eq"

  [[ 2 $param 2 ]] && print OK

Очевидно, что это не незаконно

, но мне интересно, возможно ли это в любом случае с некоторыми изменениями??Lidia

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Конструкция [[ была разработана точно так, что операторы (такие как -eq) должны указываться напрямую, чтобы избежать случайного толкования строк, возникающих при расширении параметра, как параметров.

Использование [,это обычная команда с довольно похожим синтаксисом [[.Поскольку это обычная команда, расширение параметра происходит нормально.

[ 2 $param 2 ] && print OK

0 голосов
/ 22 июля 2010

Я не уверен, почему вы хотели бы сделать это, но вы можете использовать eval для этого:

eval [[ 2 $param 2 ]] && print OK
...