[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00139] ${} について



友國です。

仕事でいろいろやっていて気がついたのですが、
${} の処理が以下のようになっています。

(1)
fdsh-2.00a$ eval echo "\"${hoge:-'} {'}\""
'} {'

fdsh-2.03$ eval echo "\"${hoge:-'} {'}\""
'} {'

bash-2.05a$ eval echo "\"${hoge:-'} {'}\""
'} {'

zsh-4.06a$ eval echo "\"${hoge:-'} {'}\""
' {'}

ash-0.3.8$ eval echo "\"${hoge:-'} {'}\""
' {'}

/bin/sh(sparc solaris7)$ eval echo "\"${hoge:-'} {'}\""
' {'}


(2)
fdsh-2.00a$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge ${fuga}${piyo}hoge_fuga_piyo

fdsh-2.03$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge \\\\hoge_fuga_piyo

bash-2.05a$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge ${fuga${piyo}hoge_fuga_piyo}

zsh-4.06a$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge ${fuga${piyo}hoge_fuga_piyo}

ash-0.3.8$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge ${fuga${piyo}hoge_fuga_piyo}

/bin/sh(sparc solaris7)$ eval echo "\"\${hoge:-hoge \\\${fuga}\\\${piyo}hoge_fuga_piyo}\""
hoge ${fuga${piyo}hoge_fuga_piyo}


(3)
fdsh-2.00a$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""
hoge ${fuga\}${piyo\}hoge_fuga_piyo

fdsh-2.03$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""
"${hoge:-hoge \\${fuga\}\\${piyo\}hoge_fuga_piyo}": bad substitution

bash-2.05a$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""
hoge ${fuga\}${piyo\}hoge_fuga_piyo

zsh-4.06a$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""  
hoge ${fuga}${piyo}hoge_fuga_piyo

ash-0.3.8$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""
hoge ${fuga\}${piyo\}hoge_fuga_piyo

/bin/sh(sparc solaris7)$ eval echo "\"\${hoge:-hoge \\\${fuga\}\\\${piyo\}hoge_fuga_piyo}\""
hoge ${fuga\}${piyo\}hoge_fuga_piyo


上記の結果を得ましたが、 FD-sh の Bug なのかどうか、
よく分かっておりません。;-)
ですが、上記の shell のうち、間違っている(意図していない
動作をしている)のがあるのは確かだと思いますので、ご報告
致しました。


で、何をしていたのか、といいますと、 Solaris7 の /bin/sh で
eval echo "\"\${hoge:-...
として
hoge ${fuga}${piyo}hoge_fuga_piyo
が返ってくるようにしたいと思って、いろいろやっていたのでした。

上の例でいきますと (2) の fdsh-2.00a や (3) の zsh-4.06 が
望みの結果となりますが、 /bin/sh ではうまくいきませんでした。
# 実はこっちの方が知りたかったりしていますが。(^^;

  .~. ----------------------------------------
  /V\     友國 哲男 (TOMOKUNI Tetsuo)
 // \\    E-mail: tomokuni@my.email.ne.jp
/(   )\           tomokuni@netfort.gr.jp
 ^`~'^    http://www.netfort.gr.jp/~tomokuni/