les scripts shell opérations arithmétiques
en général, je vais utiliser expr à l'intérieur de scripts shell pour faire des opérations arithmétiques.
est-il un moyen où l'on peut venir avec opération arithmétique dans un script shell, sans l'aide de expr?
Je suppose que "l'Utilisation
vous pleasegive un exemple d'utilisation de la colombie-britannique?
bc
au lieu de" n'est-ce pas tout la réponse que vous cherchez...vous pleasegive un exemple d'utilisation de la colombie-britannique?
PI=$(echo "4*a(1)" | bc -l)
OriginalL'auteur Vijay | 2010-06-10
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de lire "l'homme ksh" si vous utilisez des ksh?
"man bash", par exemple, dispose de suffisamment d'informations sur l'arithmétique avec bash.
la commande typeset -i peut être utilisé pour spécifier qu'une variable doit être traité comme un entier, par exemple typeset -i MYVAR spécifie que la variable MYVAR est un entier plutôt qu'une chaîne de caractères. À la suite de la commande typeset, tente d'affecter un non entière de la valeur de la variable ne fonctionne pas:
Pour effectuer des opérations arithmétiques sur des variables ou à l'intérieur d'un script shell, utilisez la commande. laissez évalue ses arguments comme de simples expressions arithmétiques. Par exemple:
L'expression ci-dessus peut aussi être écrite comme suit:
Rien enfermés à l'intérieur de $(( et )) est interprétée par le shell Korn comme étant une expression arithmétique
osr507doc.sco.com/en/OSUserG/_math_on_var_in_ksh.html bo.infn.it/alice/alice-doc/mll-doc/impgde/node18.html
merci pour la bonne direction zed
En toute équité, le ksh page de man est, euh, pas si utile. Le ksh88 des pages de man sont même induire en erreur, par exemple, expliquer l' _ variable, ils vous disent qu'il se rapporte à MAILPATH, mais ne pas expliquer clairement ce que c'est. (sur solaris 9, hp-ux 11.0 & 11i) C'est l'argument(s) pour la saisie précédemment commande, si il le faut.
OriginalL'auteur zed_0xff
Moderne coquilles (conforme à POSIX = moderne à mon avis) de soutien des opérations arithmétiques:
+ - /* le signé variables de type entier long +/- de 2 147 483 647.
Utiliser awk pour la double précision, 15 siginificant chiffres Il ne sqrt.
La colombie-britannique -l de la précision étendue jusqu'à 20 chiffres significatifs.
La syntaxe (zed_0xff) pour shell vous l'avez déjà vu:
awk ne double précision à virgule flottante - opérations arithmétiques en mode natif.
Il a également sqrt, cos, sin .... voir:
http://people.cs.uu.nl/piet/docs/nawk/nawk_toc.html
colombie-britannique a certaines fonctions définies et étendu presision qui sont disponibles avec l'option-l:
bc -l
exemple:
OriginalL'auteur jim mcnamara
La précision et de la plage de shell builtin
$(( <expr> ))
dépend de la plate-forme. Sur une plate-forme 32 bits il est limité à des nombres entiers de 32 bits (à la différence deexpr
, qui apparaît à l'appui de grands entiers dans une manière qui semble être indépendant de la plate-forme).(N. B - méfiez-vous que tout
^
est un opérateur valide dans la plupart des coques, il ne signifie pas "à la puissance", mais plutôt XOR.)Aussi - quelques coquilles sont plus à venir dans ce domaine. Zsh, par exemple, permet d'opérations en virgule flottante, comme
$(( 10/3.0 ))
OriginalL'auteur Popup