LINUX.ORG.RU

условие в if

 


0

1

Добрый день! есть такой сценарий


 bg=$(echo 'info Persistence' | $cli | awk -F: '/rdb_bgsave_in_progress/{sub(/\r/, "", $0); print $2}')
   ok=$(echo 'info Persistence' | $cli | awk -F: '/rdb_last_bgsave_status/{sub(/\r/, "", $0); print $2}')
   if [[ "$bg" = "0" ]] && [[ "$ok" = "ok" ]] ; then
     tar cvf - /data/neo4j.dump | gzip -9 - > /nfs/backup-neo4j-date && echo neo4j_backup_status{project='"pussylick"', env='"prod"', zone='"Dushanbe"'} 0 > /status/good
else
echo neo4j_backup_status{project='"pussylick"', env='"prod"', zone='"Dushanbe"'} 1 > /status/error
fi

тут я бэкаплю Бд пытаюсь проверить как себя скрипт поведет если шара вдруг отвалится, делаю umount затем запускают скрипт, и почему то скрипт не доходит до else хотя должен, потому что у меня tar cvf - $rdb | gzip -9 - > /nfs/backup-neo4j-date это условие не проходит ( некуда писать, нет шары) затем далее && не должно исполнятся ( оно и не исполняется) но почему не доходит до else?

спасибо всем кто ответит



Последнее исправление: Tabbik (всего исправлений: 2)
Ответ на: комментарий от anonymous

никто не говорит, что ошибка в этом. речь о том, что нормально писать надо, а не выебываться башесинтаксисом

вот зачем тут двойные скобки? какая часть выражения внутри требует двойных скобок?

anonymous
()

project='«pussylick»'
zone='«Dushanbe»'

если шара вдруг отвалится

mountpoint -q /nfs && tar cvf - …

bass ★★★★★
()

почему то скрипт не доходит до else хотя должен

если я правильно распарсил, то в else у тебя попадет только в случае невыполнения этого условия:

[[ «$bg» = «0» ]] && [[ «$ok» = «ok» ]]

nerve ★★
()
Последнее исправление: nerve (всего исправлений: 1)
bg=$(echo 'info Persistence' | $cli | awk -F: '/rdb_bgsave_in_progress/{sub(/\r/, "", $0); print $2}')
ok=$(echo 'info Persistence' | $cli | awk -F: '/rdb_last_bgsave_status/{sub(/\r/, "", $0); print $2}')
[[ "$bg" = "0" ]] && [[ "$ok" = "ok" ]] &&
	tar cvf - /data/neo4j.dump | gzip -9 - > /nfs/backup-neo4j-date &&
	echo neo4j_backup_status{project='"pussylick"', env='"prod"', zone='"Dushanbe"'} 0 > /status/good &&
	exit 0
echo neo4j_backup_status{project='"pussylick"', env='"prod"', zone='"Dushanbe"'} 1 > /status/error &&
	exit 1

anonymous
()
Ответ на: комментарий от nerve

спасибо да вы правы! это я невнимательный

Tabbik
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.