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