Macosの/ binに予期しないファイル「[」が表示されます。

Macosの/ binに予期しないファイル「[」が表示されます。

[私のMac Powerbookの/ binファイルに - 左角かっこ - という名前の予期しないファイルがあります。私はカタリナを担当しています。ファイルを見ると、catApple認証局のエントリのように見えます。ほとんどは読めませんが、テキストがあります。

Apple Certification Authority

そして

PROGRAM:test PROJECT:shell_cmds-207.40.1 ??????i@[]missing ]!unexpected operator%s: %s%sclosing paren expectedargument expected%s: bad number%s: out of range)

これは何か知っていますか?私にとっては不思議なようです。エラーメッセージに基づくいくつかのソースコードと同じです。ただし、Appleに必要なファイルの場合は直接削除したくありません。

答え1

左角かっこ[は標準の実行可能ファイルと同じであり、testシェルスクリプトを作成するときに構文上の砂糖(例えば、「よさそうだ」)を提供します。

fruit="banana"
if [ banana = "$fruit" ]    # "[" really is an executable
then
    echo "Yum, yum"
fi

または

fruit="banana"
if test pear = "$fruit"
then
    echo "Yum, yum"
fi

これは直接同じです。

実際にはシェルはと[を直接実装できるtestので、それを呼び出すと、別のプロセスを実行するのではなく、シェルはコマンドを実行します。繰り返しますが、ユーザーには顕著な違いはありません。

関連情報