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 に答える