takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

はじめてUNIXで仕事をする人が読む本 の備忘録 04

はじめてUNIX で仕事をする人が読む本 の備忘録 04

お世話になった本

この連載ブログを書くにあたり、お世話になった本がこちら。LPICと被っているところもありますが、実務での使い方なんかも扱っており、良書だと思います。

第4章 作業の自動化(シェルスクリプト

必要性と利点

言わずもがな、楽して品質向上。
ただし、想定外の事故に注意。

Bourne Shell について

シェルスクリプトを動かすには、シェルが必要。
cshでもkshでもzshでもシェルスクリプトは書けるが、一般的にはBourne Shellが多い。

なぜか。たいていのOSやディストリビューションで使えるから。

簡単なスクリプトの実行

とりあえず作ってみる。

/etc/passwdファイルからBourne Shellを使っているユーザを抽出し、そのユーザのリストと人数をファイルに書き出す。 ファイル名:example001.sh

#! /bin/sh
# example001: システム上でBourne Shell を使っているユーザのリストとその数を取得する

cat /etc/passwd | grep '/bin/sh' | cut -f1 -d":" > bsh_user_list.txt
wc -l bsh_user_list.txt | sed -e "s/^ *\([0-9][0-9]*\) .*/Total: \1/" >> bsh_user_list.txt

スクリプト作成後、実行まで

# ファイルオーナーに実行権を付与
$ chmod u+x example001.sh

# スクリプトを実行
$ ./example001.sh

# 実行結果の確認
$ cat bsh_user_list.txt 
root
Total: 1
$

シェルスクリプトの1行目はshebang と呼ばれる。
sh ./example001.sh で実行した場合は、単なるコメントとして扱われる。
./example001.sh で実行した場合は、/bin/shexample001.shが扱われるよ。というように挙動が変わる。

ただし、システムによって変わるので注意

スクリプトを作るときの注意点

  1. 文字コードと改行コードをスクリプトを実行するシステムに合わせよう
  2. シェルのコマンドが実際にインストールされている場所を確認しよう

シェルスクリプトの実用例

これは手抜きさせていただきます。 ググったら出てくるし、本もあれば環境も目的も違うと思いますので。


以上で、第4章を終わります。
次回、第5章 オンラインマニュアル です。