По какой-то причине мой if condition
для файла и каталога, который не существует, обрабатывается неправильно. Сценарий считает, что файл и каталог существуют, когда они этого не делают.Bash Script не проверяет правильность, если Directory и File Exist
#!/usr/bin/bash
lockdir=/opt/someOtherDis/qa_test_lock
puppetlock=/var/opt/puppetLockDirs/agent_catalog_run.lock
if [ ! -f "$puppetlock" ] && [ ! -d "$lockdir"]; then
#Get a url and grep it to get stuff
else
su -c "echo ls puppetlock results: $(ls -lrt $puppetlock) and qa lock results: $(ls -lrt $lockdir) >> /var/log/dirStuff/test-qa-run.log" -m "someUser"
su -c "echo $(date +\"%m-%d-%T\") Puppet or QA tests are running. Did not attempt to update artifact version. >> /var/log/dirStuff/test-qa-run.log" -m "someUser"
fi
Я добавил выход ls
, чтобы убедиться, что я могу увидеть, если марионетка или блокировка существует контроль качества.
Вот результат файла журнала, первая проверка была, когда я запускал марионетку вручную, чтобы я мог убедиться, что все работает.
02-09-08: 16: 01 Выполнены тесты на кукольный или QA. Не пыталась обновить версию артефакта . Результаты Ls puppetlock: -RW-R - r-- 1 корень корень 5 Feb 9 08:27 /var/opt/lib/pe-puppet/state/agent_catalog_run.lock и замок Результаты: QA
02 -09-08: 28: 01 Выполняются тесты Puppet или QA. не пытался обновить версию артефакта.
02-09-08: 30: 02 app_versions.json не был изменен в течение последних 30 минут Ls Результаты puppetlock: результаты и QA замок:
02-09-08: 30: 02 Кукольные или QA . Не пыталась обновить версию артефакта. ls Результаты кукольного стела: и результаты блокировки затвора:
02-09-08: 32: 01 Протест или QA Пробеги. Не пыталась обновить версию артефакта.
Должно быть пространство между '' $ lockdir '' и ']', no? – AlexP
@AlexP Вы правы. Неудивительно, что я не мог этого видеть. Проблема исправлена – wiredniko