Hackcat

如果同一指令在本地執行但 Agent 中出現語法錯誤,應如何處理?

首先確認 Agent 實際使用的 Shell,然後修正參數、引號和路徑。

執行入口可能使用不同的 Shell

請勿僅根據作業系統或您手動開啟的終端機來判斷 Agent 的 Shell。在 Windows 上,桌面版和 CLI 的實作都優先使用 Git Bash;如果找不到,則會使用 cmd;它並非固定為 PowerShell。Unix 桌面版會選擇使用者在主機上可用的 Shell,而 CLI 則對一般指令路徑使用 bash。更改執行入口可能會改變相同字串的解釋方式。

先檢查路徑和引號處理方式

讓 Agent 先確認實際使用的 Shell,然後處理包含空格的路徑、帶有問號或連接符的 URL,以及特定平台的參數語法。某些 Shell 會將未加引號的字元視為萬用字元,導致類似「找不到檔案」的錯誤。請勿僅修改一個可疑字元後就繼續批次執行;您可以先將任務拆分為單一可驗證的唯讀指令來觀察結果。

區分語法問題與工具缺失

如果錯誤是「找不到程式」,請先檢查工具安裝和路徑;如果出現存取被拒,請檢查系統權限;只有剖析錯誤才需要專注於修正 Shell 語法。即使指令的最後一部分顯示成功,也請檢查之前的錯誤輸出,避免忽略部分失敗。在恢復完整任務前,請先確認單一步驟的行為是否正確;預設情況下,無需重設連線權杖或提高用戶端權限。