读取目录并验证它是否存在Bash

时间:2014-06-04 17:46:11

标签: bash directory location

我已经检查过各处,并在检查目录是否存在时尝试了许多不同的“解决方案”。这是我的代码:

#!/bin/bash
echo -e "Where is the directory/file located?"
read $DIRECTORY
if [ -d "$DIRECTORY" ]; then
    echo "Exists!"
else
    echo "Does not exist!"
fi

我要做的是让用户输入一个目录,并让脚本检查它是否存在并返回结果。这将最终tar / untar目录。无论目录是否存在,它都会返回“不存在!”的答案。 (我正在尝试的输入是〜/桌面,据我所知,这是100%正确。任何简洁的答案都非常感谢:)。

1 个答案:

答案 0 :(得分:2)

您的脚本可以重构为:

#!/bin/bash

read -p 'Where is the directory/file located?' dir
[[ -d "$dir" ]] && echo 'Exists!' || echo 'Does not exist!'
  • 基本上使用read var代替read $var
  • 最好不要在BASH / shell中使用所有大写变量名称
  • 在BASH中使用!时使用单引号,因为它表示历史事件