1

我正在编写一个简单的脚本来检查输入的目录路径是否存在。这就是我所拥有的

echo "Please specify complete directory path"
read file_path

for file in $file_path; do
    if [[ -d "$file" ]]; then
        echo "$file is a directory"
        break
    else
        echo "$file is not a directory, please try again."
fi
done

我需要的是,如果它不是返回并再次询问文件路径的目录。

谢谢。

4

2 回答 2

1

这个怎么样?

echo "Please specify complete directory path"

while read file; do
    if [[ -d "$file" ]]; then
        echo "$file is a directory"
        break
    fi
    echo "$file is not a directory, please try again."
done
于 2013-02-18T20:17:37.203 回答
0

无需将路径拆分为各个部分,使用 -d 测试整个路径会告诉您它是否是目录。您需要将整个测试放入一个while循环中,直到用户正确为止:

#/bin/sh
set -e
file_path=''
while [ ! -d "$file_path" ]
do
    echo "Please specify complete directory path"
    read file_path   
    if [ ! -d "$file_path" ]
    then
        echo "$file_path is not a directory, please try again."
    fi
done

我可以这样使用

$ sh /tmp/test.sh 
Please specify complete directory path
foobar
foobar is not a directory, please try again.
Please specify complete directory path
/var/www
于 2013-02-18T20:20:25.140 回答