タグ

ShellScriptとshellscriptに関するdecoy2004のブックマーク (34)

  • シェルの echo -e \b ってどういう時に使うんだ? - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    シェルの echo -e \b ってどういう時に使うんだ? - Qiita
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

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

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
    decoy2004
    decoy2004 2015/02/02
    『リダイレクトでファイルの上書きを防ぐ bash -C』
  • bash によるオプション解析 - Qiita

    すこし記事が長いため、簡単なアウトラインを書いておきます。要点だけ掴みたい場合は、最終項の「まとめ」を読むのがいいかもしれません。 コマンドライン引数の一般的な解析手法 それぞれの特徴 〜 getopt と getopts の違い getopts(メリット・デメリット) getopt(メリット・デメリット) 自前で解析しちゃう(唯一のデメリット) まとめ ============================= コマンドライン引数を処理する一般的な手法として、 getopts getopt shift などで自力で解析 といった具合に、上から順に考えつくかと思います。getopt(3) は UNIX において、コマンドの引数を処理する一般的な C 言語のライブラリ関数です。それを用いて実装されたコマンドが getopt(1) です。Bourne シェル系だと内部関数になりますが、同系統の

    bash によるオプション解析 - Qiita
    decoy2004
    decoy2004 2014/10/14
    『getopt には重大な落とし穴があります。それは、スペースや特殊文字が引数に含まれていた場合、正しく処理できないということです。』
  • 月末だけ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 の場合に実行すれば良さげ。』
  • Chef-Soloを100倍楽しく使うためのrsoloというツールを作りました。 · DQNEO日記

    "rsolo"というツールを作りました。一言でいうと "knife-soloのシェルスクリプト版"です。 https://github.com/DQNEO/rsolo bashで書いた1枚スクリプトなのでインストールが超簡単です。 rubyなしで動きます。 なので、 「 knife-soloをインストールするためのGemfileを書くためのbundlerをインストールするためのgemをインストールするためのrubyをインストールするためのrbenvをインストーするための、えーと人生ってなんだっけ」 という苦行からあなたを開放してくれます。 Let's not do yakshaving !! インストールが超簡単! ダウンロードして実行権限をつけてパスを通すだけ! $ curl -sO https://raw.githubusercontent.com/DQNEO/rsolo/master

    decoy2004
    decoy2004 2014/09/27
    『rubyなしで動きます。なので、 「 knife-soloをインストールするためのGemfileを書くためのbundlerをインストールするためのgemをインストールするためのrubyをインストールするためのrbenvを...」から解放』
  • 半角スペースを含むファイルの対応 - 作業ノート

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

    半角スペースを含むファイルの対応 - 作業ノート
    decoy2004
    decoy2004 2014/09/17
    『スクリプトを実行する際に一時的に区切り文字を変更する。カッコをつけるのは、区切り文字の変更範囲を限定するため。』
  • 備忘:UNIXコマンドの小ネタ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    備忘:UNIXコマンドの小ネタ - Qiita
    decoy2004
    decoy2004 2014/08/05
    『-f オプションを使うとログのローテートなどでファイル名が変更された場合に追跡が終わってしまう。 --follow=nameにしておくと、ファイルが一旦消えても同名のファイルが再出現した場合に追跡を再開してくれる』
  • 続・ラフなラボ – 久々に第10回記念シェル芸勉強会行ってきたんでまとめとか

    ブログ更新自体がかなりお久しぶりです。 何とか生きてました。身の回りの環境が最近がらりと変わったわけですが、 そのへんはまた近々別のエントリにでもしたいと思います。 今回は久々にシェル芸勉強会に行ってきたのでそのまとめを。 といいつつも、実際の会場の様子は以下の Togetter を見てもらったほうが早いかと。 第10回記念シェル芸勉強会@シェルリアンタワー&第28回場所が未定だったが決まったぞ定例会 - Togetterまとめ 過去のシェル芸勉強会ブログではいちいち自分の Tweet 拾って引用したりと面倒な真似してましたが、 今回からは実際に自分で実行したコマンドたちは gist にまとめてみました。 最終問題についてはお察しください。 収穫とか せっかくなので今回の収穫とか sed 's/./&\n/g' より grep -o . が便利。 会場でたちまち grep ブームが発生して

    decoy2004
    decoy2004 2014/08/04
    『grep -q で結果を表示しない。』
  • シェルスクリプトのオプション設計ガイドライン - Qiita

    僕はコマンドラインで使うシェルスクリプトを書くことがけっこうあるんだけど、インターフェイスというか呼び出し方はとても大事だと思ってるので、そこにわりと時間をかけて考えるようにしてる。実装はいつでも変更できるけど呼び出し方を変えた時は利用者にも変更を強いるので、できれば最初から良い設計で作りたいと思っている。 そこで、僕がシェルスクリプトのオプションとか引数とかの仕様を決める上で注意していることをまとめてみた。シェルスクリプトや、その他コマンドラインのツールを作るときに参考にしてほしい。 シェルの種類は bash や zsh を想定してるけど、実装によらない話なのでどんなシェルでも使えると思う。 エラーの時に Usage (使い方ヘルプメッセージ)を表示するのはやめる エラーになった時に Usage (使い方ヘルプメッセージ) を表示するスクリプトがあるけど、やめたほうがいいと思う。例えばこ

    シェルスクリプトのオプション設計ガイドライン - Qiita
    decoy2004
    decoy2004 2014/07/25
    『オプションでない引数はオプションでも指定できるようにする』
  • 今更ながら抑えておきたいシェルスクリプト用チートシート - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    今更ながら抑えておきたいシェルスクリプト用チートシート - Qiita
  • Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Bashで変数を大文字小文字変換(uppercase/lowercase)する - Qiita
  • Talpa memorandum

    橘玲の『「読まなくてもいい」の読書案内』を読んだので、感想とメモをまとめておく。 この、タイトルは『「読まなくてもいい」の読書案内』だが、実際には「読まなくていい」はほとんど紹介されていない。紹介されているのは、当たり前の話かもしれないが読むべきだ。他の読書案内と異なっているのは、”こういうは読まなくて良い”と、ばっさり切り捨てているところ。読むべきか・読まなくてもよいかの基準は、20世紀後半に爆発的に進歩した科学研究の成果に置いている。著者は、この時期に起きた科学研究の大幅な進歩を”知のビッグバン”、”知のパラダイム転換”と呼び、これ以前に書かれたは(とりあえず)読む必要がないと言い切る。古いパラダイムで書かれたは捨てて、新しいパラダイムで書かれたを読もうという話だ。ちょっと乱暴な分け方ではあるが、1980年代に大学生だった私には案外納得できるものだった。学生時代に最

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

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

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