Я знаю, что есть много дискуссий по этому поводу, но мне нужна ваша помощь с кодами завершения удаленной команды ssh.У меня есть этот код: (scan
это скрипт, который сканирует на наличие вирусов в указанном файле)
for i in $FILES
do
RET_CODE=$(ssh $SSH_OPT $HOST "scan $i; echo $?")
if [ $? -eq 0 ]; then
SOME_CODE
Сканирование работает и возвращает либо 0 или (1 для ошибок), либо 2, если вируснайденный.Но почему-то мой код возврата всегда равен 0. Даже если я сканирую вирус.
Вот вывод set -x
:
++ ssh -i /home/USER/.ssh/id host 'scan Downloads/eicar.com; echo 0'
+ RET_CODE='File Downloads/eicar.com: VIRUS: Virus found.
code of the Eicar-Test-Signature virus
0'
Вот вывод, если я выполню эти команды на"удаленный" компьютер без ssh:
[user@ws ~]$ scan eicar.com; echo $?
File eicar.com: VIRUS: Virus found.
code of the Eicar-Test-Signature virus
2
Я просто хочу получить код возврата, мне не нужны все остальные выходные данные scan
.
! ОБНОВЛЕНИЕ!
Кажется, echo
это проблема.