1

我有一条由 update-alternatives 管理的路径。这似乎使 bash 令人困惑。

下面的 if 不应该打印 yes。但它确实存在,因为 bash 认为该目录不存在 - 事实上它确实存在。这一切都是以 root 身份完成的,我尝试过单括号版本。

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 回答