1、問題場景
搭建CI環境,Linux啟動shell腳本執行完成jar文件生成的log文件,less等工具查看報錯:“Error : Unable to access jarfile *.jar”。
2、分析排查
- 切換到jar目錄直接運行jar包,運行正常,查看日志正常。
- 切換到jar目錄采用shell腳本執行,報錯相同。
sh -x restart.sh (根據shell腳本補充相應參數)
初步結論:shell腳本編寫有問題。
3、解決方案
對shell腳本相應的步驟語句echo打印分析,發現jar包目錄地址打印為空,導致腳本打開jar包目錄無效。進一步排查發現:jar目錄地址變量賦值等號右側有空格,直接導致shell腳本執行提示:“./restart.sh : line 10: /data/*/*/appdir :Is a directory”,空格導致shell並未將jar目錄地址變量右側數值識別為字符串。
解決方案:刪除等號右側空格。
4、小結
- “Error : Unable to access”,大部分由於路徑不正確導致。
- shell腳本變量等號(=)兩側不能添加空格。