シェル/bash

Last-modified: 2008-10-09 (木) 00:11:56

シェルの設定ファイル

環境変数などをログイン時に自動的に読み込むように、いくつかのファイルを設定することが出来る。
ログイン時の動作

  1. シェルは、/etc/profileを読み込む
  2. シェルは、~/.bash_profileを読み込む
    1. /.bash_profileがないとき、~/.bash_loginを読み込む。これもなければ、~/.profileを読み込む。

/etc/profile
全てのユーザに共通の設定を記述する場合に使うのが一般的。

/.bash_profile

各ユーザーごとに読み込む設定を書くのに使う。

シェルの書き方メモ

  • 「;」(セミコロン)・・・コマンドを連続実行できる
  • while構文
while 条件
do
   繰り返し実行するコマンド
done
while 条件 do 繰り返し実行するコマンド done //1行で。

サンプル

[サンプル1]
指定した回数LOOPCOUNT分繰り返し、1回実行するごとにINTERVAL秒スリープするシェルスクリプト。
第1引数にはプロセスIDを指定し、プロセスに対して何らかの処理を行います(ここでは省略)。

実行方法: . sample1.sh {PROCESSID} {INTERVAL} {LOOPCOUNT}
sample1.sh

if [ $# -ne 3 ]; then
   echo "引数が間違っています"
   echo "usage: sample1.sh {PROCESSID} {INTERVAL} {LOOPCOUNT}"
else
   echo "######################"
   echo "PROCESSID: $1"
   echo "INTERVAL : $2"
   echo "LOOPCOUNT: $3"
   echo "######################"
   loopcount=0
   while [ ${loopcount} -lt $3 ];
   do
      let loopcount=loopcount+1
      timestamp=`date +%k:%M:%S`
      echo "COUNT=${loopcount}, ${timestamp}"
      何らかの処理 $1
      sleep $2
   done
fi

実行例: > . sample1.sh 2308 5 3
実行結果:
######################
PROCESSID: 2308
INTERVAL : 5
LOOPCOUNT: 3
######################
COUNT=1, 10:10:05
COUNT=2, 10:10:10
COUNT=3, 10:10:15