百日半狂乱

Shut the fuck up and write some code!!

shellscript

Linuxターミナル、コマンドtips その5: gnuplotの基本的な使い方と勉強会を開く時に期待してはいけないこと

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.作成の経緯はその1の冒頭および注釈に書きました. 今回は、Linuxターミナル、コマンドtipsと銘打…

Linuxターミナル、コマンドtips その4: シェルスクリプトのハマリ所とデバッグ手法

このtipsはこれからLinuxを使っていく必要がある人、特に端末操作に苦戦している人、もしくは端末操作に対して嫌悪感すら抱いている人に向けて書いたものです.作成の経緯はその1の冒頭および注釈に書きました. 前回の話題 コマンドや自作プログラムの入出力…

awkで0~1の乱数を生成する

シェルスクリプトを書いていて、ふと0~1の乱数をお手軽に生成したくなったので、実験結果をメモ. awkには組み込みでrand()という関数が用意されていて、例えば以下のような形で呼び出すたびに0~1の範囲の乱数を生成してくれる. awk 'BEGIN{ srand('"$RANDO…

googletestを/usr/local/にインストールするシェルスクリプト

発声練習:Intel C/C++ を用いた Google Test環境を準備するを参考にしてgoogletestのセットアップを行うシェルスクリプトを書いた. ホームディレクトリにソースを落としてきて、コンパイルした後に/usr/local/に必要なヘッダとライブラリをcpしているだけ.…

シェル変数のデフォルト値を設定する、未初期化時にエラーメッセージを出力してスクリプトを強制終了する

二十五日半狂乱4日目(の分)の記事 前回引用したkilltreeスクリプトの中に以下のようなコードがあった. local _sig=${2:-TERM} この${2:-TERM}は、変数展開されたタイミングで、$2に値が設定されていない場合にTERMを出力する. すなわち、結果的に$2が空だ…

SIGSTOPで停止したプロセスにSIGTERMを送ってもプロセスが死なない?

二十五日半狂乱3日目の記事 もはや、Advent Calendarでもなんでもなくなっているけど、そんな悲しい現実はさておいて. 前回の話がstackoverflowですでに議論され尽くされていて、解答の一つに自分のスクリプト似た構造のシェルスクリプトがあった. #!/bin…

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェルスクリプト

二十五日半狂乱、2日目の記事. 実行中のプロセスをkillしたいが、対象のプロセスをkillすると子プロセスがゾンビ化しちゃうからプロセスツリーを丸ごとkillしたくなった. どうせならkillコマンドっぽくプロセスIDで指定して、指定したプロセスをrootとして…

awkで合計とか平均とか算出する、ついでにgnuplotでグラフ化してみる

例えばイベントの実行時間を記録したログファイルから、個々のイベントの平均実行時間を算出したいとする. 例えば以下のようなawkを使って統計を取ることができる. ログファイルは以下のような感じのものを想定. #event exec_time foo 10 hoge 8.431 fuga…