2004年09月15日

tcsh その弐

http://www.yotta-zetta.com/k-square/movabletype/archives/000102.html
↑ こちらでも書いた tcsh のワナ、に今日もかかりました。
今日のワナはいままでとはちょっと違ってます。

まず最初は
「tcsh では ' (シングルクォート) で囲まれてても変数展開が行われる」
というワナにかかりました。

sed 's/ABC/def'

っていうのは普通に使いますよね?
では、ディレクトリマップを置換するときはどうしますか?

sed 's/\/usr\/local/\/usr/g'

とかって書きますか?
これは読みにくすぎなので、セパレータに ! (エクスクラメーションマーク=ビックリマーク) を
使おうとして

sed 's!/usr/local!/usr!g'

こう書いたら bash とか /bin/sh とかでは実行できますが tcsh ではエラーが出ます。
あれー?と思って調べてみると ! が変数展開されてました (-_-;;
そして、さらに、タブとスペースを置換しようと思って ( タブを TAB で表記します)

sed 's/[ TAB]*//g'

と書いたのにタブがタブとして認識されず、
正常に入力できません。
^V (Ctrl + V) をいれて制御コードにしないと入りません。
あーーーーーーー。
むかつくむかつくむかつく。

私の場合 root での作業で間違いを防ぐために、
editor にコマンドを先に書いておいて、
コピペして一般 user での実行の成功を確認した後、
コピペで root で実際に実行する、というようなことをやるんですが、
# それだけ複雑なこと (パイプ 5 段ぐらいは普通です) をするってことで・・・
それが、コピペでは出来ないってことになります。
はぁ〜〜〜(ため息)

csh 系は インタラクティブな入力には向いてますが、
機械的なのには向いてないというのを、心より実感しました。
結局そういう時は /bin/sh を立ち上げてたり・・・。
今の私の心のよりどころは /bin/sh がどんな UNIX/Linux 系 OS にも入っていることです・・・。

Posted by k-square : 2004年09月15日 23:51 | Linux/UNIX
コメント
コメントする









名前、アドレスを登録しますか?