タグ

scriptとtipsに関するmanabouのブックマーク (5)

  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

  • エンジニアでもターミナル作業ログを残したい!! - 目の前に僕らの道がある

    今まで下記のようにexecで標準出力と標準エラー出力を作業ログに残すという事をしてたんですが、実際に打ったコマンドは出力されないので、ちょっと不便だなーと思ってました。 exec > >(tee --append /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log) 2>&1 ちょっと調べて見るとscriptコマンドを使うとコマンドを含めて出力できることを知りました。 これで作業ログを残すのがはかどる! script --append --flush /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log チームメンバーにこのログをtailさせておけば、画面共有も出来たりもします。 (その用途ならホントはwemuxとか使った方が良いんでしょうけどね。。 tail -F /tmp/$(date +"%Y.%m.%

    エンジニアでもターミナル作業ログを残したい!! - 目の前に僕らの道がある
  • scribedを簡単に起動/停止できてログ出力を便利にできるinit script書いた - たごもりすメモ

    推計全国20人くらいはいると思われるscribed管理者にはわかってもらえると思うけどscribedの起動/停止の制御はいろいろと面倒くさいしログもdaemontoolsとかにお願いしない限りはなんかうざい。そして更にそのうちの10人くらいにはわかってもらえると思うがscribedからHDFSに書き込みをしようと思うと起動ユーザもroot以外にしないといけないんだけど停止コマンドはrootで実行しないといけなくてうあああああああああああああああああああああああああ。 とかいうストレスが限界に達したのでinit scriptを書いた。 tagomoris/scribed_launcher · GitHub これまで 起動 $ su - hadoop $ /usr/bin/nohup scribed /etc/scribed.conf | /usr/local/apache2/bin/rota

    scribedを簡単に起動/停止できてログ出力を便利にできるinit script書いた - たごもりすメモ
  • 類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記

    以前見つけた資料。そういやそんなんあったなと久々に検索して探すのに少し手間取ったのでメモ 言語の比較対応で文法覚えられそうなんで便利じゃないかなと 参照: Big Script: PHP, Perl, Python, Ruby, Smalltalk http://hyperpolyglot.wikidot.com/scripting Small Script: Bash, Tcl, Lua, Javascript, IO http://hyperpolyglot.wikidot.com/small Platform: C, C++, Objective C, Java, C# http://hyperpolyglot.wikidot.com/platform Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp http://hyperpolyglo

    類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記
  • 即興スクリプティング

    「こういうことしたいんですけど、どうすればいいですかねえ」という質問を受けた。 "こういうこと"というのは次のようなことだった。 あるテキストの入力ファイルがあり、中身は次のようなかんじ Mapping JP { ... } Mapping AU { ... } Mapping JP { ... } Mapping XX {という行ではじまり}でおわるのが一つのブロック。 この中で Mapping JP { ... }というブロックをすべて抜きだしたい 「ああ、それならsedで簡単にできますよ。」 こんなかんじで % sed -ne '/^Mapping JP {/,/^}/p' datafile defaultでは出力しない(-nオプション) Mapping JP {ではじまる行から、}ではじまる行までは出力する(/start/,/end/ という範囲で pコマンド) しばらくして… 「

  • 1