- ベストアンサー
「.」とは
「.」の用途を教えてください。 . filenameとしたらどうなるのでしょうか? また、eval filenameとしたらどうなるんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> \$$って、どういう意味なんでしょうか? \$ と $x です。 入力された変数名を展開するのが $x 。それの頭に $ を一つくっつけたいんですが $$x とやってしまうと、$$ に意味があって、このシェルのプロセス番号を 表してしまいます。 なので、$ をエスケープして \$ 、それに続けて $x です。 > 何度もすいません。 質問サイトなので、質問することに負い目を感じることはありません。 答えたくなくなれば、答えなければ良いだけなので :-)
その他の回答 (2)
- a-kuma
- ベストアンサー率50% (1122/2211)
> 出来ればevalが便利そうに思えるscriptの例を簡単でいいので作成してくれると有難いのですが・・・ 実は、さっきの回答を書きながら考えていたのですが、なかなか思いつかなくて (^^; eval じゃなくてはできない、ということで、ひとつ思いついたのは、シェルの 変数展開などを可変にしたい場合です。 例えば、 read x echo \$$x eval echo \$$x 設定済みの環境変数なんかを入力してみてください。 $ sh aaa HOME ← これは入力です $HOME /home/a-kuma ← 私のホームディレクトリ eval は、使うと便利、というよりも、使わないと出来ない処理がある、ってな感じです。 シェルスクリプトは結構書きますが、めったに eval を使うことはありません。
- a-kuma
- ベストアンサー率50% (1122/2211)
> . filenameとしたらどうなるのでしょうか? sh系のシェルの場合、filename で示されるファイルをシェルスクリプトだと思って 読込んで処理をします。 例えば、シェルスクリプトから、共通的に利用できるサブルーチンをこれまた シェルスクリプトで用意して、それを呼び出すように使えます。 sh filename とやるのとの違いは、sh filename が別プロセスを起動するのに対し、 . filename は、ひとつのプロセスで処理されます。 そのため、そのスクリプトでシェル変数や環境変数を変更した場合、呼出し元に影響を 与えます。 > また、eval filenameとしたらどうなるんでしょうか? eval は、その後に続く引数をシェルに対する引数だと評価して実行します。 eval filename であれば、filename で示されるファイルが実行可能であれば、 ただそれを実行するだけです。 # これだけじゃ、何のことかわからないかな?
補足
どうもすみません。こちらの説明が不十分だったみたいで・・・出来ればevalが便利そうに思えるscriptの例を簡単でいいので作成してくれると有難いのですが・・・
補足
何度もすいません。 \$$って、どういう意味なんでしょうか?