2010-07-22 5 views
1

Objet script shellscript shell (ksh) + comparer le signe en tant que param est-il possible?

si je joue comparer sur les points suivants

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

Je reçois OK

Mais comment comparer si le "-eq" est dans mon param

par exemple

param = "- éq"

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

Évident que pas illégal

mais je me demande s'il possible de toute façon avec quelques modifications ?? Lidia

Répondre

0

Je ne sais pas pourquoi vous voulez faire cela, mais vous pouvez utiliser eval pour cela:

eval [[ 2 $param 2 ]] && print OK 
+0

nice - :) Qu'en est-si je Perform (si [[.......]] alors) dans ce cas où je dois mettre la commande eval? – lidia

+1

@lidia: Vous pouvez mettre le 'eval' juste après le' if': 'if eval [[...]]' –

1

La construction [[ a été conçu précisément pour que les opérateurs (tels que -eq) doivent être spécifié directement, pour éviter que les chaînes provenant de l'expansion des paramètres soient accidentellement interprétées comme des paramètres.

Utilisez [, qui est une commande ordinaire avec une syntaxe assez similaire à [[. Comme il s'agit d'une commande ordinaire, l'expansion des paramètres se produit normalement.

[ 2 $param 2 ] && print OK

Questions connexes