2

Windowsを使用しているかどうかを確認するにはどうすればよいですか?

AWKでOS固有のコマンドを実行する必要があります。

system("mkdir DIR")具体的には、 Windowsや system("mkdir -p DIR")その他の場所(Unix / Linux / OS X / BSD)で、ディレクトリを再帰的に作成したいと思い ます。

4

2 に答える 2

3

これは、Bireiによるもののわずかに最適化されたバージョンです。

環境変数は、OS(おそらく)常にWindowsでのみ指定され、「Windows_NT」などの文字列「windows」の形式を常に含む必要があります。

awk '
    BEGIN {
        is_windows = 0;
        if (index(tolower(ENVIRON["OS"]), "windows") > 0) {
            is_windows = 1;
        }
    }
    ...
' input-file

#awkとBireiの皆さんに感謝します

于 2012-08-19T19:52:28.340 に答える
2

システムにアクセスできないため、この回答をテストできませんが、変数Windowsを試してみてください。ENVIRONLinuxとUnixのパスはで区切られ:Windowsパスはで区切られ;ます。次のように確認できます。

awk '
    BEGIN {
        is_windows = 0;
        if ( index( ENVIRON["PATH"], ";" ) > 0 ) {
            is_windows = 1;
        }
    }
    ...
' input-file

パスにディレクトリが1つしかない場合、これは失敗する可能性がありWindowsますが、理解していただければ幸いです。おそらく、いくつかの環境変数または類似のものの組み合わせがより役立つ可能性があります。

于 2012-08-19T10:32:16.443 に答える