J'utilise un terminal série pour fournir une entrée dans notre expérience de laboratoire. J'ai trouvé qu'en utilisant
$ echo "5X5"
renvoie simplement une chaîne de "5X5"
. Existe-t-il une commande pour exécuter une opération de multiplication?
la source
dc
fonctionne avec des flotteurs. Essayezecho '4 k 50 7 / p' | dc
. La sortie est7.1428
. Lak
commande définit la précision.k
. Je me souviens certainement que la précision par défaut était de 0 (troncature en entier). Est-ce que je me souviens mal ou est-ce simplement que les nouvelles implémentations ont changé de comportement?dc
rarement utilisé au fil des ans puisque je suis plus algébrique et moins RPN donc je ne m'en souviens pas. Sur un système GNU que j'utilise, la valeur par défaut est 0. Une ancienneman
page FreeBSD (1993) mentionne que la valeur par défaut est zéro, mais les anciennesman
pages BSD ne le font pas.echo '4 k 50.5 7 / p' | dc
fonctionne (sortie :)7.2142
.Une simple fonction shell (pas besoin de sed) devrait faire l'affaire pour interpréter '5X5'
la source
J'utilise cette fonction qui utilise
bc
et supporte donc les calculs en virgule flottante:Exemple:
L'expansion arithmétique de Bash ne prend pas en charge les flottants (mais Korn Shell et zsh le font).
Exemple:
la source
J'ai un script simple que j'utilise pour cela:
me@mycomputer:~$ cat /usr/local/bin/c
Il change
x
en*
car*
est un caractère spécial dans le shell. Utilisez-le comme suit:c 5x5
c 5-4.2 + 1
c '(5 + 5) * 30'
(vous devez toujours utiliser des guillemets si l'expression contient des parenthèses).la source
tr
peut être utilisé pour faire un mappage de caractères pour plusieurs caractères.Si vous aimez python et avez la possibilité d'installer un package, vous pouvez utiliser cet utilitaire que j'ai créé.
la source