パスが存在するかどうかを確認しようとしています。パスはテキストファイルパスのあるファイルを読み込み、それらが存在するかどうか確認する際に問題がある
これはテキストファイルであるである:
/cygdrive/c/scriptstest/test1
/cygdrive/c/scriptstest/test2
/cygdrive/c/scriptstest/test3
/cygdrive/c/scriptstest/test4
経路test1
、test2
、test3
が存在します。
私のコードは
while read -r line;
do
echo $line
if [ -d $line ]; then
echo "Exist"
else
echo "No exist"
fi
done < test2.txt
されており、ここで問題です:
/cygdrive/c/scriptstest/test1
No exist
/cygdrive/c/scriptstest/test2
No exist
/cygdrive/c/scriptstest/test3
No exist
/cygdrive/c/scriptstest/test4
No exist
結果は常に否定しているが、私はコピーして、パスがコードに直接貼り付けると、結果はOKです:
#if [ -d "/cygdrive/c/scriptstest/test1" ]; --> using the path direct in the code
output
/cygdrive/c/scriptstest/test1
Exist
なぜこのスクリプトでは機能しないのですか?
このような行に引用符を入れようとしましたか? 'if [-d" $ line "]'自分のコンピュータ上で自分のコードを試してみました。 – Matthias
正しいディレクトリにコードを実行していることを確認していますか? '-d'はディレクトリであるかどうかをチェックし、ファイルではないことを知っていますか? (そのために '-f'を使います) – Matthias
はい私は引用符を使ってみました。あなたは他のものを変更していませんか?はい私はusinbg -dです。フォルダが存在するかどうかを確認する必要があります。ありがとう –