私はWindowsを使用しており、Babun(POSIX API)で実行するシェルスクリプトを作成しています。
環境変数$ USERPROFILEからパスを読み取り、UNIXスタイルに変換する必要があります(\を/に、c:\を/ c /に置き換えてください)。これを後でスクリプトで使用できるようにします。
問題は、$ USERPROFILEのコンテンツをエコーすると、バックスラッシュがエスケープ文字として解釈され、予期しない結果が発生することです(文字が「ランダムに」\ n、\ fなどの特殊文字に変わります)。だから私はそれを例えばsedにエコーすることはできません。
Cygwinは、UnixおよびWindows形式のパスを変換するための非常に便利なcygpath
ユーティリティを提供します。 Cygwinユーザーガイド から
cygpath
プログラムは、Windowsのネイティブファイル名をCygwin POSIXスタイルのパス名に、またはその逆に変換するユーティリティです。 CygwinプログラムがネイティブWindowsプログラムにファイル名を渡す必要がある場合、またはネイティブWindowsプログラムからファイル名を取得する必要がある場合に使用できます。または、cygpath
は、重要なシステムディレクトリの場所に関する情報をいずれかの形式で出力できます。
WindowsまたはDOSスタイルのフォーマットパスとの間で変換できます。 WindowsパスのUnix形式を出力するには:
$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony
詳細については Cygwinユーザーガイド を、基本的な使用情報についてはcygpath --help
を参照してください。