3

次の行を持つ #!/bin/sh スクリプトがあります。

if [ ! -x "$TEST_SLAPD" ]

$TEST_SLAPD.bat ファイルへのフル パスです。

その声明-xの文脈で旗が何を意味するのか疑問に思っていますか?if

4

2 に答える 2

10

ifそれに続くコマンドの結果をチェックするだけです。[は (少なくとも常にではありませんが) 演算子ではなく、'test' と呼ばれる小さなユーティリティです。

そのドキュメントから:

-x file
                             True if file exists and is  exe-
                             cutable.   True  indicates  only
                             that the execute flag is on.  If
                             file  is a directory, true indi-
                             cates that file can be searched.

(そして、はい、!明らかに否定です)

同様の評価フラグのドキュメントは、 http ://illumos.org/man/1/test から入手できます。

于 2012-06-15T22:11:52.143 に答える
3

条件付きは、ファイルまたはディレクトリに現在のユーザーの! -x実行可能ビットが設定されていないことを意味します。ヘルプは、ディレクトリにも適用されるという事実について少し明確ではありませんが、次のように述べています。

$ help test | fgrep -- '-x'
      -x FILE        True if the file is executable by you.
于 2012-06-15T22:13:07.590 に答える