2011-11-15 32 views
1

ディレクトリの存在を確認し、以下のスクリプトを書いてみたいと思いますが、これは正しく動作しません。ホームディレクトリの下のディレクトリの存在を確認してください。

#!/bin/sh 
if [ -d "~/sample" ] 
then 
    echo 'exists' 
else 
    echo 'NOT exists' 
fi 

下記のスクリプトが動作します。

#!/bin/sh 
if [ -d "/home/user01/sample" ] 
then 
    echo 'exists' 
else 
    echo 'NOT exists' 
fi 

if [ -d "~/sample" ]が間違っていますか?

答えて

2

はい二重引用符は、何をさせるされていないされている〜拡大...以下は動作します:

if [ -d ~"/sample" ]; then 
    echo "exists" 
fi 

使用することは通常より良いです:

if [ -d "$HOME/sample" ] ; then 
    echo "exists" 
fi 

$ HOMEは、一般的に設定されていますBourneシェルによる

+0

ああ、$ HOMEは良いです。私はそれを使用します。ありがとう! – a2hiro

関連する問題