Por que as minhas instruções if não estão passando?

1

Estou criando um script bash que supostamente copia todos os arquivos em ~/Development/ para outro computador na minha rede. Eu o habilitei para montar o computador, se ele não estiver lá, mas meu problema real é criar pastas.

Eu quero salvar os arquivos em /Volumes/Users/Public/InfiniteBackups/Development/ , portanto, executo algumas instruções if para verificar se elas existem.

#! /bin/bash


echo "Starting Backup of Development Files"
echo
say "Starting Backup of Development Files"



if [ -d "/Volumes/Users/Public/" ]; then
    # Control will enter here if $DIRECTORY exists.
echo "Location is there..."
echo

    # Start 
echo "Copying Files"
echo

if [ ! -d "/Volumes/Users/Public/InfiniteBackups/Development" ] ; then
  echo "/Volumes/Users/Public/InfiniteBackups/Development did not exist."
  say "Location did not exist, creating it."
  cd /Volumes/Users/Public/
  if [ ! -d "/Volumes/Users/Public/InfiniteBackups"]; then
  say "InfiniteBackups did not exist, creating it…"
  mkdir InfiniteBackups

  fi

  if [! -d "/Volumes/Users/Public/InfiniteBackups/Development"]; then
  cd InfiniteBackups
  mkdir Development
  fi


fi

cp -v -rip ~/Desktop/ /Volumes/Users/Public/InfiniteBackups/Development
echo "Files have finished transferring"
say "Files have finished transferring"

fi

Ele dirá / Volumes / Users / Public / exists, e ele dirá / Volumes / Users / Public / InfiniteBackups / Development não existe. Em seguida, ele verifica se / Volumes / Users / Public / InfiniteBackups / existe, o que não deveria. Então é suposto fazer o diretório. No entanto, em vez disso, age como se o volume existisse mesmo que claramente não existisse.

Por que isso não funciona? Obrigado.

    
por Josiah 16.10.2012 / 14:26

1 resposta

1

Tente adicionar um espaço entre "e". Você está perdendo isso em dois lugares. O teste inteiro retorna um número diferente de zero o tempo todo porque está dando um erro.

Eu testei minha teoria no Linux, deveria ser o mesmo para o OS X ...

    
por 16.10.2012 / 14:38