テスト(AIXおよびksh93)

テスト(AIXおよびksh93)

私たちが使用しているksh93テスト修飾子の1つについて混乱しています。 20年以上前に、私たちは「Unix Shellプログラミング - KornShell機能」コースを受講しました。コースに付属のマニュアルには、ファイルが存在すると「-a filename」が成功することが示されています。それ以来、私たちは「-a」を広く使用してきました。私は最近、「-a」がテスト用の「バイナリAND演算子」であり(AIX 7.1ではksh93を使用しています)、「man test」がそのリンクと同じ出力を表示するというこのリンクを見つけました。

https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.cmds5/test.htm

リンクは通常のAIXリンクとして表示されます。つまり、私にとっては、ksh、csh、shなどに限定されないので、どのように適用されるのかわかりません。

既存のコードが期待どおりに動作しているようです。現在、私たちがどのように使用するかの例は次のとおりです。

if [[ -a filename ]]
then
    ....
fi

ファイルテスト用の別の修飾子があることを知っていますが、マンページでは存在するかどうかを確認しないことを示唆していますが、「-a」が存在するかどうかを確認するように見える理由が疑問に思います。

よろしくお願いします。

ベストアンサー1

kshマニュアルから:

   Conditional Expressions.
       A  conditional  expression  is  used with the [[ compound command to test attributes of files and to
       compare strings.  Field splitting and file name generation are not performed on the words between [[
       and  ]].   Each  expression  can  be  constructed  from one or more of the following unary or binary
       expressions:
       string True, if string is not null.
       -a file
              Same as -e below.  This is obsolete.
       -e file
              True, if file exists.

おすすめ記事