タグ

linuxとshに関するlesamoureusesのブックマーク (3)

  • ウノウラボ Unoh Labs: シェル(bash)スクリプトを書くときのTips

    尾藤正人(a.k.a BTO)です UNIXを使う時にはシェルスクリプトをよく使います。 ちょっとしたコマンドを実行するには、シェルスクリプトは非常に便利です。 今回はシェルスクリプトを書くときに覚えておいた方が便利なTipsを紹介します。 非互換性 ここで紹介するものは基的にbashで動作するものになります。 伝統的なBourne Shellでは動作しないことが多くあると思います。 しかしながら最近はbashがメインで使われることが多いので、"だいだいの環境で動くからおk"ぐらいのノリで使ってもらえればと思います。 $(...) コマンドを"$(", ")"で囲むと実行結果をコマンドラインに代入してくれます。 一見これは"`"(バッククオート)と同じに見えますが、"$()"にはネストができるという利点があります。 例えばシェルスクリプト自身の絶対パスを取得するのは次のようにで

    lesamoureuses
    lesamoureuses 2008/09/03
    $()は使う機会なかったな
  • ウノウラボ Unoh Labs: シェルスクリプトでプログラミング

    パワプロよりパワポケが好きなbokkoです。でも最近はPSPで遊んでいます。 今回はシェルスクリプトやコマンドラインでよく使うプログラムとその使用例の紹介です。 シェルスクリプトでは既にあるコマンドを組み合わせてプログラムを書きます。しかし、シェルスクリプトは分岐や繰り返しといった制御構造を持ち、関数や変数を扱ったり、四則演算を行うこともできます。 演算 シェルスクリプトで演算を行うにはexprを使います。 add.sh #!/bin/sh A=1 B=2 C=`expr ${A} + ${B}` echo ${C} ↑のadd.shを実行すると、 $ sh test.sh 3 $ と表示されます。↓のようにexprの引数をスペースで区切らず渡してしまうと、単に1+2と表示されてしまいますので、注意しましょう。 #!/bin/sh A=1 B=2 C=`expr ${A}+${B}` ec

  • 制御文で道案内

    スクリプトやプログラム言語で、基となるのは制御文です。多くの言語では条件分岐などのためにifやwhileが使われています。制御文とはまさにプログラム中の「道先案内人」です。 条件分岐のバリエーション いろいろなコマンドを連続して実行していく場合、そのコマンドが使われる局面で結果が変わってきます。その結果により処理の仕方を変えるものです。それがバッチ系プログラムの基ともいえるでしょう。少しでもプログラムを組んだことのある人なら、こうした動きは体得していると思います。bashの場合はどうでしょうか? 実はbashの条件分岐にはいろいろバリエーションがあるのですが、代表的なものをとりあげてみましょう。 if文とcase文 以下の例は、すべて実際に動いたものをコピーして貼り付けていますので、そのまま実行することができるはずです。一度自分の環境でもコマンドを作成して実行してみるとよいでしょう。

    制御文で道案内
    lesamoureuses
    lesamoureuses 2006/09/01
    -hでusageを出す
  • 1