Hackcat

如果同一命令在本地運行但 Agent 中顯示語法錯誤,該怎麼辦?

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

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

不要僅根據操作系統或手動打開的終端來判斷 Agent 的 shell。在 Windows 上,桌面版和 CLI 版本都優先使用 Git Bash;如果找不到,則使用 cmd;它並非固定為 PowerShell。Unix 桌面版會選擇主機上用戶可用的 shell,而 CLI 對於普通命令路徑則使用 bash。更改執行入口可能會改變同一字符串的解釋方式。

先檢查路徑和引號方法

讓 Agent 先確認實際的 shell,然後處理包含空格的路徑、帶有問號或連接符的 URL,以及特定於平台的參數語法。某些 shell 會將未加引號的字符視為通配符,從而導致類似“文件未找到”的錯誤。不要僅修改一個可疑字符就繼續批量執行;您可以先將任務分解為單個可驗證的只讀命令來觀察結果。

區分語法問題和工具缺失

如果錯誤是“找不到程序”,請先檢查工具安裝和路徑;如果出現權限被拒,請檢查系統權限;只有解析錯誤才需要專注於修正 shell 語法。即使命令的最後一部分顯示成功,也要檢查之前的錯誤輸出,以避免忽略部分失敗。在恢復完整任務之前,請先確認單步操作的行為是否正確;默認情況下,無需重置連接令牌或提升客戶端權限來處理此問題。