2010-11-19 47 views
0

Je fais des scripts dans le shell Korn, et je n'arrive pas à savoir comment éviter l'avertissement "l'expansion des variables nécessite une conversion inutile des chaînes en nombre". Mon code est le suivant:"conversion de chaîne inutile en nombre" dans le script ksh

#!/bin/ksh 
testnum=04 
(($testnum == 4)) 

L'erreur est détectée sur cette troisième ligne. J'ai essayé d'ajouter integer testnum, mais cela semble ne faire aucune différence.

+0

C'est un message merveilleux. "nécessite" et "inutile" se référant à la même chose. – bmargulies

+0

@bmargulies: N'est-ce pas juste? J'ai essayé de le googler, mais les seuls hits que j'ai pu trouver étaient pour le code (très dense et apparemment non commenté) qui le génère. –

+0

Cela doit être spécifique à la version. Pour moi, "Version JM 93t + 2009-05-01" ne génère pas cette erreur. Ni pdksh ou mksh. Quelle version utilisez-vous? –

Répondre

2

Je suppose que ce message signifie que vous convertissez testnum en chaîne en utilisant $ testnum dans la partie numérique de votre script, ce qui est inutile. Vous n'aurez probablement pas ce message si vous utilisez cette syntaxe:

#!/bin/ksh 
testnum=04 
((testnum == 4)) 
+0

Dans le "(((...))", des expressions arithmétiques sont attendues. La syntaxe du shell est quelque peu différente et, en particulier, les variables sont automatiquement développées. Notez que le $ est requis dans certains cas, comme si vous deviez référencer un argument de script (par exemple: $ 1). – jlliagre