プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (3件)

> \$$って、どういう意味なんでしょうか?



\$ と $x です。

入力された変数名を展開するのが $x 。それの頭に $ を一つくっつけたいんですが
$$x とやってしまうと、$$ に意味があって、このシェルのプロセス番号を
表してしまいます。

なので、$ をエスケープして \$ 、それに続けて $x です。

> 何度もすいません。

質問サイトなので、質問することに負い目を感じることはありません。
答えたくなくなれば、答えなければ良いだけなので :-)
    • good
    • 0

> 出来ればevalが便利そうに思えるscriptの例を簡単でいいので作成してくれると有難いのですが・・・



実は、さっきの回答を書きながら考えていたのですが、なかなか思いつかなくて (^^;

eval じゃなくてはできない、ということで、ひとつ思いついたのは、シェルの
変数展開などを可変にしたい場合です。

例えば、

read x
echo \$$x
eval echo \$$x

設定済みの環境変数なんかを入力してみてください。

$ sh aaa
HOME      ← これは入力です
$HOME
/home/a-kuma  ← 私のホームディレクトリ


eval は、使うと便利、というよりも、使わないと出来ない処理がある、ってな感じです。
シェルスクリプトは結構書きますが、めったに eval を使うことはありません。

この回答への補足

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

補足日時:2002/01/09 20:24
    • good
    • 0

> . filenameとしたらどうなるのでしょうか?



sh系のシェルの場合、filename で示されるファイルをシェルスクリプトだと思って
読込んで処理をします。

例えば、シェルスクリプトから、共通的に利用できるサブルーチンをこれまた
シェルスクリプトで用意して、それを呼び出すように使えます。

sh filename とやるのとの違いは、sh filename が別プロセスを起動するのに対し、
. filename は、ひとつのプロセスで処理されます。

そのため、そのスクリプトでシェル変数や環境変数を変更した場合、呼出し元に影響を
与えます。


> また、eval filenameとしたらどうなるんでしょうか?

eval は、その後に続く引数をシェルに対する引数だと評価して実行します。

eval filename であれば、filename で示されるファイルが実行可能であれば、
ただそれを実行するだけです。

# これだけじゃ、何のことかわからないかな?

この回答への補足

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

補足日時:2002/01/09 19:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!