测试目录是否存在

Test if directory exists or not

这是我的代码,它可以工作,但它总是说目录存在,不管我写什么。此外,它不会在 echo $DIRECTORY 中打印变量。我需要修复什么?

#!/bin/sh

if [ -d $DIRECTORY ]; then
echo "Directory exists"
elif [ ! -d $DIRECTORY ]; then
echo "Directory does not exists"
fi
echo $DIRECTORY

将变量传递给 shell 脚本

  • 您必须指示脚本 DIRECTORY 一个变量,作为第一个脚本参数传递。
  • 您必须将变量括在 双引号 中,以确保正确解析空格和特殊字符,如空变量。

样本:

#!/bin/sh

DIRECTORY=""

if [ -d "$DIRECTORY" ]; then
    echo "Directory '$DIRECTORY' exists"
else
    echo "Directory '$DIRECTORY' does not exists"
fi
echo "$DIRECTORY"

其他样本:

#!/bin/bash

DIRECTORY=""
FILE=""
if [ -d "$DIRECTORY" ]; then
    if [ -e "$DIRECTORY/$FILE" ]; then
        printf 'File "%s" found in "%s":\n  ' "$FILE" "$DIRECTORY"
        /bin/ls -ld "$DIRECTORY/$FILE"
    else
        echo "Directory '$DIRECTORY' exists, but no '$FILE'!"
    fi
else
    echo "Directory '$DIRECTORY' does not exists!"
fi
echo "$DIRECTORY/$FILE"