sourceコマンド

unixコマンドをもう一度勉強してみようと思い、本を広げた。 十数ページも読み進まないうちに、初めて知る事が書いてあり、未熟を悟る。

  1. bashのsourceコマンド

    “socrce file”と行うと、そのfileをスクリプトとして実行される。 “bash file”との違いは、新規にプロセスを生成するか否かの違い。

    socrceは同じプロセスでシェルスクリプトを実行する。 bashは子プロセスでシェルスクリプトを実行する。

    この違いにより、socrceは環境変数の上書き等に利用される。

    bashは返り値しか元のプロセスに返さないので環境変数を書き散らかしても問題ない。

  2. bashのシングルクオーテーション(‘)とダブルクオーテーション(“)

    bashではコマンドライン上に特定の文字が有ると、コマンドの評価に先立ってその文字列を展開する。展開される文字は、”*”, “?”, “`”等。

    シングルクオーテーション(‘)とダブルクオーテーション(“)で囲む事は、それらの特殊な文字を展開させずにコマンドに渡す為の手段。これをクォーティングと言う。

    2つのクォーティングの違いは、展開を許す文字列の違い。

    シングルクオーテーションは展開を許さない。

    ダブルクオーテーションは、変数展開”${VAR}”やコマンド展開”`”の展開を許す。