Как преобразовать строку в целое число в 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.