Shellスクリプトについて

Bashとは

BashとはLinux系OSデフォルトのシェル(ユーザーインタフェースソフト)のこと。

ターミナルでコマンドを打ち込む相手がBashであるということだ。

shellは殻という意味合いがあり、核であるカーネルにコマンドを渡す、仲介役と言える。

Bash用のスクリプトであるシェルスクリプトを書く

シェルスクリプトでは、現在時刻の取得・乱数の発生・もちろん演算が可能であるが、他の言語のように引数を用いたプログラムなど、複雑な動作が必要なものは得意としていない。 パイプライン経由で1行単位でデータを受け取れるコマンドが向いている。 シェルスクリプトの得意なこと・不得意なこと

ターミナルからファイルを触る際の初期知識

この際、モードの切り替えが必要となる。これが無いと、コマンドラインに戻れなくなったり、コードの編集ができなくなったりする。

筆者はこれに大分苦しめられた。

また、vim 【ファイル名】で、ファイルを編集することができる。今回使った/今後重宝しそうなコマンドは以下。

【 a,i 】  ノーマルモードから入力モードへ

【 esc, Ctrl + [, control + c】  入力モードからノーマルモードへ

【ZZ】  上書き保存して終了

【:w】  保存

【q!】  保存しないで終了

実行する際には、bash 【ファイル名】のコマンドで完了する。

シェルスクリプトの文法

他の言語とは文法が大分異なっている。

大なり小なり記号一つとっても、不等号は無効であり、-geなどと書かなくてはならない。よって、他の言語を触る際には事前知識と共通している部分もあるために、調べずにコーディングしてしまうことも多いが、他の言語を触る際よりも頻繁に調べながら書く必要がある。

ここで、乱数を扱う際のことについて書き記す。 乱数はbashでしか利用できないが、このように使うことができる。

# echo $RANDOM

剰余など、演算結果を表示させる際には、括弧で括る必要がある。

# echo $(( $RANDOM % 5 ))

ソートコマンドを使いこなす

今回は、ファイルに出力された数値データに関してソートすることを考える。 以下のコードで重複するデータを省くことができる。

$ sort -u ファイル名

以下のようにすると。データを昇順に並び替えることができる。

$ sort -n ファイル名

なお、このようにすると、

$ sort ファイル名

データの最初の数字が並び替え対象となるめ、1,5,13,32などとあったとすると、1,13,32,5と並び替えられることに注意したい。

ソートコマンド