新城@筑波大学情報です。
ニュースグループは、fj.comp.lang.misc でした。

In article <061222150102.M0119112@bureau.foc.jp>
        ei-news@foc.jp writes:
>  | bash で、関数定義があります。関数の中でシェル変数を使うと、
>  | 実行時の値が使われます。定義時の値を使う方法はないでしょうか。
> $ x="file1 file2"
> $ eval "echo_x() { echo $x; }"
> $ x="file3 file4"
> $ echo_x
> file1 file2
> $ 

なるほど。いいですね。

定義時の値と、実行時の値を混ぜたい時には、面倒ですね。
あと、1行で書かないといけないも、ちょっとね。<<EOFでも
いいけれど。

------------------------------------------------------------
$ x="file1 file2"
$ y="10 20"
$ eval `cat <<EOF
> echo_xy()
> {
> echo "$x,\$y"
> }
> EOF`
bash: syntax error: unexpected end of file
$
------------------------------------------------------------
あれ。うまく行かない。

In article <YAS.06Dec22145124@kirk.is.tsukuba.ac.jp>
        yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes:
> : push3 [ 1 2 + , ] ;
> 3 の即値をコンパイルしているつもりだけど、単に数を書込む(,)
> ではダメかも。immediate のコードを書いてその後に 3 を書込む
> だったかな。

これですが、本を見て思い出しました。

: push3 [ 1 2 + ] literal ; 

literal は、即実行なので、[] の外でも実行されます。
元のコードしては、これの方が近い。

: push3 compile lit [ 1 2 + , ] ; 

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\