Никакая потребность в bash
, плоскость sh
сделает также:
#! /bin/sh -
IFS=+; echo "$(($*))"
$*
в оболочках POSIX, расширяется до списка позиционных параметров (в этом случае, аргументы сценарию) разделенный первым символом $IFS
(или пространство, если $IFS
сброшен или ничто если $IFS
пусто). $((...))
оболочка внутренний арифметический оператор расширения (обратите внимание, что это поддерживает десятичные, восьмеричные и шестнадцатеричные числа),
Если Вам нужна поддержка с плавающей точкой, это - то, где Вам будет нужна другая оболочка как ksh93
или zsh
(нет bash
как bash
только целочисленная арифметика поддержек), хотя Вы могли также использовать awk
:
#! /usr/bin/awk -f
BEGIN {t=0; for (i in ARGV) t+=ARGV[i]; print t}
Это будет использовать long
(для целого числа) и double
(для плавающей точки), вводят числа, как реализовано Вашей системой. Входные числа должны быть десятичной или инженерной записью с плавающей точкой в английском стиле (разделитель с плавающей точкой является символом точки независимо от локали). С некоторыми awk
реализации, это перестанет работать, если первое число будет отрицательно как awk
попытался бы интерпретировать его как опцию.
Некоторые awk
реализации как GNU awk
когда POSIXLY_CORRECT находится в среде, также поддерживают hexadecimals включая с нотациями двоичного порядка. Или с --non-decimal-data
, это понимает octals и hexadecimals:
$ POSIXLY_CORRECT=1 ./sum 0xap3 0xa
90 # (0xa * 2^3) + 0xa
$ awk --non-decimal-data -f ./sum 010
8
Как прокомментировано ниже, создание функции будет работать. На этом же пути псевдоним [1129604]-[1129605], вероятно, самый короткий метод:
Сделать использование просто:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\0BC19BFC9D71BE44FB2B3570BAE7D7CD