In article <060708154232.M0101579@osabishi.ics.nara-wu.ac.jp>,
 nide@ics.nara-wu.ac.jp (NIDE Naoyuki) writes:
> In article <squy7v5q1aa.fsf@stellar.co.jp>,
>    manmos@stellar.co.jp writes:
> > ってのが少なくないです。まあ、interuptでファイルを消す処理とかがうっとー
> > しーですけど。
> 
>   その方式だと、一時ファイルの名前を予測されて、先回りしてその名前で任意
> の内容のファイルを作成されてしまう攻撃への対処も考慮しなくちゃならないで
> すね。mktemp(1)あたりがあれば安全かつ便利に一時ファイルを作成できるでしょ

そうなんですよね。まあ、よく使うものはawkスクリプト集directoryを持って
おくんですけど。

> うけど、どこにでもあるわけではないし。なので、私は一時ファイルは、作らず
> に済ませられるなら作らない方針をとっています。どうしても必要な場合は/tmp
> 下に700でmkdirし、そこに一時ファイルを作れば、終了時あるいは割り込まれた
> 際の後始末はrm -rfで一発。
> 
> > ところで、環境変数をセットするという話からは少し飛びますが
> > 
> > . environmentset
> > 
> > とか
> > 
> > source envimenmentset
> > 
> > とかでenvironmentsetのフルパスを取る方法はないですかねぇ。$0はそのシェ
> > ルになってしまうんですよね。
> 
> case "$0" in
> /*)        SCRIPT="$0";;
> *) SCRIPT="`pwd`/$0";;
> esac
> SOURCE="$SCRIPT/environmentset"
> . "$SOURCE"
> 
> として、environmentset側ではSOURCEを参照するというのはどうでしょう。
> 

いえ。

envset
--
echo $0
--
として

(bash)
. envset
だと出力は
bash

になりますし、

(tcsh)
source envset
だと
-tcsh
になって、そのファイル名(フルパスでも相対パスでも)を取れないんです。

実際に、何がやりたいかっていうと、CVSとかで開発していて、複数のbranch 
を複数のdirectoryで展開していて、そのbranchごとのshared libraryのパス
をLD_LIBRARAY_PATHに指定するために、その開発rootにある環境設定スクリプ
トを読んで設定しているのですが、うまくいかないのでちょっと悩んでいるの
です。


-- 
   ___     わしは、山吹色のかすてーらが大好きでのぅ
 [[o o]]            ふぉっふぉっふぉ
   'J'     森下 お代官様 MaNMOS 英夫@ステラクラフト
PGP Finger = CD EA D5 A8 AD B2 FE 7D  02 74 87 52 7C B7 39 37