• ベストアンサー

「.」とは

「.」の用途を教えてください。 . filenameとしたらどうなるのでしょうか?  また、eval filenameとしたらどうなるんでしょうか?

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> \$$って、どういう意味なんでしょうか? \$ と $x です。 入力された変数名を展開するのが $x 。それの頭に $ を一つくっつけたいんですが $$x とやってしまうと、$$ に意味があって、このシェルのプロセス番号を 表してしまいます。 なので、$ をエスケープして \$ 、それに続けて $x です。 > 何度もすいません。 質問サイトなので、質問することに負い目を感じることはありません。 答えたくなくなれば、答えなければ良いだけなので :-)

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.2

> 出来ればevalが便利そうに思えるscriptの例を簡単でいいので作成してくれると有難いのですが・・・ 実は、さっきの回答を書きながら考えていたのですが、なかなか思いつかなくて (^^; eval じゃなくてはできない、ということで、ひとつ思いついたのは、シェルの 変数展開などを可変にしたい場合です。 例えば、 read x echo \$$x eval echo \$$x 設定済みの環境変数なんかを入力してみてください。 $ sh aaa HOME      ← これは入力です $HOME /home/a-kuma  ← 私のホームディレクトリ eval は、使うと便利、というよりも、使わないと出来ない処理がある、ってな感じです。 シェルスクリプトは結構書きますが、めったに eval を使うことはありません。

maxzuki
質問者

補足

何度もすいません。 \$$って、どういう意味なんでしょうか?

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> . filenameとしたらどうなるのでしょうか? sh系のシェルの場合、filename で示されるファイルをシェルスクリプトだと思って 読込んで処理をします。 例えば、シェルスクリプトから、共通的に利用できるサブルーチンをこれまた シェルスクリプトで用意して、それを呼び出すように使えます。 sh filename とやるのとの違いは、sh filename が別プロセスを起動するのに対し、 . filename は、ひとつのプロセスで処理されます。 そのため、そのスクリプトでシェル変数や環境変数を変更した場合、呼出し元に影響を 与えます。 > また、eval filenameとしたらどうなるんでしょうか? eval は、その後に続く引数をシェルに対する引数だと評価して実行します。 eval filename であれば、filename で示されるファイルが実行可能であれば、 ただそれを実行するだけです。 # これだけじゃ、何のことかわからないかな?

maxzuki
質問者

補足

どうもすみません。こちらの説明が不十分だったみたいで・・・出来ればevalが便利そうに思えるscriptの例を簡単でいいので作成してくれると有難いのですが・・・

関連するQ&A