由於某種原因,我的if condition
對於不存在的文件和目錄未正確處理。腳本認爲文件和目錄不存在時就存在。如果目錄和文件存在,Bash腳本不能正確檢查
#!/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
的輸出,以確保我可以看到,如果傀儡或QA鎖存在。
這裏是日誌文件的輸出,首先檢查是什麼時候手動運行puppet,這樣我就可以確保工作。
02-09-08:16:01 Puppet或QA測試正在運行。沒有嘗試 更新神器版本。 LS puppetlock結果:-rw-R - R-- 1根根 5 2月9日8點27個/var/opt/lib/pe-puppet/state/agent_catalog_run.lock和 QA鎖結果:
02 -09-08:28:01木偶或QA測試正在運行。 沒有嘗試更新工件版本。
08年2月9日:30:02 app_versions.json尚未在最後30個分鐘LS改性 puppetlock結果:和QA鎖結果:
08年2月9日:30:02木偶或QA 測試正在運行。沒有嘗試更新神器版本。 ls puppetlock結果:和qa鎖定結果:
02-09-08:32:01傀儡或QA 測試正在運行。沒有嘗試更新神器版本。
「'$ lockdir」'和']'之間應該有一個空格,不是? – AlexP
@AlexP你是對的。難怪我看不到它。問題已修復 – wiredniko