- ベストアンサー
[UNIXコマンド] eval教えて下さい。
evalって、結局なんのためにあって、どのように使うと便利なのか良く分かりませんでした。(一応manでは見てみましたが・・・) たしか見た例では eval `$path -uniq` ってあったと思います。 あわせて説明して頂けるとさいわです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
仕様の違うシェルはあまりないと思いますが、一般的なシェルでは eval echo $"$baz" のevalを省略すると、 echo $"PATH" の意味になり $PATH という文字列が表示されるだけで、PATH変数の内容は表示されません。 ぜひためしてみてください。
その他の回答 (2)
- 1Yen
- ベストアンサー率28% (11/39)
shell スクリプトを勉強するには rc ファイルを見ると面白いと思います。 私が初めて eval と出会ったのは FreeBSD の rc.network でした(^^;;;;;
お礼
有り難うございました。
- kaitou-man
- ベストアンサー率60% (86/141)
たとえば、文字列を組み合わせて変数名を作り出し、その変数を使いたいときに利用できます。 foo=PA bar=TH baz=$foo$bar eval echo $"$baz" eval "$foo${bar}2"=abc echo $PATH2 という例でわかるでしょうか? ご質問の例は不正確なようでわかりません。このままではエラーです。
補足
お返事ありがとう御座います。 私が書いた例ですが、うる覚えで書いたので 気にしないで下さい。すいません・・・ で、お答え頂いた中からさらに質問させてください。 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" としただけではダメなのでしょうか? お手数ですが、また宜しくお願いします
お礼
お礼遅くなりましたが、ありがとう御座いました。 自分でやってみてなんとなくですが分かりました。