『Cygwinの環境を複数作ったり、パッケージのインストールを自動化したりする(たった一つのスクリプトファイルだけで…魔法のように…Linuxライク環境が構築できる!)』 の補足記事です。
D:\cyg
にインストールスクリプト「project1.bat」を置いた場合に、スクリプト内の「CYG_HOME」の設定を変えるとどのようになるかを詳しくご説明します。
CYG_HOME を指定することで複数の Cygwin プロジェクトから同じホームディレクトリを共有できます。
一度設定した CYG_HOME を変更して、再度スクリプトを実行することでホームディレクトリを変更することができます。
「.」に指定した場合
set CYG_HOME=.
ピリオドに指定するとカレントディレクトリという意味でスクリプトのあるディレクトリがホームになります。
ただし、Linux と同様にD:\cyg
の配下にユーザー名(ユーザーID)のフォルダがさらに作られてそこが実際のホームディレクトリになります。マルチユーザーで使う場合には便利ですね。
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/cyg/javac
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\cyg\javac
「.$」に指定した場合
ユーザー名のフォルダができてほしくない場合には、「CYG_HOME」の設定の最後に半角の「$」をつけます。
set CYG_HOME=.$
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/cyg
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\cyg
「deep/deeper」に指定した場合
この場合は、スクリプトのあるディレクトリに「deep/deeper」というフォルダが作られます。
最後に「$」がついてないので、ユーザー名のフォルダが最後につきます。
set CYG_HOME=deep/deeper
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/cyg/deep/deeper/javac
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\cyg\deep\deeper\javac
「deep/deeper$」に指定した場合
この場合は、スクリプトのあるディレクトリに「deep/deeper」というフォルダが作られます。
最後に「$」がついているので、ユーザー名のフォルダはつきません。
set CYG_HOME=deep/deeper$
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/cyg/deep/deeper
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\cyg\deep\deeper
フルパス指定「D:\home」に指定した場合
最後に「$」がついてないので、ユーザー名のフォルダが最後につきます。
set CYG_HOME=D:\home
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/home/javac
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\home\javac
フルパス指定「D:\home$」に指定した場合
最後に「$」がついているので、ユーザー名のフォルダはつきません。
set CYG_HOME=D:\home$
javac@project1(Cygwin64) ~
$ pwd
/cygdrive/d/home
javac@project1(Cygwin64) ~
$ cygpath -w `pwd`
D:\home
以上です。