#author("2017-09-20T23:05:05+09:00","","") #author("2017-09-20T23:06:02+09:00","","") #navi(../) * 変数に値が設定されていたら変更せず、設定されていなければ初期値を設定する方法 [#l5acd783] bashシェルでは、以下に記述する方法で、変数を初期化することができます。~ ifを使う必要がなくスマートにシェルスクリプトを記述できると思います。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * 変数の初期化・値がある場合は変更なし・値がない場合は初期値を設定する実行例 [#g611df0f] if then else による変数初期化を簡単に書くことができます。 **例:変数vに値がある場合は変化なし、変数vが空の場合は初期値(左辺値)を設定 [#zb990f80] -変数vが空の場合、vにsakuraが代入される例 $ unset -v v $ if [ -z "$v" ]; then > v=sakura > fi $ echo $v sakura #br -変数vに値がある場合は、変化なし $ v=tsubaki $ if [ -z "$v" ]; then > v=sakura > fi $ echo $v tsubaki これを以下のように記述することができます。 v=${v:-tsubaki} 実際に実行してみます。 $ unset -v v $ v=${v:-tsubaki} $ echo $v tsubaki $ v=sakura $ v=${v:-tsubaki} $ echo $v sakura したがって、以下のような構文になります。 初期化確認変数=${初期化確認変数:-左辺の変数が空の場合に設定する値} **例:変数sに値がある場合は、変数sの値を変数vに代入する実行例になります。 [#mc3af716] - 変数sが値なしのため、v=tsubakiが実行される $ unset -v s ; unset -v v $ if [ -z $s ]; then > v=tsuaki > else > v=$s > fi $ echo $v tsuaki #br - 変数sにsakuraが設定されているため、v=$sが実行される $ unset -v v ; s=sakura $ if [ -z $s ]; then > v=tsuaki > else > v=$s > fi $ echo $v sakura これを以下のように記述することができます。 v=${s:-tsubaki} 実際に実行してみます。 -変数sが設定されていない場合 $ unset -v s; unset -v v $ v=${s:-tsubaki} $ echo $v tsubaki #br -変数sにsakuraが設定されている場合 $ unset -v s; unset -v v $ s=sakura $ v=${s:-tsubaki} $ echo $v sakura したがって、以下のような構文になります。 変数=${値があった場合代入する変数:-左辺の変数が空の場合に設定する値} 以上、bashの便利な機能を使用して変数の初期化をする方法の紹介でした。 #htmlinsertpcsp(linux_btm_top.html,linux-sp.html) #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)