• ベストアンサー

[UNIXコマンド] eval教えて下さい。

evalって、結局なんのためにあって、どのように使うと便利なのか良く分かりませんでした。(一応manでは見てみましたが・・・) たしか見た例では eval `$path -uniq` ってあったと思います。 あわせて説明して頂けるとさいわです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

仕様の違うシェルはあまりないと思いますが、一般的なシェルでは eval echo $"$baz" のevalを省略すると、 echo $"PATH" の意味になり $PATH という文字列が表示されるだけで、PATH変数の内容は表示されません。 ぜひためしてみてください。

lts107
質問者

お礼

お礼遅くなりましたが、ありがとう御座いました。 自分でやってみてなんとなくですが分かりました。

その他の回答 (2)

  • 1Yen
  • ベストアンサー率28% (11/39)
回答No.3

shell スクリプトを勉強するには rc ファイルを見ると面白いと思います。 私が初めて eval と出会ったのは FreeBSD の rc.network でした(^^;;;;;

参考URL:
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/etc/Attic/rc.network?rev=1.74.2.43&content-type=text/x-cvsweb-markup&hideat
lts107
質問者

お礼

有り難うございました。

回答No.1

たとえば、文字列を組み合わせて変数名を作り出し、その変数を使いたいときに利用できます。 foo=PA bar=TH baz=$foo$bar eval echo $"$baz" eval "$foo${bar}2"=abc echo $PATH2 という例でわかるでしょうか? ご質問の例は不正確なようでわかりません。このままではエラーです。

lts107
質問者

補足

お返事ありがとう御座います。 私が書いた例ですが、うる覚えで書いたので 気にしないで下さい。すいません・・・ で、お答え頂いた中からさらに質問させてください。 1.foo=PA 2.bar=TH 3.baz=$foo$bar 4.eval echo $"$baz" 5.eval "$foo${bar}2"=abc 6.echo $PATH2 3行目までは理解できます。 4行目を抜いて、5,6行目を実行すると 結果は"abc"が表示されると推測されます。 4行目の意味がよく分かりません。 逆に4行目を %echo $"$baz" としただけではダメなのでしょうか? お手数ですが、また宜しくお願いします

関連するQ&A