お兄ちゃん!
思いつく動作の数だけ
コマンドがあるみたいだよ!
今回はどんなコマンドを
扱ってくれるんだろう?
今回は数学に関する
コマンドを紹介するよ!
seq コマンドseq は
seq 終了値
seq 開始値 終了値
seq 開始値 増分 終了値
1 となるんだ以下を実行してみようseq 5
どんな結果になるのかな?
1
2
3
4
5
1 から始まり、1 ずつ増えながら、5 で終わる」factor コマンドfactor は素因数分解をするよfactor [整数]...
素因数分解って…どんな計算だったっけ?
これは実行して見てみるのが早いと思うよ
factor 60
どれどれ?
60: 2 2 3 5
なるほど!「60 = 2 × 2 × 3 × 5」のような 分解をしてくれるんだね!
でも素因数を扱うことはめったにないような気がするなぁ…
素数はどうだろう?素数は素因数分解できないことを利用すれば
factor から素数を調べられるんだ以下のコマンドは
1 から 20 の間にある素数をseq のように列挙するよ!factor {1..20} | awk -F':? +' 'NF == 2 { print $1 }'
awk の NF はへぇ…実行してみるね!
2
3
5
7
11
13
17
19
expr コマンドexpr は指定された表現を解釈してくれるんだ整数演算などで使われるよexpr 表現
以下を実行してみよう!
expr 1 + 1
これは予想しやすいね!
2 になるんでしょ?2
正解!
expr には注意があるよ式で*)」これって算術式展開
$(( ... )) の方が楽じゃないのかな?良い所に気が付いたね!算術式展開が登場するまでは
expr が使われていたんだ今でも移植性を考慮したスクリプトなどで使われることがあるよまた
表現 が正しく評価できなければ失敗を返すんだこのことを利用して整数の判定ができるよTEXT=abc
expr "$TEXT" + 1 > /dev/null 2>&1 \
&& echo "$TEXT は整数です" \
|| echo "$TEXT は整数ではありません"
なるほど!
TEXT 変数の値が整数じゃなかったら演算できなくて失敗を返すんだね!bc コマンドbc は計算機なんだ小数演算などで使われるよbc [オプション]... [ファイル]...
さっそく実行してみよう!
bc <<< '1.1 + 1.2'
ええっと…答えは
2.3 かな?2.3
正解!
これも算術式展開
$(( ... )) で…って聞くのは野暮かな?確かに現在では簡単な小数の計算なら算術式展開を使うことが多いね
bc はスクリプト言語でプログラムのように数式を書けるんだ複雑な計算式をテキストに記述してbc に計算させるという使い方もされるよ以下は
bc で半径2の円の面積を求めるよbc << \EOF
pi=3.14
r=2
r * r * pi
EOF
bc の書き方を知らなくてもどんな計算を行っているか見ればだいたい伝わる内容だね!12.56
今回は数学に関するコマンド
seq, factor,expr, bcを学んだよ!アイデア次第で色々使えるよ!