2011-11-15 2 views
1

Je voudrais vérifier l'existence du répertoire et écrire le script ci-dessous, mais cela ne fonctionne pas correctement.Confirmer l'existence du répertoire sous le répertoire personnel

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

Les scripts ci-dessous peuvent fonctionner.

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

if [ -d "~/sample" ] Quel est le problème?

Répondre

2

Oui les guillemets doubles sont ce ne laisse pas la ~ élargir ... ce qui suit fonctionnera:

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

Il est généralement préférable d'utiliser:

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

$ HOME est généralement définie par Bourne shells

+0

Oh, $ HOME c'est bien. Je vais l'utiliser. Merci! – a2hiro

Questions connexes