web-dev-qa-db-ja.com

UNIXで文字列を整数に変換する方法

d1="11"d2="07"があります。 d1d2を整数に変換し、d1-d2を実行したい。 UNIXでこれを行うにはどうすればよいですか?

d1 - d2は現在、私の結果として"11-07"を返します。

23
qwarentine

標準ソリューション:

 expr $d1 - $d2

次のこともできます。

echo $(( d1 - d2 ))

ただし、これは07を8進数として扱うことに注意してください! (したがって077と同じですが、01010とは異なります)。

40
William Pursell

これらはいずれもシェルコマンドラインから機能します。 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
16
Levon
let d=d1-d2;echo $d;

これが役立つはずです。

0
mykeaka