Você pode fazer apenas mkdir -p "$DESTDIR" - a opção -p suprimirá erros se já existir.
Atualmente, tenho um diretório em uma string, como tal:
DESTDIR="/var/files/mydir/filedir/"
Observe que esse diretório existe. Eu me certifiquei disso.
Preciso verificar se esse diretório já existe ou se preciso criá-lo. Atualmente estou fazendo isso usando:
if [ -d $DESTDIR ]; then
echo the directory exists!
else
echo the directory does not exist!
fi
e, mesmo que o diretório exista - eu copiei e colei o nome na variável no meu script - ele sempre vai para a instrução else . Não só isso, mas quando eu faço ls $DESTDIR dentro do script, recebo um erro no such file or directory .
No entanto, quando executo ls $DESTDIR da linha de comando, obtenho o resultado esperado.
Eu tentei substituir $DESTDIR por "$DESTDIR" , mas ainda não obtive o resultado esperado.
Parece daqui que $DESTDIR (também conhecido como / var / files / mydir / file) é na verdade um / file / em vez de um / directory /. O teste -d pergunta se você tem um diretório / /. Verifique a saída de ls -ld $DESTDIR para confirmar. Se $DESTDIR for realmente um arquivo, então o teste -d está fazendo a coisa certa - não exatamente o que você esperava.
Tags shell-script