読者です 読者をやめる 読者になる 読者になる

はむはむエンジニアぶろぐ

このブログのコンセプトは"ハッキングの為なら愛する家族を傷つけることをいとわない" 自分にとってエンジニアリングは "手段ではなく生きる目的" である

【シェルスクリプト】if文をワンライナーで書く方法

シェルスクリプト

f:id:secret_hamuhamu:20151010192133j:plain
シェルスクリプトで、環境構築スクリプトをかいたりしますよね?
よくあるのが、dotfilesディレクトリが存在しなければ git clone する。

当然、if文使うんですけどシェルスクリプトならワンライナーで書けます。
そう、シェルスクリプトならね。

ソースコード

ノーワンライナー

#!/bin/sh

if [[ ! -e dotfiles ]]; then
    git clone git@github.com:hamuhamu/dotfiles.git
fi

ワンライナー

#!/bin/sh

[[ -e dotfiles ]] || git clone git@github.com:hamuhamu/dotfiles.git

[[ -e dotfiles ]] を評価してディレクトリが存在すれば真となり git clone は実行されません。
ディレクトリが存在しなければ偽となり、次の式を評価するため git clone が実行されます。

おすすめの本

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

  • 作者: ブルースブリン,Bruce Blinn,山下哲典
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2003/02
  • メディア: 単行本
  • 購入: 18人 クリック: 331回
  • この商品を含むブログ (62件) を見る

[改訂新版] シェルスクリプト基本リファレンス  ??#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

[改訂新版] シェルスクリプト基本リファレンス  ??#!/bin/shで、ここまでできる (WEB+DB PRESS plus)

シェルプログラミング実用テクニック

シェルプログラミング実用テクニック