以下のようなソースコードがある場合、sedコマンドをパイプでつないでいるせいか、
1つ目のsedでsedのセパレータ("/")と置換文字列が同じでエラーが発生していても、後のsedが正常
終了する為、障害を検知出来ません。
順番を入れ替えれば良いというご指摘も頂くかも知れませんが、以下はサンプルで、
順番を入れ替えたとしても、最後のsedが障害となるかは分かりません。
(結局最後のsed以外がエラーになれば検知出来ないと思います)
shell
1test1="kono url ha ok desu." 2test2="http://www.test.co.jp" 3test3=`echo $test1 | sed -e "s/url/$test2/g" | sed -e "s/kono/xxx/g"` 4if [ $? -ne 0 ]; then 5 echo 不正な文字で置換しようとした 6 exit 1 7fi
そこで、以下のような方法も考えてみましたが毎回sedする度にechoすると、パイプで繋げるより負荷が掛かりそうな気がしています。(毎度ifもどうかと…)
shell
1test1="kono url ha ok desu." 2test2="http://www.test.co.jp" 3test3=`echo $test1 | sed -e "s/url/$test2/g"` 4if [ $? -ne 0 ]; then 5 echo 不正な文字で置換しようとした 6 exit 1 7fi 8test4=`echo $test3 | sed -e "s/kono/xxx/g"` 9if [ $? -ne 0 ]; then 10 echo 不正な文字で置換しようとした 11 exit 1 12fi
そこで、もっときれいで分かりやすく、コストが掛からない方法はないでしょうか??
回答2件
あなたの回答
tips
プレビュー