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