Ho una if
dichiarazione per calcolare i file ed eliminare tutti tranne gli ultimi tre file. Ma voglio eseguire questo comando da remoto. Come posso combinare ssh
con una if
condizione?
Ho provato questo, ma senza successo.
#!/bin/bash
ssh -t test@192.168.94.139 "cd /var/www/test.com/backup ;
if [ $(ls | wc -l) -lt 3 ]
then
echo "Less"
else [ $(ls -t *.tgz|awk 'NR >3'|xargs rm -f) ]
echo "deleted"
fi"
L'errore che ho ricevuto:
ls: impossibile accedere a * .tgz: nessun file o directory
$(
)
parte del comando viene eseguita dalla shell locale prima ancora che inizi il ssh
comando. Questo è vero sia quando $(
)
è solo, sia quando è racchiuso da "
s. Tuttavia, se $(
)
fosse all'interno di '
s, non verrebbe eseguito dalla shell locale.