Cygwin から起動した秀丸の環境No.03998
安久津 さん 03/12/04 16:30
 
あくつです。

(0) Cygwin から起動した秀丸の環境。

    (A) ことの経緯は、2番会議室の発言を見てください。

        Date: Tue, 25 Nov 2003 21:08:31 +0900
        From: freeakjp <09xxxxxxxxxxxxxx@maruo.co.jp>
        Subject: hidesoft.2:15871| マクロ run と cygwin の関係

    (B) Bash スクリプトの 'hidemaru' は、
        秀丸マクロの4番会議室の発言を見てください。

        Date: Wed, 15 Oct 2003 16:57:54 +0900
        From: 安久津<810xxxxxxxxxxxxxx@maruo.co.jp>
        Subject: hidesoft.4:03894| hidemaru (bashスクリプト)

        Date: Wed, 15 Oct 2003 21:05:55 +0900
        From: 安久津<810xxxxxxxxxxxxxx@maruo.co.jp>
        Subject: hidesoft.4:03895| RE 03894 hidemaru (bashスクリプト)

(1) 環境変数の違い。

    注記。 "`< env.mac`" について。
        カレントディレクトリにある env.mac の指定方法。
        "`cat env.mac`" も同じ。


$ echo $SHELL
/bin/bash
$ cat env.mac
    insert getenv("PATH") + "\n";
    saveas "env.txt";
exit;
$ hidemaru -he "`< env.mac`"
'/cygdrive/c/program files/hidemaru/hidemaru.exe' /xtmp.mac /h
$ cat env.txt
C:\cygwin\usr\local\bin;C:\cygwin\bin;C:\cygwin\bin;c:\ruby\bin;c:\JUST\JSLI
B32;
c:\windows;c:\windows\command;c:\jdk1.3.1_02\bin;C:\cygwin\home\ta\bin
$ hidemaru --showmacro
/cygdrive/c/program files/hidemaru/macro/tmp.mac
--
    insert getenv("PATH") + "\n";
    saveas "env.txt";
exit;;
if(updated==1 && basename!="") save; quit;
$ exit
logout
C:\cygwin\home\ta>c:\progra~1\hidemaru\hidemaru /xtmp.mac /h

C:\cygwin\home\ta>type env.txt
c:\ruby\bin;C:\JUST\JSLIB32;c:\windows;c:\windows\command;c:\jdk1.3.1_02\bin

C:\cygwin\home\ta>

=============================================================================
(2) バッチファイルで示す。

-- battest.bat --
@echo off
echo %PATH%

    というバッチファイルを作成して、c:\windows\command などに置く。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/ruby/bin:/cygdrive/c/JUST/JSLIB32:
/cygdrive/c/windows:/cygdrive/c/windows/command:/cygdrive/c/jdk1.3.1_02/bin:
/home/ta/bin
$ hidemaru -he 'run "battest.bat > con"; saveas "battest.txt"'
'/cygdrive/c/program files/hidemaru/hidemaru.exe' /xtmp.mac /h
$ cat battest.txt
C:\cygwin\usr\local\bin;C:\cygwin\bin;C:\cygwin\bin;c:\ruby\bin;c:\JUST\
JSLIB32;c:\windows;c:\windows\command;c:\jdk1.3.1_02\bin;C:\cygwin\home\ta\bin
$ exit
logout
C:\cygwin\home\ta>set | grep -iE "\<path\>"
PATH=c:\ruby\bin;C:\JUST\JSLIB32;c:\windows;c:\windows\command;
c:\jdk1.3.1_02\bin

C:\cygwin\home\ta>c:\progra~1\hidemaru\hidemaru /xtmp.mac /h

C:\cygwin\home\ta>type battest.txt
c:\ruby\bin;C:\JUST\JSLIB32;c:\windows;c:\windows\command;c:\jdk1.3.1_02\bin

C:\cygwin\home\ta>

=============================================================================
(3) hidemaru (Bash スクリプトでの対応方法)

    Cygwin から秀丸を起動しても、環境変数を Windows と同じ、または
    似せたい場合には、次のように編集します。

    以下では、環境変数 PATH の設定例です。

    (A) winpath=/cygdrive/c/windows:/cygdrive/c/windows/command
        をファイルの最初の方に書いておきます。
        ( cygpath -u 'c:\windows' とかで確認 )

    (B) 秀丸起動部分をサブシェルにします。
        そこで環境変数を書き換えます。
            ( PATH="$winpath"
            "$hm_hidemarudir/hidemaru.exe" $options "$f"
            )
        とか
            ( PATH="$winpath"
            exec "$hm_hidemarudir/hidemaru.exe" $options "$f" &
            )
        です。

        # 秀丸起動部分は4箇所です。
        # それら全部を上記のように書き換えます。

        # 他の環境変数、例えば $HOME も設定しなおしたい場合。
        #   ( PATH="$winpath"
        #     HOME='/cygdrive/c/home/myhome'
        #   "$hm_hidemarudir/hidemaru.exe" $options "$f"
        #   )

=============================================================================
(4) env.mac で動作テスト

$ cat env.mac
    insert getenv("PATH") + "\n";
    saveas "env.txt";
exit;
$ hidemaru -he "`< env.mac`"
'/cygdrive/c/program files/hidemaru/hidemaru.exe' /xtmp.mac /h
$ cat env.txt
c:\windows;c:\windows\command
$

[ ]