[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU ユーティリティのデフォルトの動作が POSIX の規格と一致しない場合が、若干ながら存在する。
そうした非互換性を抑制するには、環境変数 POSIXLY_CORRECT
を設定すればよい。
もっとも、POSIX に準拠しているか否かを点検しているのでもないかぎり、
POSIXLY_CORRECT
を設定する必要は、おそらくないだろうが。
POSIX の新しいバージョンが、古いバージョンと非互換であることが、 ときどきある。たとえば、POSIX の古いバージョンでは、‘sort +1’ というコマンドは、 各入力行の二番目以後のフィールドに基づいて、行の並べ替えを行うことになっていた。 ところが、POSIX 1003.1-2001 では、同じコマンドが ‘+1’ という名前のファイルの行を並べ替えることになっており、 フィールドに基づいた並べ替えを行うには、‘sort -k 2’ という別のコマンドを使わなければならないのだ。 そして、さらにややこしいことに、POSIX 1003.1-2008 では、古い動作と新しい動作のどちらをする実装も認められている。
通常 GNU のユーティリティは、お使いのシステムが規格として採用している
POSIX のバージョンに従っている。GNU ユーティリティを
POSIX の別のバージョンに準拠させるには、環境変数 _POSIX2_VERSION
を設定すればよい。この環境変数の値は、yyyymm という形式であり、
その規格が何年の何月に採択されたかを示している。_POSIX2_VERSION
の値としては、現在のところ、次の三つがサポートされている。すなわち、‘199209’,
‘200112’, ‘200809’ であり、それぞれ POSIX 1003.2-1992,
POSIX 1003.1-2001, POSIX 1003.1-2008 を表している。
一例を挙げよう。御使用のシステムが POSIX 1003.1-2001
に準拠しているのに、動かしているソフトウェアが ‘sort +1’ や ‘tail +10’
といった旧来の用法も持っている場合には、環境に ‘_POSIX2_VERSION=200809’
を設定することで、互換性の問題を回避することができる。
This document was generated on June 7, 2022 using texi2html 1.82.