${var:-foo} | 変数varが未定義の時fooを返す |
${var:=foo} | 変数varが未定義の時fooを代入する。 |
${var:+foo} | 変数varに値がセットされているときfooを返す |
${var:?puyo} | 変数varが未定義の時"puyo"を出力しexit 1する |
な感じで使えます(ノ゚⊿゚)ノ
${var:-foo} | 変数varが未定義の時fooを返す |
${var:=foo} | 変数varが未定義の時fooを代入する。 |
${var:+foo} | 変数varに値がセットされているときfooを返す |
${var:?puyo} | 変数varが未定義の時"puyo"を出力しexit 1する |
[[ $$ != `pgrep -fo "$0"` ]] echo "$0 is already running" && exit 2
[[ $$ != `pgrep -fo "$0"` ]] && [[ $PPID != `pgrep -fo "$0"` ]] && echo "$0 is already running" && exit 2
$ seq 10 > /tmp/test $ cat /tmp/test 1 2 3 4 5 6 7 8 9 10
$ for i in `seq 10` do head -1 /tmp/test >> /tmp/result;sed -i '1d' /tmp/test & done [1] 28066 [2] 28068 [1]- 終了 sed -i '1d' /tmp/test [3] 28070 [2]- 終了 sed -i '1d' /tmp/test [4] 28072 [3]- 終了 sed -i '1d' /tmp/test [4]+ 終了 sed -i '1d' /tmp/test [1] 28074 [2] 28076 [1]- 終了 sed -i '1d' /tmp/test [2]+ 終了 sed -i '1d' /tmp/test [1] 28078 [2] 28080 [1]- 終了 sed -i '1d' /tmp/test [3] 28082 [2]- 終了 sed -i '1d' /tmp/test [4] 28084 [3]- 終了 sed -i '1d' /tmp/test [4]+ 終了 sed -i '1d' /tmp/test $ cat /tmp/test $ cat /tmp/result 1 1 2 4 4 5 7 7 9 9
$ touch /tmp/test.lock $ for i in `seq 10` > do > flock -x /tmp/test.lock -c "head -1 /tmp/test >> /tmp/result;sed -i '1d' /tmp/test" & > done [1] 28111 [1]+ 終了 sed -i '1d' /tmp/test [1] 28114 [1]+ 終了 sed -i '1d' /tmp/test [1] 28117 [1]+ 終了 sed -i '1d' /tmp/test [1] 28120 [1]+ 終了 sed -i '1d' /tmp/test [1] 28123 [1]+ 終了 sed -i '1d' /tmp/test [1] 28126 [1]+ 終了 sed -i '1d' /tmp/test [1] 28129 [1]+ 終了 sed -i '1d' /tmp/test [1] 28132 [1]+ 終了 sed -i '1d' /tmp/test [1] 28135 [1]+ 終了 sed -i '1d' /tmp/test [1] 28138 [1]+ 終了 sed -i '1d' /tmp/test $ cat /tmp/test $ cat /tmp/result 1 2 3 4 5 6 7 8 9 10
$ hoge="a&b" $ echo "xyz" | sed "s/y/$hoge/" xaybzな感じ。 なので、bashに組み込まれている置換コマンドを併用してやるとうまくいきました
$ echo "xyz" | sed "s/y/${hoge/&/\&}/" xa&bzほらねヾ(*・ω・)シ
echo "hello" | tr '[a-z]' '[b-za-b]'2文字ずらしなら
echo "hello" | tr '[a-z]' '[c-za-c]'てな風にすれば得られる