Ces variables sont des variables shell. Pour les développer en tant que paramètres d'un autre programme (c'est-à-dire expr
), vous devez utiliser le $
préfixe :
expr $x / $y
La raison pour laquelle il s'est plaint est qu'il pensait que vous essayiez d'opérer sur des caractères alphabétiques (c'est-à-dire non entier)
Si vous utilisez le shell Bash, vous pouvez obtenir le même résultat en utilisant la syntaxe d'expression :
echo $((x / y))
Ou :
z=$((x / y))
echo $z
Je crois que cela a déjà été mentionné dans d'autres discussions :
calc(){ awk "BEGIN { print "$*" }"; }
alors vous pouvez simplement taper :
calc 7.5/3.2
2.34375
Dans votre cas, ce sera :
x=20; y=3;
calc $x/$y
ou si vous préférez, ajoutez ceci en tant que script séparé et rendez-le disponible dans $PATH afin que vous l'ayez toujours dans votre shell local :
#!/bin/bash
calc(){ awk "BEGIN { print $* }"; }