[Linux] => [シェルスクリプト]



シェルスクリプトにおける演算は $((計算式))とするかexprコマンドを使用します。$((計算式))の書式を用いる場合、変数の展開に$が必要ないことに注意してください。


[例]


#!/bin/sh


num=4;
echo $((6 % 4)) #6/4の余り
echo $((2 * 3))
echo $((4 / 2))
echo $((4 * 4))
echo $((5 + 5))
echo $((num * 4)) #この書き方の場合、変数に$をつける必要はない
echo `(expr 5 \* 4)` #*はシェルにて展開されるためエスケープ


[出力結果]


2
6
2
16
10
2
16
20



広告
シェルスクリプト基本リファレンス シェルスクリプト基本リファレンス
¥ 2,394 / 売り上げランク: 21448 / 305 ページ

この「シェルスクリプト基本レファレンス」は秀逸です。
特に3章「シェル文法の循環構造」は/etc/rc.d以下のシェルスクリプトを読む毎に今まで感じていた疑問や違和感を解消してくれました。コマンド-->パイプライン-->リスト-->複合コマンド-->コマンドの循環構造や、構文(if文やfor文)が複合コマンドであることなど、シェルスクリプトに対する理解がかなり深まりました。「入門シェルプログラミング、ブルース・ブリン著」と共に、いつも手元に置いておきたい本です。

UNIXシェルスクリプトハンドブック (Technical handbook series (001)) UNIXシェルスクリプトハンドブック (Technical handbook series (001))
¥ 2,310 / 売り上げランク: 34150 / 410 ページ

いきなり高度な使い方が出てくるのに概要しか説明がない
何冊も他の本を読んだがそれでも判らない

シェルスクリプト ポケットリファレンス ~bash編 (Pocket reference) シェルスクリプト ポケットリファレンス ~bash編 (Pocket reference)
¥ 2,394 / 売り上げランク: 34724 / 256 ページ

共著であるためなのか、全く同じ事の解説が(例えばシェル変数のエクスポートなど)複数の章で書いてあったりする。
いい加減に本を書いている証拠。
他にもシェルスクリプトでの数値計算などの説明もなく、ほとんど役に立たない。