サーチ…
DCを使った数学
dc
はUnix上で最も古い言語の1つです。
これは逆ポリッシュ表記を使用しています。つまり、最初に積み重ねてから操作します。例えば、 1+1
のように記述される1 1+
。
スタックの一番上から要素を印刷するには、コマンドp
使います。
echo '2 3 + p' | dc
5
or
dc <<< '2 3 + p'
5
一番上の要素を何度も印刷することができます
dc <<< '1 1 + p 2 + p'
2
4
負の数の場合は、接頭辞_
接頭辞
dc <<< '_1 p'
-1
10 and 15
までの数字にはA to F
大文字を使用することもでき.
小数点以下
dc <<< 'A.4 p'
10.4
dc
は任意の精度を使用しています。つまり、精度は使用可能なメモリによってのみ制限されます。デフォルトでは、精度は0小数に設定されています
dc <<< '4 3 / p'
1
コマンドk
を使って精度を上げることができます。 2k
が使用する
dc <<< '2k 4 3 / p'
1.33
dc <<< '4k 4 3 / p'
1.3333
複数行にわたって使用することもできます
dc << EOF
1 1 +
3 *
p
EOF
6
bc
はdc
プリプロセッサです。
BCを使った数学
bc
は任意精度の計算機言語です。対話的に使用することも、コマンドラインから実行することもできます。
たとえば、式の結果を出力することができます。
echo '2 + 3' | bc
5
echo '12 / 5' | bc
2
浮動小数点演算では、標準ライブラリbc -l
インポートできます。
echo '12 / 5' | bc -l
2.40000000000000000000
これは式の比較に使用できます。
echo '8 > 5' | bc
1
echo '10 == 11' | bc
0
echo '10 == 10 && 8 > 3' | bc
1
bash機能を使用した数学
算術演算は次のような他のプログラムを必要とせずに行うこともできます:
乗算:
echo $((5 * 2))
10
分割:
echo $((5 / 2))
2
モジュロ:
echo $((5 % 2))
1
累乗:
echo $((5 ** 2))
25
exprを使った数学
expr
またはEvaluate expressions
評価し、その結果を標準出力に書き込みます
基本的な算術
expr 2 + 3
5
乗算するときは、 *
記号をエスケープする必要があります
expr 2 \* 3
6
変数を使用することもできます
a=2
expr $a + 3
5
これは整数だけをサポートしているので、このような式を覚えておいてください
expr 3.0 / 2
expr: not a decimal number: '3.0'
というエラーが発生します 。
パターンにマッチする正規表現をサポートしています
expr 'Hello World' : 'Hell\(.*\)rld'
o Wo
または、検索文字列の最初の文字のインデックスを検索する
Mac OS Xでは、indexコマンドを持たないBSD exprを使うため、これは
expr: syntax error
を投げexpr: syntax error
が、Linuxではexprは一般にGNU exprです
expr index hello l
3
expr index 'hello' 'lo'
3