タグ

ShellScriptとtipsに関するdecoy2004のブックマーク (4)

  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、**何もせずに終了ステータス0(つまり正常終了)**を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    decoy2004
    decoy2004 2015/02/02
    『リダイレクトでファイルの上書きを防ぐ bash -C』
  • 月末だけcronで処理を実行する - しょぼんメモリ (´・ω・`)

    月末だけcronで処理をさせたい時。 月末(28日~31日)の24時ちょい前に、翌日の日付が 1 の場合に実行すれば良さげ。 下記のような感じでできる。 59 23 28-31 * * /usr/bin/test `date -d tomorrow +\%d` -eq 1 && /path/to/script

    月末だけcronで処理を実行する - しょぼんメモリ (´・ω・`)
    decoy2004
    decoy2004 2014/10/12
    『月末(28日~31日)の24時ちょい前に、翌日の日付が 1 の場合に実行すれば良さげ。』
  • 半角スペースを含むファイルの対応 - 作業ノート

    findコマンドなどでファイルの一覧を取得後、各ファイルに対して処理を行う時、対象ファイルにスペースがあるとそこでパスが区切られ、結果ファイルが存在しない、などのエラーになる。 それを回避するには、スクリプトを実行する際に一時的に区切り文字を変更する。カッコをつけるのは、区切り文字の変更範囲を限定するため。 ( IFS=$'\n' for f in `find ./ -type f -name *.*~`; do rm -f $f done ) 参考 sakatam log: 【bash知恵袋】lsループで、半角スペースが入ったファイル名を正しく処理する

    半角スペースを含むファイルの対応 - 作業ノート
    decoy2004
    decoy2004 2014/09/17
    『スクリプトを実行する際に一時的に区切り文字を変更する。カッコをつけるのは、区切り文字の変更範囲を限定するため。』
  • 使いやすいシェルスクリプトを書く

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

    decoy2004
    decoy2004 2014/05/19
    『--debugオプションで切り替え可能にしておくと,開発中にはとても捗る.』
  • 1