Ответ 1
Стандартное решение:
expr $d1 - $d2
Вы также можете сделать:
echo $(( d1 - d2 ))
но будьте осторожны, что это будет обрабатывать 07
как восьмеричное число! (поэтому 07
совпадает с 7
, но 010
отличается от 10
).
У меня есть d1="11"
и d2="07"
. Я хочу преобразовать d1
и d2
в целые числа и выполнить d1-d2
. Как это сделать в UNIX?
d1 - d2
в настоящее время возвращает "11-07"
в качестве результата для меня.
Стандартное решение:
expr $d1 - $d2
Вы также можете сделать:
echo $(( d1 - d2 ))
но будьте осторожны, что это будет обрабатывать 07
как восьмеричное число! (поэтому 07
совпадает с 7
, но 010
отличается от 10
).
Любой из них будет работать из командной строки оболочки. bc
, вероятно, является вашим самым прямым решением.
Используя bc:
$ echo "$d1 - $d2" | bc
Использование awk
:
$ echo $d1 $d2 | awk '{print $1 - $2}'
Использование perl
:
$ perl -E "say $d1 - $d2"
Использование Python
:
$ python -c "print $d1 - $d2"
все возвращаются
4
let d=d1-d2;echo $d;
Это должно помочь.
Используйте это:
#include <stdlib.h>
#include <string.h>
int main()
{
const char *d1 = "11";
int d1int = atoi(d1);
printf("d1 = %d\n", d1);
return 0;
}
и др.