it-roy-ru.com

Как преобразовать строку в целое число в UNIX

У меня есть d1="11" и d2="07". Я хочу преобразовать d1 и d2 в целые числа и выполнить d1-d2. Как мне это сделать в UNIX?

d1 - d2 в настоящее время возвращает "11-07" как результат для меня.

22
qwarentine

Стандартное решение:

 expr $d1 - $d2

Вы также можете сделать:

echo $(( d1 - d2 ))

но учтите, что это будет трактовать 07 как восьмеричное число! (поэтому 07 - это то же самое, что 7, но 010 отличается от 10).

37
William Pursell

Любой из них будет работать из командной строки Shell. Хотя 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
15
Levon
let d=d1-d2;echo $d;

Это должно помочь.

0
mykeaka