fc2ブログ

一時ファイル作成と削除

一時ファイルを作成するとき
他の一時ファイルと名前が被るとエラーをおこす

これを避けるには
mktemp コマンドを使う

mktempコマンドで指定する
X
の数は6つ以上でないとエラーになる
6以上は、Xになる

mktemp コマンドの解説は
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/348mktempdir.html
にわかりやすい解説が載っています

一時ファイルの作成はこれでできるので
次に削除について

削除は
trap コマンドを使います

trap "rm -f 一時ファイルのパス" 0 1 3 15
で削除します

trap コマンドは
1番めの引数
"" で囲んだところに実行するコマンド

2番め以降の引数に
シグナル番号の指定をします

ここで指定したシグナルが発生したときに
コマンドが実行されます

0 1 2 3 15
は定番の書き方で、どんな場合でもコマンドが実行されます

ちなみに、シグナルの意味は
0
正常終了


プロセスの再起動


プロセスに割り込み


プロセスを終了

15
プロセス終了

trap コマンドとプロセスに関しては
シグナルと trap コマンド
を参考にさせていただきました
スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

shell script での && と ||

プログラミングをするときに
java とか C++ では
&&と||は論理演算子になります

&&は And
|| は OR です

しかし、シェルスクリプトでは
||
はリスト演算子になり
直前に実行したコマンドが異常終了や失敗したときに
直後のコマンドを実行します

よく使うのは
ping で生死確認して
反応なし、つまりサーバーダウンなら
メールを送信するというものです

また、&& も意味が違っていて
直前に実行したコマンドが成功した場合に
直後のコマンドを実行します

&&は||の逆になります

テーマ : Linux
ジャンル : コンピュータ

/dev/null 2>&1 について

/dev/null
にいれると、綺麗に消える

/dev/null
は特殊ファイルで、スクリプトのサンプルとかによく登場する

これは、書き込んだデータがすべて捨てられる
という変わったファイル

次に 2>&1 について

この 2 は
標準エラー出力のことで
エラーメッセージのこと

> はリダイレクト
> は上書き、>> は追記

1 は、標準出力のこと

つまり、2>&1 は
標準エラー出力を
標準出力にリダイレクトするということ

/dev/null 2>&1
とすることで
エラーメッセージが表示されなくなる
ということ

テーマ : Linux
ジャンル : コンピュータ

設定ファイルを読み込むスクリプト

設定ファイルを読み込むスクリプトを
while をつかって記述するには

まずは
SETOMGDIR="設定ファイルのパス"

で変数に設定ファイルのパスを設定して


while read path;do

処理内容

done < $SETINGDIR

というように、 < を使って標準入力をリダイレクト

そして、read コマンドを使うことで
設定ファイルを1行ずつ読み込んで
変数 path に代入していく

設定ファイルによくある、コメントアウト

これの対処方法は

if [ -n "`echo $path | grep '^#'`" ]; then
continue
fi

というように
^#で行頭に#がある部分を見つけて
スキップすれば対処できる

-n は
文字列の長さが1文字以上
つまり、空白行は省くので、これで空行もとばせる

テーマ : Linux
ジャンル : コンピュータ

リダイレクトと標準入力

シェルのコマンドは
データを受け入れる入り口として
標準入力

出口には
標準出力がある

標準入力はキーボードからの入力

標準出力は端末への結果表示という感覚でOK

これをリダイレクトという機能をつかうことで
ファイルに記録するようにすることができる

<
は標準入力のリダイレクト

標準入力のリダイレクトの使い道は
設定ファイルの読み込みとかに使う

この機能を使うことで
設定ファイルをつくり、それをもとにバックアップなど
の処理を行うことができる

>> は標準出力のリダイレクト
これはファイルの追記に使う
追記される場所は、ファイルの最終行

>もあるけど、こっちはファイルを上書きするので
つかうときには注意

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック