このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

これだからシェルは…

シェル(主にbash)のスクリプトをたまーに書きます。シェルスクリプトの構文は全然憶えられないし、しょっちゅう間違います。そんなことを何度かこのブログに書いたことがあります。

今日も間違いました。

if [ "$1" = ""]; then
    echo "Do Something"
fi

これはうまく動きません。

空白を1つ足してやる必要があります。

if [ "$1" = "" ]; then
    echo "Do Something"
fi

左ブラケット '[' は、testというコマンドの別名で、[ "$1" = ""] は、次のように分解されます。

  1. 第1引数:"$1"
  2. 第2引数:=
  3. 第3引数:""]

これはうまくなくて、次のようなコマンドラインを必要とするわけです。

  1. 第1引数:"$1"
  2. 第2引数:=
  3. 第3引数:""
  4. 第4引数:]

構文が自然になるように記号'['を使ったのでしょうが、所詮デリミタではないのでこんなことになります。まったくシェルってば…