Diretório de verificação existe no servidor remoto

0

Estou tentando verificar se o diretório existe no servidor remoto usando o comando sshpass com ssh. Este é o meu código

if [sshpass -p 'xxxx' ssh [email protected] '[ -d /var/www/html/Dirct1/Backup/11-12-12]']; then
echo '1'
else
echo '2'
fi

Estou recebendo um teste de erro: 3: teste: [sshpass: não encontrado. teste é o nome do meu arquivo de script.

    
por Nikesh 25.10.2017 / 13:02

1 resposta

0

Coloque um espaço após o seu colchete: if [ sshpass ... . da mesma forma, os colchetes podem exigir mais espaços. Mas normalmente para testar o código de retorno de um comando que você não coloca os parênteses, estes são substituídos pelo comando test sob o capô: if [ 1 -eq 2 ] é na verdade (*) if test 1 -eq 2 . Se também pode ser muito mais simples / mais legível para testar o código de retorno depois:

sshpass -p 'xxxx' ssh [email protected] '[ -d /var/www/html/Dirct1/Backup/11-12-12]'
if [[ $? -eq 0 ]]
then 
    echo '1'
else
    echo '2' 
fi

(*) e, na verdade, test é substituído por um bash embutido

    
por 25.10.2017 / 14:59