シェル変数の空文字チェックについて
※最新の記事は下記となります。そちらをご覧ください。
シェルスクリプトの空文字チェック改++ - とあるSEの学習日記
最近シェルスクリプトを書けと言われていろいろ試行錯誤していまして、
使えそうな情報をまとめておきます。
シェルでパラメータの空文字チェックを行う際、今までは
if文を使ってこんな感じでやってました。
#=========================================
1 #! /bin/sh
2
3 if [ "${aaaa}" = "" ] ;
4 then echo "空文字です"
5 fi
6 if [ -z "${aaaa}" ];
7 then echo "-zです"
8 fi
9 if [ ! -n "${aaaa}" ];
10 then echo "-nです"
11fi
>空文字です
>-zです
>-nです
#=========================================
しかし、if文使わないでもやりようはあるんですね~
#=========================================
echo ${aaaa:?"空文字です"}
#=========================================
こうすると変数aaaaに値が入っていない場合は、標準エラー出力に?以降のメッセージ
が出力されます。
これができれば他のプログラムからのパラメータのチェックも簡単にできそうです。
☆おまけ
パラメータとして受け渡された文字列を加工する方法
aaa=2012/12/14としてbbb=20121214としたい場合
#=========================================
bbb=`echo $aaa | tr -d '/'`
#=========================================
で可能でした。ファイルから読みだす場合は
#=========================================
sed -s 's|/||g' aaa.txt
#=========================================
とかですかね。
もっとシェルスクリプトと友達になりたいな。
土日に勉強しよう!
※参考
http://www.atmarkit.co.jp/flinux/rensai/shell05/parameter.html