1

update-alternatives によって管理されるパスがあります。これはbashを混乱させているようです。

次の場合、yes と出力されるべきではありません。しかし、実際には存在するのに、bashはディレクトリが存在しないと考えるためです。これはすべてルートとして行われ、単一ブラケット バージョンを試しました。

RUBY_ROOT=/usr/bin/ruby
CHK_DIR_PATH=`readlink -f "${RUBY_ROOT}"`
if [[ ! -d "${CHK_DIR_PATH}" ]] ; then echo yes; fi

パスは存在します:

ls -la ${CHK_DIR_PATH}
-rwxr-xr-x 1 root root 6993617 2011-06-21 15:37 /usr/bin/ruby1.9.2-p180

ディレクトリが存在しないかどうかを確認する別の方法はありますか?

4

1 に答える 1

3

パスは存在しますが、ディレクトリではありません。あなたによるとls -l、それはファイルです。したがってtest -d、正しくは false を返しますが、test -eandtest -fは true を返します。何かが間違ってインストールされている疑いがあります。

于 2011-06-21T23:38:44.060 に答える