わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

${=変数}

またまた,Rubyのビルドがうまくいかなくなりました.どうしよう.…
エラーメッセージによると,引っかかったのはconfigureコマンドのところです.ruby-snapshot-installの定義では,以前

    $ECHO ./configure --prefix=$HOME/Lib/$instdir

としていたのを

    $ECHO ./configure --prefix=$HOME/Lib/$instdir $configopt

に変更していて,ここが原因っぽいです.
Cygwinなら「--with-opt-dir=/usr/local」,Linuxなら「--enable-pthread」が指定されるはず…なのですがもしかしたら,「半角空白--with-opt-dir=/usr/local」,「半角空白--enable-pthread」が,configureコマンドのオプションになっているのかもしれません.
その空白を取り除くというよりは,文字列をコマンド実行時の引数にする際に,空白で分けて別個の引数にできればいいわけです.
man zshexpnを実行し,調べていくと,見つかりました*1

${=spec}
       Perform  word splitting using the rules for SH_WORD_SPLIT during
       the evaluation of spec, but regardless of whether the  parameter
       appears  in  double  quotes; if the `=' is doubled, turn it off.
       This forces parameter expansions to be split into separate words
       before  substitution, using IFS as a delimiter.  This is done by
       default in most other shells.

       Note that splitting is applied to word in the  assignment  forms
       of  spec  before  the  assignment  to  name  is performed.  This
       affects the result of array assignments with the A flag.

シェルで,確認しておきましょう.

$ param="a.rb b.rb c.rb"
$ ruby -e "puts ARGV" ${=param}
a.rb
b.rb
c.rb
$ ruby -e "puts ARGV" $param
a.rb b.rb c.rb

それでは

    $ECHO ./configure --prefix=$HOME/Lib/$instdir $configopt

    $ECHO ./configure --prefix=$HOME/Lib/$instdir ${=configopt}

に変更し,~/.zshrcを読み直して,Rubyのビルド…うまくいきました!