実行ファイル内の角かっこの目的は何ですか

実行ファイル内の角かっこの目的は何ですか

「[」という実行ファイルがあることを確認しました/usr/bin。その目的は何ですか?

ここに画像の説明を入力してください。

ベストアンサー1

ほとんどの場合、[これは同等のシェル組み込みですtest。ただし、同様に、スタンドアロンの実行可能testファイルとしても存在します。これが/bin/[まさにあなたが見るものです。次のコマンドを使用してこれをテストできますtype -a [(Arch Linuxシステムでは実行bash)。

$ type -a [
[ is a shell builtin
[ is /bin/[

したがって、私のシステムには2つの方法があります[。マイシェルの組み込みファイルと、次の/bin場所に書き込まれた.executableファイルman test

TEST(1)                          User Commands                         TEST(1)

NAME
       test - check file types and compare values

SYNOPSIS
       test EXPRESSION
       test

       [ EXPRESSION ]
       [ ]
       [ OPTION

DESCRIPTION
       Exit with the status determined by EXPRESSION.

[ ... ]

上で引用したマニュアルページに見られるように とtest[同じです。そして/bin/[/bin/testPOSIXで指定多くのシェルが組み込み機能としても提供されていますが、これがまさにあなたが見つけることができる理由です。これらの存在は、次の構造を保証します。

[ "$var" -gt 10 ]  && echo yes

実行中のシェルに組み込み機能がなくても[機能します。たとえば、次のようになりますtcsh

> which [
/sbin/[
> set var = 11
> [ "$var" -gt 10 ]  && echo yes
yes

おすすめ記事