Re: 環境変数にうまく設定できない
たかつです。
\ によるエスケープとかって、shell とか、そこから呼び出した perl/awk/sed
とか、いろんな所で処理されるし、' や " のクオートも剥がれていきますから、
油断すると何が起こってるのかわからなくなりますね。
私は、1 liner の時は、できるだけ \ を使わないようにします。
> | sed s/\\.//g`
だったら、
> | tr -d . `
にするとか。
それとは方向が違いますが、この処理は、全部awkにまかせて、
$CC -v 2>&1 | awk '/gcc version/{gsub("\\.","",$3);print "GCC"$3}'
とすることもできますね。sed なら
$CC -v 2>&1 | sed -e '/gcc version/!d' -e 's/^.*gcc version \([0-9\.]*\).*$/GCC\1/' -e 's/\.//g'
かな。
で、この sed 版を、csh 系のシェルから直接実行しようとした場合には、! が
シェルのヒストリ処理に取られてしまうんですよね。ヒストリに置換されると
エラー表示が意味不明で一瞬、何が起きてるのかすら分からなくなったりして…
PROJECT TEAM DoGA 高津正道 taka2@doga.jp
TBD00456@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
7月7日(金) 今日のマーフィーの法則 [ゴアードの公理]
会議は、議事録を得て、時間を失うイベントだ。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735